Development Study/Backend

[SQL] 연습 문제 ( SELECT함수 ~ 집계 함수 )

  • -
728x90

이 포스팅은 이전 글과 연계되어있다. 혹시 보고오지 못했다면 먼저 읽고 문제를 풀어보는 것을 추천한다

이전 글 보고오기

[SQL] 저장된 데이터를 원하는 대로 찾아보자 ( SELECT ~ 집계 함수 )

들어가기에 앞서 SQL문은 기본적인 문법, 실습 위주의 학습을 통해 빠르게 익힐 수 있다 꾸준하고 반복적인 학습을 하면 실력이 빠르게, 좋은 방향으로 늘어날 것이라 생각한다 SQL문 관련 기능/

time-map-installer.tistory.com



문제를 풀다보면 중복된다고 느낄 만한 문제들이 있다
사실 정말 중복되는 문제들이다
그만큼 중요한 문제들로 여러 번 풀어보며 익히길 바란다


+각 문제마다 힌트와 정답을 따로 적어두었다
혹시 막힌다면 힌트를 열어보고 그래도 모르겠다면 정답을 보자


총 35문제가 준비되어 있으며, 시간이 조금 걸리겠지만
모두 푼다면 분명 많은 도움이 될 것이라고 생각한다

준비가 되었다면 아래 경계선을 넘어가면 된다


모두 어렵지 않게 풀 거라 믿는다

분명 다들 똑똑한 사람들일 테니까


1. 고객정보에서 "Kim Yuna"씨를 찾아보자
힌트 보기

더보기

Kim Yuna는 Customer name이다

정답 보기

더보기

SELECT *

FROM Customer

WHERE name = 'Kim Yuna';

2. Book에 해당하는 모든 정보를 불러와 보자
힌트 보기

더보기

*(아스타)는 모든 정보를 불러온다

정답 보기

더보기

SELECT *

FROM Book;


3. 모든 Book의 bookname과 price를 검색해보자
힌트 보기

더보기

booknamepriceSELECT해 보자

정답 보기

더보기

SELECT bookname, price

FROM Book;


4. 모든 Book의 bookid, bookname, publisher, price를 검색해보자
힌트 보기

더보기

bookid bookname publisher price SELECT해 보자

정답 보기

더보기

SELECT bookid, bookname, publisher, price

FROM Book;


5. 방금 4번 문제를 다르게 작성해서 같은 결과를 내 보자
힌트 보기

더보기

Book에는 bookid, bookname, publisher, price라는 칼럼이 전부이다

정답 보기

더보기

SELECT *

FROM Book;


6. Book의 publisher을 찾아보자
힌트 보기

더보기

publisher SELECT해 보자

정답 보기

더보기

SELECT publisher

FROM Book;


7. Book의 publisher는 어디 어디일까?? 중복되지 않게 출력해보자
힌트 보기

더보기

중복제거는 DISTINCT로 할 수 있다

정답 보기

더보기

SELECT DISTINCT publisher

FROM Book;


8. price가 20000미만인 도서는 무엇이 있을까??
힌트 보기

더보기

price가 20000미만인 조건은 어디에 적어야 할까?

정답 보기

더보기

SELECT *

FROM Book

WHERE price < 20000;


9. book 이 포함된 모든 책을 찾고 싶다. 어떻게 해야 할까?
힌트 보기

더보기

무언가의 이름 일부를 찾고 싶다면 Like를 이용해보자

'%%' 사이에 무언가를 넣어야 할 것 같다

정답 보기

더보기

SELECT *

FROM Book

WHERE bookname LIKE '%book%';


10. BETWEEN을 사용해서 10000원 이상, 20000원 이하인 Book을 검색해보자
힌트 보기

더보기

BETWEEN A AND B 라는 말이 있다

정답 보기

더보기

SELECT *

FROM Book

WHERE price BETWEEN 10000 AND 20000;

또는

SELECT *

FROM Book

WHERE price >= 10000 AND price <= 20000;

BETWEEN대신 조건문들의 교집합으로도 검색할 수 있다


11. Soccer girl, Golf Bible이라는 이름을 가진 책을 검색해보자
힌트 보기

더보기

IN('검색하려는 것', '검색하려는 것')

정답 보기

더보기

SELECT *

FROM Book

WHERE bookname IN ('Soccer girl','Golf Bible');


12. 11번의 이름을 가지지 않은 책들을 검색해보자
힌트 보기

더보기

분명 어떤 함수가 있던 반대되는 함수는 NOT을 붙였던 걸로 기억하는데..

정답 보기

더보기

SELECT *

FROM Book

WHERE bookname NOT IN ('Soccer girl','Golf Bible');


13. 분명 내가 찾던 책 이름에 soccer이라는 단어가 들어가 있었다.. 무슨 책일까? 관련 책들을 찾아보자!
힌트 보기

더보기

무언가의 이름 일부를 찾고 싶다면 Like를 이용해보자

'%%' 사이에 무언가를 넣어야 할 것 같다

정답 보기

더보기

SELECT *
FROM Book
WHERE bookname LIKE '%Soccer%';


14. 아닌가? Olympic이라는 단어가 들어갔던 것 같기도 하다. 관련 책들을 찾아보자
힌트 보기

더보기

무언가의 이름 일부를 찾고 싶다면 Like를 이용해보자

'%%' 사이에 무언가를 넣어야 할 것 같다

정답 보기

더보기

SELECT *
FROM Book
WHERE bookname LIKE '%Olympic%';


15. 스포츠 관련된 책들을 보다보니 야구는 어떨까? baseball로 끝나는 책들도 찾아보자
힌트 보기

더보기

무언가의 이름 일부를 찾고 싶다면 Like를 이용해보자

'% ' 끝나는 단어라서 %는 앞에만 써도 충분하다

정답 보기

더보기

SELECT *
FROM Book
WHERE bookname LIKE '%baseball';


16. 그 책 이름은 뭐였을까? 분명 알파벳 B가 들어가 있던 책이었는데..
힌트 보기

더보기

무언가를 이름 일부를 이용해서 찾고 싶다면 Like를 이용해보자

'%%' 사이에 무언가를 넣어야 할 것 같다

정답 보기

더보기

SELECT *
FROM Book
WHERE bookname LIKE '%B%';


17. Football에 관한 책을 사고 싶은데 난 20000원밖에 들고 오지 않았어. 난 어떤 책을 살 수 있을까?
힌트 보기

더보기

무언가를 이름 일부를 이용해서 찾고 싶다면 Like를 이용해보자

'%%' 사이에 무언가를 넣어야 할 것 같다

그리고

가격이 20000원 보다 저렴해야하는 조건도 만족시켜야 한다

정답 보기

더보기

SELECT *
FROM Book
WHERE bookname LIKE '%football%'

AND price < 20000;


18. 나는 Goodsports사나 Daehan media에서 출판한 책을 찾고 있어
힌트 보기

더보기

11번 힌트 참고

'또는'을 이용해 보는 건 어떨까?

정답 보기

더보기

SELECT *
FROM Book
WHERE publisher = 'Good sports'
OR publisher = 'DaeHan Media';

또는

SELECT *
FROM Book
WHERE publisher IN ('Good sports', 'DaeHan Media');


19. 이곳에 있는 Book들의 도서번호, 도서명, 출판사 정도만 모아보면 될 것 같아
힌트 보기

더보기

bookid bookname publisher SELECT해 보자

정답 보기

더보기

SELECT bookid, bookname, publisher
FROM Book;


20. 도서가 뭔가 뒤죽박죽하게 들어왔구나. 사람들이 찾기 쉽게 알파벳 오름차순으로 정리를 해보자
힌트 보기

더보기

정렬은 ORDER BY를 이용한다

정답 보기

더보기

SELECT *
FROM Book
ORDER BY bookname;


21. 20번을 반대로 해보기(내림차순)
힌트 보기

더보기

정렬은 ORDER BY를 이용한다

하지만 내림차순은 DESC도 같이 이용해야 한다

정답 보기

더보기

SELECT *
FROM Book
ORDER BY bookname DESC;


22. 출판사명을 내림차순으로 출력해 보자
힌트 보기

더보기

정렬은 ORDER BY를 이용한다

하지만 내림차순은 DESC도 같이 이용해야 한다

정답 보기

더보기

SELECT *
FROM Book
ORDER BY publisher DESC;


23. 비싼 도서는 잘 안팔리니까, 비싼 도서부터 싼 도서 순으로 정렬하고.. 출판사는 알파벳 역순으로 두자
힌트 보기

더보기

정렬은 ORDER BY를 이용한다

하지만 내림차순은 DESC도 같이 이용해야 한다

콤마를 이용하면 여러 항목들을 같이 정렬할 수 있다

정답 보기

더보기

SELECT bookid, bookname, publisher, price
FROM Book
ORDER BY price DESC, publisher DESC;


24. 23번의 마지막줄을 다르게 표현해보자
힌트 보기

