수민

[호붕싸 모각코 8차]

뽑삥 2025. 4. 11. 21:58
SQL의 기본 문법 구조
SELECT [ALL | DISTINCT] [데이터이름] | * | 수식어 | [AS 수식어명칭]
FROM [데이터이름] [AS 데이터이름명칭]
[INNER JOIN | LEFT (OUTER) JOIN | RIGHT (OUTER) JOIN | FULL (OUTER) JOIN] [데이터이름] [ON 검색조건]
[WHERE 검색조건(들)]
[GROUP BY (속성이름, ..., n)]
[HAVING 검색조건(들)]
[질의 UNION 질의 | 질의 UNION ALL 질의]
[ORDER BY (속성이름 [ASC | DESC], ..., n)]

 

SQL:의 기본적인 문법 구조는 위를 따르고 있습니다. 더 깊게 공부한 내용을 밑에 적어 보겠습니다.

 

SELECT 절

: SELECT 절은 조회하고자 하는 데이터를 지정하는 부분입니다.
- ALL: 모든 데이터를 조회합니다. ALL은 기본값으로 설정되어 있습니다. (따로 설정해 주지 않으면 ALL로 작동)

- DISTINCT: 중복된 데이터를 제거하고 고유한 값만 조회합니다.
-  *: 테이블의 모든 컬럼을 조회합니다.
-  AS: 컬럼이나 계산된 값에 별칭(Alias)을 부여합니다.


ex: 책 정보를 조회하는 쿼리

SELECT bookname, publisher
FROM Book
/// 이 쿼리는 Book 테이블에서 bookname과 publisher 컬럼을 조회
SELECT DISTINCT publisher
FROM Book;
// DISTINCT를 사용하여 중복값 제거

 

 

FROM 절

: FROM 절은 데이터를 조회할 테이블을 지정합니다. 별칭을 사용하여 테이블 이름을 간단하게 만들 수도 있습니다:

SELECT b.bookname, b.publisher
FROM Book AS b;
// 여기서 AS b는 Book 테이블에 b라는 별칭을 부여한 것입니다.

 

 

JOIN 절

: JOIN은 여러 테이블을 연결하여 데이터를 조회할 때 사용됩니다.

- INNER JOIN: 두 테이블에서 조건에 맞는 데이터만 반환합니다.
- LEFT (OUTER) JOIN: 왼쪽 테이블의 모든 데이터와 오른쪽 테이블에서 조건에 맞는 데이터를 반환합니다.
- RIGHT (OUTER) JOIN: 오른쪽 테이블의 모든 데이터와 왼쪽 테이블에서 조건에 맞는 데이터를 반환합니다.
- FULL (OUTER) JOIN: 양쪽 테이블의 모든 데이터를 반환합니다.

 

SELECT Customer.name, Book.bookname
FROM Customer
INNER JOIN Orders ON Customer.custid = Orders.custid
INNER JOIN Book ON Orders.bookid = Book.bookid
WHERE Book.price = 20000;
// 이 쿼리는 고객 이름과 책 이름을 조회하며 가격이 20,000원인 책에 대한 주문 정보만 반환합니다.

 

 

WHERE 절

: WHERE 절은 데이터를 필터링하는 조건을 지정합니다.
- 비교 연산자: =, <, >, <=, >=, <>
- 논리 연산자: AND, OR, NOT
- 범위 연산자: BETWEEN, IN, NOT IN
- 패턴 매칭: LIKE
- NULL 확인: IS NULL, IS NOT NULL

 

SELECT bookname, price
FROM Book
WHERE price BETWEEN 10000 AND 20000;
// BETWEEN 연산자를 사용하면 범위를 지정
SELECT bookname, price
FROM Book
WHERE price >= 10000 AND price <= 20000;
// IN 연산자는 특정 값 목록에 해당하는 데이터를 조회

 

SELECT bookname
FROM Book
WHERE bookname LIKE '%데이터%';
// 이 쿼리는 책 이름에 “데이터”라는 단어가 포함된 책을 조회함

 

 

GROUP BY와 HAVING 절

: GROUP BY는 데이터를 그룹화하고, 집계 함수(SUM, AVG, MIN, MAX, COUNT)를 사용하여 그룹별로 계산된 결과를 반환합니다. HAVING은 그룹화된 데이터에 조건을 적용합니다.

 

SELECT publisher, COUNT(*) AS 책_개수
FROM Book
GROUP BY publisher
HAVING COUNT(*) >= 2;
// 출판사별 책의 개수를 조회하고 책의 개수가 2개 이상인 출판사만 조회하는 쿼리

 

ORDER BY 절

: ORDER BY는 조회된 데이터를 정렬합니다. ASC는 오름차순, DESC는 내림차순을 의미합니다:

 

SELECT bookname, price
FROM Book
ORDER BY price DESC, bookname ASC;
// 책을 가격 기준으로 내림차순 정렬하고 가격이 동일한 경우 책 이름으로 오름차순 정렬

 

UNION과 UNION ALL

: UNION은 두 개 이상의 쿼리 결과를 결합합니다. UNION은 중복을 제거하고 UNION ALL은 중복을 제거하지 않습니다:

 

SELECT bookname
FROM Book
WHERE price < 10000
UNION
SELECT bookname
FROM Book
WHERE price > 20000;

 

 

 

 

작성자 신수민
소 감 여러 테이블을 다루는 JOIN 절과 데이터를 그룹화하는 GROUP BY 절을 설명하는 부분이 SQL을 실제로 어떻게 작성할 수 있는지를 보여주는 것에서 가장 중요한 부분이라고 느끼게 된 계기가 되었습니다.
일 시 2025. 4. 11. (금) 18:00 ~ 21:00
장 소 미래관 429호 자율주행스튜디오
참가자 명단 신수민, 임혜진, 배세은, 김윤희 (총 4명)
사 진

 

 

 


'수민' 카테고리의 다른 글

[호붕싸 모각코 9차]  (0) 2025.05.02
[호붕싸 모각코 7차]  (0) 2025.04.04
[호붕싸 모각코 6차]  (0) 2025.03.31
[호붕싸 모각코 5차]  (0) 2025.03.24
[호붕싸 모각코 4차]  (0) 2025.03.23