MySQL 연습문제1

Posted by Seongkyun Yu on 2020-04-29
Estimated Reading Time 2 Minutes
Words 367 In Total
Viewed Times

Data set

https://dev.mysql.com/doc/index-other.html

위 링크에서 world, sakila, employee 데이터를 받아서 푼다.


Q1. country 테이블에서 중복을 제거한 Continent를 조회하세요.

1
2
3
4
use world;
SELECT Continent
FROM country
GROUP BY Continent;

Q2. Sakila 데이터 베이스에서 국가가 인도 고객의 수를 출력하세요.

1
2
3
4
5
use sakila;
select country.country, COUNT(country.country_id)
from customer, address, city, country
where customer.address_id = address.address_id AND address.city_id = city.city_id AND city.country_id = country.country_id AND country.country = "India"
GROUP BY country.country_id

Q3. 한국 도시중에 인구가 100만이 넘는 도시를 조회하여 인구순으로 내림차순하세요.

1
2
3
4
5
use world;
select fcity.name, fcity.population
from (select city.name, city.countrycode, city.population from city where city.population > 1000000) as fcity, country
WHERE fcity.countrycode = country.code AND country.name = "south korea"
ORDER BY fcity.population DESC;

Q4. city 테이블에서 population이 800만 ~ 1000만 사이인 도시 데이터를 인구수순으로 내림차순하세요.

1
2
3
4
5
use world;
select name, countrycode, population
from city
where population BETWEEN 8000000 and 10000000
ORDER BY population DESC;

Q5. country 테이블에서 1940 ~ 1950년도 사이에 독립한 국가들을 조회하고 독립한 년도 순으로 오름차순하세요.

1
2
3
4
5
use world;
SELECT code, CONCAT(name, "(", IndepYear, ")") as NameIndep, continent, Population
FROM country
where IndepYear BETWEEN 1940 AND 1950
ORDER BY IndepYear ASC

Q6. contrylanguage 테이블에서 스페인어, 한국어, 어를 95% 이상 사용하는 국가 코드를 Percentage로 내 림차순하여 아래와 같이 조회하세요.

1
2
3
4
5
use world;
select countrycode, language, percentage
from countrylanguage
where (Language = "english" OR Language = "korean" OR Language = "spanish") AND percentage >= 95
ORDER BY percentage DESC

Q7. country 테이블에서 Code가 A로 시작하고 GovernmentForm에 Republic이 포함되는 데이터를 아래와 같이 조회하세요.

1
2
3
4
use world;
select code, name, continent, GovernmentForm, Population
from country
WHERE code LIKE "A%" and GovernmentForm LIKE "%Republic%"

Q8. Sakila actor 테이블에서 first_name이 DAN 인 배우의 수를 출력하세요.

1
2
3
4
5
use sakila;
select first_name, count(first_name) as count
from actor
where first_name = "DAN"
GROUP BY first_name

Q9. Sakila film_text 테이블에서 title이 ICE가 들어가고 description에 Drama가 들어간 데이터를 출 력하세요.

1
2
3
4
use sakila;
select film_id, title, description
from film_text
where title LIKE "%ICE%" and description LIKE "%Drama%"

Q10. Sakila 데이터 베이스의 file_list 뷰에서 price가 1 ~ 4, length가 180 이상, category는 Sci-Fi 과 Animation이 아닌 데이터를 출력하세요.

1
2
3
4
use sakila;
select title, description, category, length, price
from film_list
where (price BETWEEN 1 AND 4) AND (length >= 180) AND (category != "Sci-Fi" OR category != "Animation" )

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !