[SQL] 간단하고 명료하게 SQL 명령어 훑기(DDL/DML/DCL/TCL)
2022. 7. 4. 17:27ㆍServer의 세계/MySql
1. SQL 명령어 종류
- DDL - Data Definition Language (데이터 정의 언어)
- DML - Data Manipulation Language (데이터 조작 언어)
- DCL - Data Control Language (데이터 제어 언어)
- TCL - Transaction Control Language(트렌젝션 제어 언어)
2. DDL(Data Definition Language)
-데이터 정의어다. 테이블 같은 데이터 구조를 정의하는데 사용되는 명령어며, 테이블 같은 데이터 구조를 생성, 변경, 삭제를 처리하는 명령어다.
| 명령어 | 내용 | 예시 |
| CREATE | 데이터베이스 내 개체(테이블, 인덱스 제약조건, 프로시저, 펑션 등)을 생성할 때 |
CREATE TABLE myTable(field1 int PRIMARY KEY, field2 VARCHAR(50)); |
| DROP | 데이터베이스 내 개체를 삭제할때 | DROP TABLE myTable; |
| ALTER | 데이터베이스 내 개체 속성 및 정의를 변경할 때 | ALTER TABLE myTable ADD field3 NUMBER(3) NOT NULL; |
| RENAME | 데이터베이스내 개체의 이름을 변경 할 때 | ALTER TABLE myTable RENAME TO yourTable; |
| TRUNCATE | 테이블 내 모든 데이터를 빠르게 삭제할 때 | TRUNCATE TABLE myTable; |
* DROP과 TRUNCATE 의 차이점
- DROP TABLE : TABLE 전체 삭제.
- TRUNCATE TABLE : TABLE 초기화. TABLE 내 데이터 초기화.(생성 시점으로 회복)
3. DML (Data Manipulation Language)
데이터를 조작할 때 사용하는 언어를 통틀어서 이야기한다. 데이터베이스에 들어있는 데이터를 조작할때 사용하는 언어이며, 가장 기본적인 언어다.
| 명령어 | 내용 | 예시 |
| INSERT | 특정 테이블에서 데이터를 신규로 삽입할 때 (입력하지 않은 값은 자동으로 NULL값 입력) |
INSERT INTO 테이블명(column_list) VALUES (COLUMN_LIST에 넣을 VALUE_LIST); |
| UPDATE | 입력되어 있는 데이터 내용 중, 데이터의 전체, 또는 일부를 새로운 값으로 갱신할 때 | UPDATE 테이블명 SET 컬럼명 = '갱신할 값' WHERE ...조건 ; |
| DELETE | 특정 테이블 내 데이터의 전체, 또는 일부를 삭제할 때 | DELETE FROM 테이블명 WHERE 조건; |
| SELECT | 특정 테이블내 데이터를 전체 또는 일부를 획득할 때 | SELECT 컬럼리스트 FROM 테이블명 WHERE 조건; |
4. DCL(Data Control Language)
데이터 제어어이다. 데이터의 보완, 무결성, 데이터 회복, 병행수행, 제어 등 정의하는데 사용하는 언어이다.
| 명령어 | 내용 | 예시 |
| GRANT | DB 사용자에게 특정 작업의 수행 권한을 부여 할 때 | GRANT 옵션 TO 사용자명; |
| REVOKE | 데이터베이스 사용자에게 부여권 수행 권한을 박탈 할 때 | REVOKE CONNECT, RESOURCE FROM scott; |
| SET TRANSACTION | 트랜잭션 모드로 설정 할 때 | |
| BEGIN | 트랜잭션의 시작을 의미 | BEGIN; |
| LOCK | 테이블 자원을 점유 할 때 | LOCK; |
4. TCL(Transaction Control Language)_Oracle
목적 : 데이터의 일관성을 유지하면서 안정적으로 테이터를 복구시키기 위해
트렌젝션은 데이터 처리의 한 단위이다. 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구할 때 사용하는 쿼리문이다.
데이터 조작어(DML)에 의해 변경된 내용을 관리한다.(DDL은 auto commit)
| 명령어 | 내용 | 예시 |
| COMMIT | 모든 데이터를 DB에 저장하고 현재의 트랜잭션 종료 | COMMIT; |
| ROLLBACK | 저장되지 않은 모든 DML 취소하고 현재의 트랜잭션 종료 | ROLLBACK; |
| SAVEPOINT | 현재까지의 트랜잭션을 특정 이름으로 지정 | SAVEPOINT 저장점 name; |
'Server의 세계 > MySql' 카테고리의 다른 글
| [DB] 간단하고 명료하게 DB, DBMS, SQL의 개념 훑기 (0) | 2022.07.04 |
|---|---|
| [MySql] Sql Injection (0) | 2022.06.14 |
| [MySql] VS code와 리눅스 연동하기 (0) | 2022.06.14 |