개발/💻 CS 지식

🐬 MySQL 기본 문법

정소은 2024. 7. 30. 15:08

 

 

 

SQL 기본 문법

 

SQL문은 크게 DDL, DML, DCL로 나뉜다

DDL(Database Definition Language): 데이터베이스를 생성, 삭제, 수정하는 등 데이터베이스의 큰 틀과 관련된 명령들

-> CREATE, ALTER, DROP

DML(Database Manipulation Language): 데이터베이스 내에 저장된 레코드들에 대한 CRUD 명령들

-> INSERT, SELECT, UPDATE, DELETE

DCL(Database Control Language): 데이터베이스에 대한 권한 및 접근을 다루는 명령들

-> GRANT, REVOKE, COMMIT, ROLLBACK

 

 


DDL( Data Definition Language )

 

1. CREATE문

: 데이터베이스 혹은 테이블을 새로 생성할 때 사용

create database 데이터베이스명
create table 테이블명

 

2. DROP문

: 데이터베이스 혹은 테이블 자체를 삭제할 때 사용

drop database 데이터베이스명
drop table 테이블명

 

3. ALTER문

: 테이블 형태를 수정할 때 사용

alter 테이블명 ( add / drop / alter ) 칼럼명 수정내용

테이블 내 칼럼을 추가, 삭제, 수정(조건) 할 수 있음

 


 

DML( Data Manipulation Language )

 

1.  SELECT문

: 레코드를 조회할 때 사용

select [distinct] * 또는 칼럼1, 칼럼 2, ...
from 테이블명
( where > group by > having > order by )

- distinct : 조회했을 때 레코드에 중복 있으면 제거

[distinct] : 중복 제거 / [] : 중복 제거X

 

- where : 각 레코드 하나하나 따져보면서 내가 설정한 조건에 true인 레코드만 걸러서 조회

[where 레코드 단위의 조건]

 

- group by : 해당 칼럼에서 값이 같은 레코드들이 하나의 그룹으로 묶이도록 함 / 그룹으로 묶은 뒤 집계함수 적용 가능

[group by 그룹을 묶을 기준 칼럼]

 

- having : 그룹으로 묶이고 나서 적용해야 하는 조건은 having으로

[having 그룹으로 묶은 상태에서의 조건]

 

* group by vs having

group by는 where 조건 처리 후에 그룹화를 진행함
having은 group by로 그룹화가 진행된 이후에 조건을 처리함

따라서 그룹화를 먼저 수행한 뒤에 조건을 걸고 싶으면 having을 사용해야 함

 

- order by : 해당 칼럼으로 asc 오름차순, desc 내림차순 정렬 / 칼럼1, 칼럼2 순서대로 우선순위 적용됨

[order by 칼럼명]

 

적용 순서
WHERE - GROUP BY - SELECT - ORDER BY
GROUP BY - HAVING - SELECT - ORDER BY

 

2. INSERT문

: 데이터베이스에 레코드를 삽입할 때 사용

insert into 테이블명(칼럼1, 칼럼2, ... ) values(레코드1, 레코드2, ...)

파라미터를 통해 삽입할 레코드의 칼럼의 이름 및 순서를 지정할 수 있음 (default : create table할 때 칼럼 순서)

 

3. DELETE문

: 데이터베이스 내의 레코드를 삭제할 때 사용

delete from 테이블명

보통 where을 통해 조건을 지정해서 특정 레코드를 삭제함

 

* DELETE vs DROP

delete는 레코드를 삭제할 때 사용하고 (즉, 틀은 남겨두고 안에 내용물만 삭제)

drop은 테이블이나 데이터베이스 자체를 삭제할 때 사용함 (즉, 틀 자체를 삭제)

 

4. UPDATE문

: 데이터베이스 내의 레코드를 수정할 때 사용

update 테이블명 set 칼럼1 = 수정값1 (, 컬럼2 = 수정값2 ...)

 

 


 

DCL(Data Control Language)

 

1. GRANT문

: 데이터베이스 사용자에게 특정 권한 부여

grant 권한1, 권한2, ... on 테이블명 to 권한 부여 대상

 

2. REVOKE문

: 데이터베이스 사용자에게 특정 권한 박탈

revoke 권한1, 권한2, ... on 테이블명 from 권한 박탈 대상

 

3. COMMIT문

: 트랜잭션 단위의 작업을 저장, 반영

 

4. ROLLBACK문

: 트랜잭션 단위의 작업 취소