더보기
SELECT 이후에 적힌 칼럼의 순서는각각 1, 2, 3, 4....의 INDEX값을 가진다

정답 보기

더보기

SELECT bookid, bookname, publisher, price
FROM Book
ORDER BY 4 DESC, 3 DESC;


25. 24번처럼 도서 이름을 내림차순으로 정렬해 보자
힌트 보기

더보기

SELECT 이후에 적힌 칼럼의 순서는

각각 1, 2, 3, 4....의 INDEX값을 가진다

정렬은 ORDER BY를 이용한다

하지만 내림차순은 DESC도 같이 이용해야 한다

정답 보기

더보기

SELECT bookid, bookname, publisher, price
FROM Book
ORDER BY 2 DESC;


26. 고객의 데이터가 필요해. 모두 검색해주겠어?
힌트 보기

더보기

고객은 Customer이다

정답 보기

더보기

SELECT *
FROM Customer;


27. 휴대폰 번호를 등록하지 않은 고객의 정보가 필요해
힌트 보기

더보기

NULL은 NULL이다

= NULL IS NULL

정답 보기

더보기

SELECT custid, name, phone
FROM Customer
WHERE phone IS NULL;


28. 27번을 반대로 해보기
힌트 보기

더보기

NULL이 아닌 것은 NULL이 아니다

= NULL IS NOT NULL

정답 보기

더보기

SELECT custid, name, phone
FROM Customer
WHERE phone IS NOT NULL;


29. 여기 있는 책들은 어디어디 출판사에서 나왔나요? 정보를 주시겠어요?
힌트 보기

더보기

이 문제에 대해서는 힌트를 제공해 드리지 않아요~ 그동안 풀었던 문제에 정답이 나와있어요!

정답 보기

더보기

SELECT publisher
FROM Book
ORDER BY 1 DESC;


30. 비싼 도서 순으로, 가격이 같으면 출판사 이름 오름차순으로 정렬해서 주세요. 도서명, 출판사명, 가격만 필요해요.
힌트 보기

더보기

이 문제에 대해서는 힌트를 제공해 드리지 않아요~ 그동안 풀었던 문제에 정답이 나와있어요!

정답 보기

더보기

SELECT bookname, publisher, price
FROM Book
ORDER BY 3 DESC, 2;


31. 30번 정보에서 정렬 방식을 유지하면서 Football관련 도서만 따로 찾아보자
힌트 보기

더보기

이 문제에 대해서는 힌트를 제공해 드리지 않아요~ 그동안 풀었던 문제에 정답이 나와있어요!

정답 보기

더보기

SELECT bookname, publisher, price
FROM Book
WHERE bookname LIKE '%football%'
ORDER BY 3 DESC, 2;


32. 휴대폰번호가 없는 사람이 누가 있었죠?? 그 사람의 데이터가 필요해요
힌트 보기

더보기

이 문제에 대해서는 힌트를 제공해 드리지 않아요~ 그동안 풀었던 문제에 정답이 나와있어요!

정답 보기

더보기

SELECT *
FROM Customer
WHERE phone IS NULL;


33. 보유하고 있는 도서 중 가장 비싼 도서의 가격은 얼마일까??
힌트 보기

더보기
MAX가격선택한다

정답 보기

더보기

SELECT MAX(PRICE)
FROM Book;


34. 보유하고 있는 도서 중 가장 저렴한 도서의 가격은 얼마일까??
힌트 보기

더보기

MIN가격 선택한다

정답 보기

더보기

SELECT MIN(PRICE)
FROM Book;


35. 이곳에 있는 출판사의 수는 몇 개 일까?
힌트 보기

더보기

중복되지 않는 publisher COUNT한다

정답 보기

더보기

SELECT COUNT(DISTINCT(publisher))
FROM Book;


여기까지 오신 여러분들 모두 수고 많으셨습니다 모두 실력이 한 층 더 성장했길 바랍니다

뭐야 너무 쉽잖아 더 어려운 건 없어?? 라고 생각한다면?

↓ ↓ ↓ ↓

일주일 뒤에 이 링크를 방문해 풀어보자

[SQL] 일주일 뒤에 풀어보는 SQL ( SELECT함수 ~ 집계 함수 )

SQL문 특성 상 자주 하지 않으면 잊어버리기에 이번엔 얼마나 기억하고 있을 지 복습해보는 시간을 가져보도록 하겠다 여러분들은 분명 다시 풀어봐도 잘 풀 수 있을 것이다 아래에는 SQL의 시작

time-map-installer.tistory.com

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.