20220215_SQL 기초 5(SQL 구문의 분류, INSERT로 자료 넣는 3가지 방법, TRUNCATE로 로그 남기지 않고 빠르게 삭제)

2022. 2. 17.공부/SQL, R

728x90
SQL에서 쓰는 쿼리문들은 3가지 타입으로 분류된다.

 

1. 첫번째는 DML(Data Manipulation Language)이다. 데이터 조작 언어로, SELECT, INSERT, UPDATE, DELETE 구문이 DML에 속한다. 테이블의 데이터를 조회하거나 변경하기 위해서 사용하는 쿼리문이 dml이다. 

 

2. 두번째는 DDL(Data Defination Language)이다. 데이터 정의 언어로 데이터베이스와 테이블 뷰와 인덱스를 생성하고 삭제하는 기능을 가지고 있다. CREATE, DROP, ALTER가 이에 속한다.

 

3. 세번째는 DCL(Data Control Language)이다. 데이터 제어 언어로 특정 계정에 대한 권한을 부여하거나 빼앗을 때 사용한다. GRNAT, REVOKE, DENY가 이에 속한다. 

 

 

INSERT로 자료 넣는 법 3가지

 

INSERT INTO testTbl VALUES (user_id1, '홍길동', 25);

첫번째는 테이블 뒤에 컬럼 정보를 적지 않고 자료를 넣는 경우이다. 이 경우 CREATE TABLE 시 설정한 컬럼 정보가 자료의 기입 순서대로 대입된다. 이때 테이블이 보유한 모든 컬럼에 해당하는 자료를 VALUES 뒤에 기입해야하며 자료를 넣고 싶지 않은 컬럼이 있다면 자료 대신 null값을 입력한다. = 모든 컬럼에 VALUES로 자료를 넣어줘야한다.

 

INSERT INTO testTbl(user_name, age) VALUES ('홍길동', 25);

두번째는 테이블 뒤에 컬럼 정보를 적고, VALUES 뒤에 컬럼에 해당하는 자료를 넣는 경우이다. 컬럼의 순서를 바꿔서 선언할 경우 테이블 뒤에 컬럼명을 꼭 써줘야한다. 이때 모든 컬럼을 작성하지 않고 특정 컬럼만 지정하여 INSERT하는 것이 가능하다.

 

INSERT INTO testTbl VALUES (user_id1, '홍길동', 25), (user_id2, '박길동', 21),  (user_id3, '김길동', 22);

마지막으로 위와 같이 하나의 INSERT 구문으로 row 여러개를 추가할 수도 있다. 

 

 

TRUNCATE를 쓰면 보다 빠르게 테이블 삭제가 가능하다.

 

TRUNCATE TABLE testTbl;

DELETE를 사용하면 1 행을 삭제할 때마다 로그를 남기게 되는데, TRUNCATE의 경우 로그를 남기지 않고 전체 데이터를 삭제하게 되어 DELETE보다 빠른 속도로 데이터를 제거할 수 있다.