728x90
반응형
SQL 문 구조는 데이터베이스에서 데이터를 조회하거나 조작할 때 사용하는 명령어들의 구조를 의미합니다. SQL은 데이터를 저장, 수정, 삭제, 검색하는 데 사용되며, 이를 위해 여러 가지 구문을 조합하여 사용합니다. SQL 문은 보통 다음과 같은 구조로 이루어집니다:
SQL은 컴퓨터에게 데이터베이스에서 정보를 가져오거나 수정하라고 말하는 언어이다.
1. SELECT 문
- SELECT: 데이터를 조회할 때 사용하는 구문입니다. 어떤 열(컬럼)을 가져올지 선택합니다.
- 예시: `SELECT name` (이름이라는 열을 가져옴)
- 모든 열을 가져오고 싶을 때는 `SELECT *`를 사용합니다.
SELECT (뭘 가져올까?)
SELECT는 가져오고 싶은 정보를 고르는 것, 만약, SELECT name은 “name(이름)을 가져와라”라는 뜻이다. 그리고 모든 정보를 다 가져오고 싶다면 “SELECT *”라고 쓴다. 여기서 *은 “모든 것”을 의미한다.
2. FROM 절
- FROM: 데이터를 가져올 테이블을 지정하는 구문입니다.
- 예시: `FROM students` (students라는 테이블에서 데이터를 가져옴)
FROM(어디서 가져올까?)
FROM은 어디에서 정보를 가져올지 정하는 것. 만약 FROM students는 “students(학생들) 테이블에서 정보를 가져와”라는 뜻이다.
3. WHERE 절
- WHERE: 특정 조건에 맞는 데이터만 가져오고 싶을 때 사용하는 구문입니다.
- 예시: `WHERE age > 18` (나이가 18살보다 많은 데이터만 가져옴)
WHERE(어떤 조건으로 가져올까?)
WHERE는 특정 조건에 맞는 정보만 가져오는 것이다. 만약, “WHERE age > 18”은 “나이가 18살보다 많은 학생들만 가져와”라는 뜻이다. 프로그래밍 언어의 if 조건문과 비슷하다고 생각하면 된다.
4. GROUP BY 절
- GROUP BY: 데이터를 그룹으로 묶어서 처리할 때 사용하는 구문입니다.
- 예시: `GROUP BY class` (반별로 학생들을 그룹으로 묶음)
GROUP BY (어떻게 묶을까?)
GROUP BY는 데이터를 특정 기준으로 묶어서 정리하는 것. 만약, “GROUP BY class”는 “반별로 학생들을 묶어줘”라는 뜻이다.
5. HAVING 절
- HAVING: 그룹화된 데이터 중에서 조건에 맞는 그룹만 선택할 때 사용하는 구문입니다.
- 예시: `HAVING COUNT(*) > 5` (학생 수가 5명 이상인 반만 선택함)
HAVING(그룹 중에서 어떤 조건으로?)
HAVING은 그룹으로 묶인 데이터 중에서 또다시 조건을 걸 떄 사용한다. 만약, “HAVING COUNT(*) > 5”는 “학생 수가 5명 넘는 반만 보여줘”라는 뜻이다.
WHERE은 FROM의 데이터를 특정 조건에 맞게 가져온다면 HAVING은 GROUP BY의 데이터를 특정 조건에 맞게 가져온다.
6. ORDER BY 절
- ORDER BY: 데이터를 정렬할 때 사용하는 구문입니다.
- 예시: `ORDER BY name ASC` (이름 순서대로 오름차순 정렬)
ORDER BY(어떤 순서로 보여줄까?)
ORDER BY는 결과를 어떤 순서로 보여줄지 정하는 것, 만약, “ORDER BY name ASC”는 “이름 순서대로 오름차순(가나다순)으로 정렬해줘”라는 뜻이다.
---
SQL 실행 순서
SQL 문은 작성된 순서대로 실행되는 것이 아니라, 다음 순서대로 실행됩니다:
1. FROM*(어디에서 데이터를 가져올지)
2. WHERE*(조건에 맞는 데이터만 선택)
3. GROUP BY (데이터를 그룹으로 묶음)
4. HAVING (그룹 중에서 조건에 맞는 것만 선택)
5. SELECT (조회할 열을 선택)
6. ORDER BY (결과를 정렬)
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDR BY
---
SELECT name, age
FROM students
WHERE age > 18
GROUP BY class
HAVING COUNT(*) > 5
ORDER BY name ASC;
학생들 중(FROM)에서 나이가 18살보다 많은(WHERE) 학생들을 반별로 묶고(GROUP BY), 학생 수가 5명 넘는 반만 골라서(HAVING), 이름 순서대로 정렬(ORDER BY)해서 보여줘
---
Citations:
[1] https://libertbaek.tistory.com/entry/SQL-syntax%EC%9D%98-%EC%A0%95%EB%A6%AC-SELECT%EB%AC%B8
[2] https://aws.amazon.com/ko/what-is/sql/
[3] https://eastc.tistory.com/entry/SQL-DML-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A1%B0%EC%9E%91%EC%96%B4
[4] https://hyunki99.tistory.com/53
[5] https://jihnli.tistory.com/6
[6] https://sidework-note.tistory.com/40
[7] https://velog.io/@juunghunz/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-SQLTIL-2021.08.26
[8] https://365kim.tistory.com/102
반응형
'IT > SQLD' 카테고리의 다른 글
SQLD 노랭이 [숫자형 함수] 핵심정리 (0) | 2024.11.11 |
---|---|
SQLD 노랭이 [문자열 함수] 핵심정리 (0) | 2024.11.11 |
SQLD 노랭이 [관계형 데이터베이스 개념] 핵심정리 (0) | 2024.11.11 |
SQLD 노랭이 [정규형] (5) | 2024.11.08 |
SQLD 노랭이 [식별자의 종류/특징/분류] (2) | 2024.11.08 |