SQL의 기본 예제는 여기를 참고했다.
👉 모든 필드(컬럼)를 조회하는 경우
SELECT * FROM [테이블 명]
👉 예시
SELECT * FROM TABLE
✍
TABLE
테이블의 모든 필드 검색
👉 여러 필드를 조회하는 경우
SELECT [필드], [필드] ... FROM [테이블 명]
👉 예시
SELECT A, B FROM TABLE
✍
TABLE
테이블의A
,B
필드 검색
👉 중복된 데이터를 제외하고 조회
SELECT DISTINCT [필드 명] FROM [테이블 명]
👉 예시
SELECT DISTINCT A FROM TABLE
✍
TABLE
테이블의A
, 필드에서 중복되는 값을 제외한 후 조회
👉 조건식을 적용하는 경우
SELECT * FROM [테이블명] WHERE [필드명]=0
👉 예시
SELECT * FROM TABLE WHERE A='park'
✍
TABLE
테이블의A
, 필드 내용이park
인 값 조회
✅ 여러 조건식을 사용할 때 AND
, OR
을 이용하면 된다.
// [필드명]의 값이 0부터 100까지인 데이터 조회 WHERE [필드명] BETWEEN 0 AND 100 // [필드명]의 값이 0이상 100이하가 아닌 데이터 조회 WHERE [필드명] NOT BETWEEN 0 AND 100
👉 예시
SELECT * FROM TABLE WHERE A BETWEEN 10 AND 20
✍
TABLE
테이블의A
, 필드값이 10 이상 20 이하인 값 조회
// [필드명]의 값이 0, 1, 2과 일치하는 값 조회 WHERE [필드명] IN (0, 1, 2) // [필드명]의 값이 0, 1, 2과 일치하지 않는 값 조회 WHERE [필드명] NOT IN (0, 1, 2)
👉 예시
SELECT * FROM TABLE WHERE A IN ('야식 먹기')
✍
TABLE
테이블의A
, 필드값이야식 먹기
인 데이터 조회
// [필드명]의 값이 비어 있는 데이터 검색 WHERE [필드명] IS NULL // [필드명]의 값이 비어 있지 않은 데이터 검색 WHERE [필드명] IS NOT NULL
👉 예시
SELECT * FROM TABLE WHERE A IS NULL
✍
TABLE
테이블의A
, 필드값이NULL
인 데이터 조회
// [필드명] 데이터 중에서 '특정값'으로 시작하는 데이터 검색 WHERE [필드명] LIKE '[특정값%]' // [필드명] 데이터 중에서 '특정값'을 포함하는 데이터 검색 WHERE [필드명] NOT LIKE '[%특정값%]' // [필드명] 데이터 중에서 '특정값'으로 끝나는 데이터 검색 WHERE [필드명] NOT LIKE '[%특정값]'
👉 예시
SELECT * FROM TABLE WHERE A LIKE 'P%'
✍
TABLE
테이블의A
, 필드값이P
로 시작하는 데이터 조회
👉 특정 필드 기준으로 정렬하는 경우
SELECT [필드명] FROM [테이블명] ORDER BY [필드명]
👉 예시
SELECT * FROM TABLE ORDER BY A
✍
TABLE
테이블의A
, 필드내용 기준으로 오름차순(기본값) 정렬
👉 오름차순ASC
, 내림차순DESC
👉 정렬 기준이 여러 개인 경우
SELECT [필드명] FROM [테이블명] ORDER BY [필드명1], [필드명2] DESC, [필드명3] ASC
👉 예시
SELECT * FROM TABLE ORDER BY A, B DESC, C ASC
✍
TABLE
테이블의A
,B
필드내용 기준으로 내림차순 정렬한 뒤,C
필드 내용을 오름차순으로 정렬
✅ 자세한 설명은 [SQL] 1. SQL 기본 문법을 참고하면 된다.
✅ SQL JOIN의 기본 예제는 여기를 참고했다.
ON
과 함께 사용하고,ON
절의 조건을 만족하는 데이터만 가져온다.SELECT * FROM [테이블명1] INNER JOIN [테이블명2] ON [테이블명1].[필드명] = [테이블명2].[필드명];
INNER
를 생략하고JOIN
만 써도 기본으로INNER JOIN
으로 인식한다.✍
👉 예시SELECT * FROM Reservation INNER JOIN Customer ON Reservation.Name = Customer.Name;
✍
Reservation
테이블의Name
과Customer
테이블의Name
이 일치하는 데이터를 가져와서 하나의 테이블로 합치기.
👉 이름이 길면 가독성이 떨어지기 때문에 별칭(alias & AS)를 사용하면 된다.
SELECT *
FROM Reservation AS r, Customer ALIAS c
WHERE r.Name = c.Name;
JOIN
ON
절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져오고, 해당 레코드의 두 번째 필드 값은 모두 NULL
로 표시된다.ON
절에서는 WHERE
에서 사용할 수 있는 모든 조건을 사용할 수 있다.SELECT * FROM [테이블명1] LEFT JOIN [테이블명2] ON [테이블명1].[필드명] = [테이블명2].[필드명]
👉 예시
SELECT * FROM Reservation LEFT JOIN Customer ON Reservation.Name = Customer.Name WHERE ReservationDate > '2016-02-01';
✍
Reservtion
테이블의Name
필드를 기준으로Customer
의Name
필드와 일치하는 데이터를LEFT JOIN
으로 가져온 후, 그 중에서ReservationDate
필드의 값이2016년 02월 01
일 이후인 데이터만을 가져온다.
LEFT JOIN
과 반대로 두 번째 테이블을 기준으로, 첫 번째 테이블을 조합하는 JOIN
SELECT * FROM [테이블명1] RIGHT JOIN [테이블명2] ON [테이블명1].[필드명] = [테이블명2].필드명
👉 예시
SELECT * FROM Reservation RIGHT JOIN Customer ON Reservation.Name = Customer.Name;
✍
Customer
테이블의Name
필드를 기준으로Reservation
테이블의Name
필드와 일치하는 레코드만을RIGHT JOIN
으로 가져온다.
A
, B
테이블을 JOIN
할 경우, 조건에 맞지 않은 데이터도 표시하고 싶을 때 OUTER JOIN
을 사용한다.LEFT JOIN
과 RIGHT JOIN
을 UNION
해서 사용한다.UNION
은 중복을 제거하기 때문에 모든 값을 보고싶은 경우 UNION ALL
을 사용하면 된다.OUTER JOIN
은 USING
, ON
조건절을 필수적으로 사용해야 한다.SELECT * FROM [테이블명1] LEFT JOIN [테이블명2] UNION // 또는 UNION ALL SELECT * FROM [테이블명1] RIGHT JOIN [테이블명2]