본문 바로가기

IT/SQLD

SQLD 노랭이 [SQL 구조] 핵심정리

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

반응형