[SQL] 2. SQL 기본 예제

🏃Dekay (JuniorDeveloper)·2021년 10월 14일
0

SQL

목록 보기
2/4
post-thumbnail

SQL의 기본 예제는 여기를 참고했다.

1. SELECT (조회)

👉 모든 필드(컬럼)를 조회하는 경우

SELECT *
FROM [테이블 명]

👉 예시

SELECT *
FROM TABLE

TABLE 테이블의 모든 필드 검색

👉 여러 필드를 조회하는 경우

SELECT [필드], [필드] ...
FROM [테이블 명]

👉 예시

SELECT A, B
FROM TABLE

TABLE 테이블A, B 필드 검색

2. DISTINCT (중복 제외)

👉 중복된 데이터를 제외하고 조회

SELECT DISTINCT [필드 명]
FROM [테이블 명]

👉 예시

SELECT DISTINCT A
FROM TABLE

TABLE 테이블A, 필드에서 중복되는 값을 제외한 후 조회

3. WHERE (조건에 따른 검색)

👉 조건식을 적용하는 경우

SELECT *
FROM [테이블명]
WHERE [필드명]=0

👉 예시

SELECT * 
FROM TABLE 
WHERE A='park'

TABLE 테이블A, 필드 내용이 park인 값 조회

여러 조건식을 사용할 때 AND, OR을 이용하면 된다.

4. 조건식 종류

4.1 BETWEEN (~부터 ~까지)

// [필드명]의 값이 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 이하인 값 조회

4.2 IN (~이거나)

// [필드명]의 값이 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, 필드값이 야식 먹기인 데이터 조회

4.3 IS NULL (필드값이 비어있는지 판단)

// [필드명]의 값이 비어 있는 데이터 검색
WHERE [필드명] IS NULL
// [필드명]의 값이 비어 있지 않은 데이터 검색
WHERE [필드명] IS NOT NULL

👉 예시

SELECT *
FROM TABLE
WHERE A IS NULL

TABLE 테이블A, 필드값이 NULL인 데이터 조회

4.4 LIKE (~로 시작 하거나, 포함, 끝나는 단어)

// [필드명] 데이터 중에서 '특정값'으로 시작하는 데이터 검색
WHERE [필드명] LIKE '[특정값%]'
// [필드명] 데이터 중에서 '특정값'을 포함하는 데이터 검색
WHERE [필드명] NOT LIKE '[%특정값%]'
// [필드명] 데이터 중에서 '특정값'으로 끝나는 데이터 검색
WHERE [필드명] NOT LIKE '[%특정값]'

👉 예시

SELECT *
FROM TABLE
WHERE A LIKE 'P%'

TABLE 테이블A, 필드값이 P로 시작하는 데이터 조회

5. ORDER BY (정렬)

👉 특정 필드 기준으로 정렬하는 경우

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 필드 내용을 오름차순으로 정렬

6. JOIN (테이블 조합)

✅ 자세한 설명은 [SQL] 1. SQL 기본 문법을 참고하면 된다.
SQL JOIN의 기본 예제는 여기를 참고했다.

6.1 INNER 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 테이블의 NameCustomer 테이블의 Name이 일치하는 데이터를 가져와서 하나의 테이블로 합치기.

👉 이름이 길면 가독성이 떨어지기 때문에 별칭(alias & AS)를 사용하면 된다.

SELECT *
FROM Reservation AS r, Customer ALIAS c
WHERE r.Name = c.Name;

6.2 LEFT JOIN (부분 집합)

  • 첫 번째 테이블을 기준으로, 두 번째 테이블을 조합하는 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 필드를 기준으로 CustomerName 필드와 일치하는 데이터를 LEFT JOIN으로 가져온 후, 그 중에서 ReservationDate 필드의 값이 2016년 02월 01이후인 데이터만을 가져온다.

6.3 RIGHT JOIN (부분 집합)

  • 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으로 가져온다.

6.4 FULL OUTER JOIN (외부 조인, 합집합)

  • A, B 테이블을 JOIN할 경우, 조건에 맞지 않은 데이터도 표시하고 싶을 때 OUTER JOIN을 사용한다.
  • MySQL은 FULL OUTER JOIN이 없어서, LEFT JOINRIGHT JOINUNION해서 사용한다.
    👉 UNION은 중복을 제거하기 때문에 모든 값을 보고싶은 경우 UNION ALL을 사용하면 된다.
  • OUTER JOINUSING, ON 조건절을 필수적으로 사용해야 한다.
SELECT *
FROM [테이블명1]
LEFT JOIN [테이블명2]
UNION // 또는 UNION ALL
SELECT *
FROM [테이블명1]
RIGHT JOIN [테이블명2]

end

profile
Believe you can & you're half way there 🙏

0개의 댓글