SQL에서 사용되는 기본 문법을 정리하는 글입니다.
⭐️딱딱하게 작성되어서 언어를 처음 배울 떄의 지루함이 느껴지실 수도 있습니다…!
SELECT문은 구축된 테이블에서 데이터를 추출하는 기능을 합니다. 기본형식은 다음과 같습니다.
1 | SELECT select_expr --열 이름 |
1. SELECT ~ FROM
FROM
뒤에는 테이블
이름이 뒤따릅니다.
예시
SELECT * FROM member;
member
테이블에서모든 column(*)
의 내용을 가져오는 SQL 문입니다.SELECT mem_name FROM member;
member
테이블에서mem_name
column의 내용을 가져오는 SQL 문입니다.SELECT mem_name, addr FROM member;
member
테이블에서mem_name
과addr
column의 내용을 가져오는 SQL 문입니다.
2. SELECT ~ FROM ~ WHERE
WHERE
뒤에는 조건문이 뒤따릅니다. 보고싶은 row만 선택해서 볼 수 있습니다.
기본구조는 다음과 같습니다.
1 | SELECT 열_이름 FROM 테이블_이름 WHERE 조건식; |
WHERE 다음에 사용할 수 있는 조건은 다음과 같습니다.
- 관계연산자 (<, >, <=, >=), 논리연산자 (AND, OR)
- BETWEEN ~ AND
- IN()
- LIKE
예시
SELECT * FROM member WHERE mem_number = 4;
member
테이블에서mem_number
가 4인 row의모든 column(*)
의 내용을 가져오는 SQL 문입니다.SELECT mem_name, height FROM member WHERE height <= 162;
member
테이블에서height
가 162 이하인 row의mem_name
,height
column의 내용을 가져오는 SQL 문입니다.SELECT mem_name, height FROM member WHERE height BETWEEN 162 AND 165;
member
테이블에서height
가 163 이상, 165 이하인 row의mem_name
,height
column의 내용을 가져오는 SQL 문입니다.
3. ORDER BY
결과데이터를 정렬하는 예약어 입니다. 아래와 같은 구조로 사용됩니다.
1 | SELECT 열_이름 FROM 테이블_이름 ORDER BY {col_name | expr | position} LIMIT 숫자; |
기본 정렬순서는 ASC
으로 ascending(오름차순)입니다. 내림차순은 DESC
으로 ORDER BY
에서 column 뒤에 넣어줌으로 설정 할 수 있습니다.
WHERE
와 같이 사용가능하지만 ORDER BY
가 뒤에 있어야 합니다.
예시
-
SELECT mem_id, mem_name FROM member ORDER BY debut_date;
member
테이블에서debut_date
를 오름차순으로 정렬하여mem_id
,mem_name
의 내용을 가져오는 SQL 문입니다. -
SELECT mem_id, mem_name FROM member ORDER BY debut_date DESC;
member
테이블에서debut_date
를 내림차순으로 정렬하여mem_id
,mem_name
의 내용을 가져오는 SQL 문입니다. -
SELECT mem_id, mem_name FROM member WHERE height >=164 ORDER BY height DESC;
member
테이블의height
가 164 이상인 row에서height
를 내림차순으로 정렬하여mem_id
,mem_name
의 내용을 가져오는 SQL 문입니다.
4. LIMIT
LIMIT
는 출력하는 개수를 제한하는 예약어입니다. 사용법은 간단합니다.
1 | SELECT 열_이름 FROM 테이블 LIMIT (시작), 개수; |
위에 작성한 시작은 생략이 가능한데 개수만 입력하면 처음부터 개수만큼 출력합니다.
5. DISTINCT
DISTINCT
는 중복된 데이터를 제거합니다. 제거할 열 이름
앞에 입력하여 지정할 수 있습니다.
1 | SELECT DISTINCT 열_이름 FROM 테이블 |
6. GROUP BY
GROUP BY는 그룹으로 묶어주는 역할을 합니다. 그룹으로 묶은 다음 집계 함수aggregate function을 사용합니다.
함수 명 | 설명 |
---|---|
SUM() | 합계를 구합니다. |
AVG() | 평균을 구합니다. |
MIN() | 최소값을 구합니다. |
MAX() | 최대값을 구합니다. |
COUNT() | row의 개수를 셉니다. |
COUNT(DISTINCT) | row의 개수를 중복을 제거하고 셉니다. |
Aggregate functions
예시
SELECT mem_id, SUM(amount) FROM member GROUP BY mem_id;
member
테이블에서mem_id
별로amount
를 합치고mem_id
,SUM(amount)
의 내용을 가져오는 SQL 문입니다.
HAVING
HAVING
은 GROUP BY
에서 사용하는 조건문입니다. 위에서 사용한 집계함수는 WHERE
절에서는 사용할 수 없습니다. GROUP BY
뒤에 사용해야합니다.
여기서 중간점검을 해보겠습니다.
아래 각 대괄호에는 어떤 예약어가 들어가면 될까요?
보기
LIKE, DEC, ORDER BY, DISTINCT, ASC, AND, OR, >=, LIMIT
1 | SELECT * FROM member [ ] height; |
…
아래와 같이 들어 갈 수 있습니다.
1 | SELECT * FROM member ORDER BY height; |
다음은 데이터를 변경할 때 사용하는 SQL문을 보겠습니다.
7. INSERT
테이블에 row 데이터를 입력할 때 사용하는 SQL문입니다. 기본 구조는 아래와 같습니다.
1 | INSERT INFO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...) |
테이블
뒤에 따라오는 column
의 이름은 생략 가능합니다. 생략하는 경우에는 VALUES의 개수는 테이블의 column
수와 동일해야합니다.
8. UPDATE
테이블의 값이 변경되는 경우에는 UPDATE
를 사용할 수 있습니다. 기본 구조는 아래와 같습니다.
1 | UPDATE 테이블_이름 SET 열1=값1, 열2=값2, ... WHERE 조건 ; |
9. DELETE
테이블에서 row를 삭제할 때에는 DELETE를 사용할 수 있습니다. 기본 구조는 아래와 같습니다.
1 | DELETE FROM 테이블_이름 WHERE 조건; |
오늘은 SQL에서 사용되는 기본 문법을 정리하였습니다.
다음에는 다양한 데이터 타입, JOIN, Stored procedure에 대해 보겠습니다.
읽어주셔서 감사드립니다.