🐬 MySQL 기본 문법
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문
: 트랜잭션 단위의 작업 취소