DDL, DML, DCL

·2024년 12월 3일

DDL(데이터 정의어. Data Definition Language)

:테이블을 조작할 때 쓰인다. 대규모. 건축, 리모델링.

CREATE, ALTER, DROP

CREATE: 테이블을 만들 때 쓰인다.
테이블 뿐 아니라 사용자 계정이나 데이터베이스 자체를 만들 때도 쓰인다.

ALTER: 테이블의 열을 추가하거나 삭제할 때, 또는 열의 데이터 타입을
바꿀 때 사용한다.

ALTER TABLE products ADD new_column VARCHAR(20); --컬럼 추가
ALTER TABLE products MODIFY new_column INT; --데이터 타입 변경.
ALTER TABLE products DROP new_column; --컬럼 삭제

DROP: 컬럼이나 테이블을 삭제한다.

DML(데이터 조작어. Data Manipulation Language)

:테이블 안의 데이터를 조작할 때 쓰인다. 소규모.

SELECT, INSERT, UPDATE, DELETE

SELECT: 테이블 내의 데이터를 선택한다.

INSERT: 데이터를 삽입할 때 쓴다.

INSERT INTO user (name, age, address) VALUES('호넷',3000,'신성둥지');

UPDATE: 행의 내용을 바꾼다.

UPDATE user SET name='가스터' WHERE id=13;

DELETE: 행을 삭제한다.

※ALTER와 UPDATE
: ALTER는 테이블 구조 단위로 바꾼다. 열(컬럼), 데이터 타입 등등.
UPDATE는 특정 행의 내용을 바꾼다.
ALTER가 바꾸는 범위가 좀 더 크다.
비유하자면, ALTER는 리모델링이고, UPDATE는 가구 몇 개 버리고 새 가구로 바꾸는 정도.

※DROP과 DELETE
: 이것도 마찬가지. DROP은 열이나 테이블을 삭제하며,
DELETE는 특정 행만 삭제한다.
다만 DROP으로 열을 지울 때는 ALTER를 같이 써야 한다.

행과 열의 특성과 구조를 잘 생각해보자.
행은 자유롭게 내가 추가할 수 있는 부분이지만,
열은 처음 테이블을 만들 때부터 정해져 있는, 테이블의 일부다.
쉽게 바꿀수 있는 부분이 아니다.

책꽂이를 생각해보자. 일체형.
책꽂이 칸 수가 5개인데, 그 중 한 칸만 버리려면 어떻게 해야 할까.
아마 톱으로 잘라내거나 해야 할 것이다.
열을 없앤다는 건 그런 것이다.

DCL(데이터 제어어. Data Control Language)

:사용자에게 권한을 주거나 회수할 때 쓰인다.

GRANT, REVOKE

GRANT: 사용자에게 권한을 부여한다.

GRANT ALL PRIVILEGES ON . TO 'sesac'@'%' WITH GRANT OPTION;

REVOKE: 사용자에게서 권한을 박탈한다.

REVOKE ALL PRIVILEGES ON . TO 'sesac'@'%' WITH GRANT OPTION;

profile
개발공부 중

0개의 댓글