1. SELECT 문
- 데이터베이스 테이블에서 원하는 데이터를 가져오는 가장 기본 명령어
질의#1: 모든 도서의 이름과 가격을 검색하세요.
- SELECT 뒤에는 추출할 열 이름 지정 (모든 열을 가져올 때 :: * 기호 사용)
- FROM 뒤에는 데이터를 빼올 대상 테이블 이름 작성



2. WHERE
질의#4: 가격이 20,000원 미만인 도서를 검색하세요.


2.1.집합 조건 (IN, NOT IN)
질의#6: 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하세요.
- IN 집합 조건 사용!

질의#7: 출판사가 '굿스포츠' 혹은 '대한미디어'가 아닌 도서를 검색하세요.
- NOT 을 IN 앞에 붙여서 간단히 반대 조건 만들기

2.2. 패턴 검색 (LIKE, 와일드카드)
질의#8: '축구의 역사'를 출간한 출판사를 검색하세요.
- LIKE를 사용해 검색할 수 있다!

질의#9: 도서이름에 '축구'가 포함된 출판사를 검색하세요.
- 앞뒤로 어떤 글자가 오든 축구라는 단어만 있으면 다 보여줌

2.3. 복합 조건 (AND, OR)

질의#12: 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하시오.

질의#13: 출판사가 '대'로 시작하는 5자리 이름을 가진 도서 정보 검색하기
- 언더바(_)를 글자수만큼 넣어서 검색하면 됨.

3. ORDER BY
- SQL문의 실행 결과를 정렬해서 보여줌.
- 오름차순 : ASC(기본값이라서 생략 가능) / 내림차순 : DESC
질의#15: 도서를 가격순으로 검색하고, 가격이 같으면 이름순으로 검색하세요.

4. 집계 함수
- 단순 검색을 넘어 합계, 평균 등의 계산이 필요할 때 사용 (NULL은 제외)
- 주의 :: WHERE 절에서는 사용 X / SELECT나 HAVING 절에서만 사용 가능



5. GROUP BY와 HAVING
- 집계 함수를 특정 그룹별로 나누어서 계산하고 싶을 때 GROUP BY 사용
- 이 그룹화된 결과에 다시 조건을 걸어 필터링할 때 HAVING 사용
질의#20: 고객별로 주문한 도서의 총수량과 총판매액을 구하세요. (속성이름은 '도서수량'과 '총액'을 사용하세요.)
- 고객별로 묶어서 계산해야 해서 GROUP BY custid

6. 조인(JOIN)
- JOIN :: 나누어진 테이블들을 연결하여 한 번에 원하는 데이터를 검색
6.1.두 개 이상의 테이블 조인하기
- 조인을 할 때는 FROM 절에 연결할 테이블을 모두 적고, WHERE 절에 두 테이블이 연결되는 조건(일반적으로 외래키와 기본키)을 적어줍니다.
질의#22: 고객과 고객의 주문에 관한 데이터를 모두 나타내세요.


6.2. 세 개의 테이블 조인하기
질의#26: 고객의 이름과 고객이 주문한 도서의 이름을 구하세요.

질의#27: 가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하세요.

7. 외부조인(OUTER JOIN)
- OUTER JOIN :: 조건을 만족하지 않는 데이터까지 모두 검색
질의#28: 도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 판매가격을 구하세요.
- LEFT OUTER JOIN 사용

3장 연습문제 풀기!!!
1. 박지성의 총 구매액 구하기

2. 마당서점에서 고객의 이름과 고객별 구매액 구하기

3. 고객의 이름과 고객이 구매한 도서 목록

4. 박지성이 구매한 도서의 출판사 수

5. 박지성이 구매하지 않은 도서의 이름

'Develop > DataBase' 카테고리의 다른 글
| [6주차] 뷰, 함수, 프로시져 (1) | 2026.04.11 |
|---|---|
| [5주차] SQL 고급 쿼리 (0) | 2026.04.04 |
| [4주차] SQL 기초 (JOIN, CREATE, ALTER, DROP) (0) | 2026.03.28 |
| [2주차] 관계 데이터 모델 (DBMS) (0) | 2026.03.14 |
| [1주차] Database와 SQL (0) | 2026.03.07 |