1) SQL 개요
SQL(Structured Query Language)
: RDBMS를 위한 표준 질의어, 비절차적 데이터 언어
➔ SEQUEL에서 유래했다.
SQL 분류
- 데이터 정의어(DDL)
: 테이블 생성/변경/삭제
➔ ex) CREATE, ALTER, DROP ... - 데이터 조작어(DML)
: 데이터 삽입/수정/삭제/검색
➔ ex) SELECT, INSERT, DELETE ... - 데이터 제어어(DCL)
: 데이터 접근 및 사용권한 제어
➔ ex) GRANT, REVOKE ...
2) 데이터조작어 - 검색
/* == 작성 순서에 주의할 것 ==*/
SELECT [ALL | DISTINCT] 속성이름
FROM 테이블이름
WHERE 검색조건
GROUP BY 속성이름
HAVING 검색조건
ORDER BY 속성이름;
SELECT
- ALL(DEFAULT) / DISTINCT(중복제거)
- 속성이름 순서 = 테이블 열 순서
IF 모든 속성 검색 ➔ *로 대체
WHERE vs. HAVING
| WHERE | HAVING | |
| 사용 가능 조건 | 비교, 범위, 집합(IN/NOT IN), 패턴(LIKE), NULL, 복합조건(AND/OR/NOT) | 집계함수(SUM/AVG/MAX/MIN/COUNT) |
| 예시 | 가격이 1만원이상 2만원 이하인 도서 검색 SELECT * FROM Book WHERE price BETWEEN 10000 AND 20000 |
아래 참고 |
와일드 문자(LIKE와 같이 사용됨)
% : 0개 이상의 문자열과 일치
➔ ex) %축구% = 축구를 포함하는 문자열
[] : 1개의 문자와 일치
➔ ex) [0-5]% = 0-5 사이 숫자로 시작하는 문자열
[^] : 1개의 문자와 불일치
➔ ex) [^0-5]% = 0-5 사이 숫자로 시작하지 않는 문자열
_ : 특정 위치의 1개의 문자와 일치
➔ ex) _구% 두 번째 위치에 ‘구’가 들어가는 문자열
사용 예) WHERE bookname LIKE '_구%'
ORDER BY
- ASC: 오름차순 (DEFAULT)
- DESC: 내림차순
예시) ORDER BY bookname DESC, publisher ASC
집계함수
: 특정 속성 값을 통계적으로 계산하는 함수
- 특징
- NULL값 제외하고 계산
- WHERE(X) / SELECT, HAVING(O)
- 종류
- SUM([ALL | DISTINCT] 속성이름)
- AVG([ALL | DISTINCT] 속성이름)
- COUNT([[ALL | DISTINCT] 속성이름] | *) : 행의 개수 카운트
- MAX([ALL | DISTINCT] 속성이름)
- MIN([ALL | DISTINCT] 속성이름)
AS 키워드
: 속성이름의 별칭 부여(AS 생략 가능)
ex) SELECT SUM(salesprice) AS 총매출
⚠️ AS 사용한 별칭을 언급할 땐, 실행 순서 유의하기
GROUP BY
: 특성 속성의 값이 같은 튜플을 모아 그룹을 만든 후 검색
/*== 실행 순서 ==*/
5 SELECT custid, COUNT(*) AS 도서수량,
SUM(saleprice) AS 총액
1 FROM Orders
2 WHERE saleprice >= 8000
3 GROUP BY custid
4 HAVING COUNT(*) >= 2
6 ORDER BY custid;
조인 검색
ex) 주문.주문고객 (= 테이블이름.속성)
- 카티션 프로덕트 (= 비효율적)
: SELECT * FROM Customer, Orders;
➔ 조건 없이 연결 - 외부조인
: 테이블1 LEFT | RIGHT OUTER JOIN 테이블2 ON 조인조건
➔ 여러 개의 테이블로 연결하여 데이터를 검색하는 것, 일반적으로 외래키를 속성으로 사용
> 도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 판매가격을 구하세요 ➔ Customer 왼쪽 외부조인(custid기준) Orders SELECT Customer.name, saleprice FROM Customer LEFT OUTER JOIN Orders ON Customer.custid=Orders.custid;
관련 노션 링크:
https://eastern-albatross-55e.notion.site/3-SQL-32771eb963f08089a13ef0eeab314d70?source=copy_link
[목차여기]
'[CODE] > Database' 카테고리의 다른 글
| [DB] 4. SQL 고급(2) - 뷰, 인덱스 (0) | 2026.04.09 |
|---|---|
| [DB] 4. SQL 고급(1) - 내장함수, NULL, 비교문, 부속질의 (0) | 2026.04.03 |
| [DB] 3. SQL 기초(2) - 부속질의, 데이터 정의어, 데이터 조작어 (0) | 2026.03.26 |
| [DB] 2. 관계 데이터 모델 - 무결성 제약조건, 관계대수 (0) | 2026.03.25 |
| [DB] 1. 데이터베이스 시스템 (0) | 2026.03.25 |