본문 바로가기

DB

SQL 기본 문법 정리 1 - DDL, DML

오늘은 어제 공부했던 DDL / DML / DCL의 기본 문법을 정리할 예정이다.

 

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

  • CREATE : 테이블 생성
  • ALTER : 테이블 변경
  • RENAME : 테이블명 변경
  • DROP : 테이블 삭제
  • TRUNCATE : 데이터의 모든 내용 삭제

CREATE 

데이터 테이블 생성 시 사용되며 사용예시는 아래와 같다.

CREATE TABLE 테이블명(<컬럼1> <데이터타입> <옵션> <제약조건>, ....)

CREATE TABLE 테이블명(
    id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
    name CHAR(20) NOT NULL,
    age INT NOT NULL
);

사용할 데이터 타입은 아래를 참고하면 된다.

제약조건은 아래와 같다.

구분 설명
PRIMARY KEY(기본키) 고유하게 식별하기 위한 기본키(식별자),
1개의 테이블에 1개의 기본키만 정의 가능, NULL사용 불가
UNIQUE KEY(고유키) 고유하게 식별하기 위한 고유키로 NULL사용 가능
NOT NULL NULL 불가
CHECK 입력되는 값의 범위 제한(boolean 등)
FOREIGN KEY(외래키)  테이블 간의 관계 정의를 위해 특정 테이블의 기본키를 다른 테이블의 외래키로 사용

 

ALTER 

테이블 구조 변경 시 사용되며 사용예시는 아래와 같다

/* 테이블에 새로운 컬럼 추가 
ALTER TABLE 테이블명 ADD(추가할컬럼명, 데이터타입); */

ALTER TABLE USER ADD(age, INT);

/* 테이블 컬럼 수정 
ALTER TABLE 테이블명 MODIFY(변경할컬럼명, 변경할데이터TYPE); */

ALTER TABLE USER MODIFY(name, VARCHAR(20));

/* 테이블에 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명 */

ALTER TABLE USER DROP COLUMN age;

 

RENAME

테이블명 변경시 사용하며 사용예시는 아래와 같다.

/* ALTER TABLE 기존테이블명 RENAME TO 새로운테이블명; */

ALTER TABLE USER RENAME TO MEMBER;

 

DROP

테이블을 완전히 삭제해버리는 명령어다.

롤백 불가하며, 테이블이 가지고 있던 모든 데이터 삭제된다.

사용 예시는 아래와 같다.

/*  DROP TABLE 테이블명 */

DROP TABLE MEMBER;

 

TRUNCATE

테이블이 가지고 있는 데이터 중에서 초기에 생성된 설정을 제외하고 전부 삭제한다.

이 또한 롤백이 불가하기 때문에 조심히 다룰 것.

사용예시는 아래와 같다.

/* TRUNCATE TABLE 테이블명; */

TRUNCATE TABLE MEMBER;

 

DROP과 TRUNCATE 헷갈릴 수 있다.

DROP의 경우 테이블 존재 자체가 없어진다 생각하면되며,

TRUNCATE의 경우 테이블은 있지만 안에 데이터가 없는 상태다.

 

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

  • SELECT : 데이터 조회
  • INSERT : 데이터 추가
  • UPDATE : 데이터 내용 변경
  • DELETE : 데이터 내용 삭제

SELECT

테이블의 모든 데이터 조회 시 사용하며 사용 예시는 아래와 같다.

/* 테이블명(USER)에 대한 데이터를 전부를 보여준다. */
SELECT * FROM USER;

/* 일부 컬럼만 추출
SELECT 컬럼1, 컬럼2 FROM 테이블명; 
*/

/* 컬럼1 데이터 중 중복 없이 추출
SELECT DISTINCT 컬럼1 FROM 테이블명;
*/

/* 컬럼명을 별칭(ALIAS)으로 바꾸기 
SELECT 컬럼1 AS a , 컬럼2 AS b FROM 테이블명;
컬럼1이라는 컬럼명을 a로, 컬럼2라는 컬럼명을 b로 변경
*/

 

INSERT

테이블에 데이터를 추가할 때 사용되며 사용예시는 아래와 같다.

/* 테이블에 데이터 추가 
INSERT INTO 테이블명 VALUES (값1, 값2, 값3...); 
INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3) VALUES (값1, 값2, 값3); 
INSERT INTO 테이블명 SELECT * FROM 같은_형태의_테이블;
*/

INSERT INTO USER VALUES(1, 'JOEY', 32, 2022-01-01);

 

UPDATE

테이블 내의 값을 수정할 때 사용된다.

/* UPDATE 테이블명 SET 수정할_컬럼1 = 변경데이터1 WHERE 변경조건; */

UPDATE USER SET JOB='STUDENT' WHERE NAME='JOEY';

 

DELETE

데이터 삭제 시 사용된다.

/* DELETE FROM 테이블명 WHERE 삭제컬럼_조건 */

DELETE FROM USER WHERE JOB='STUDENT';

'DB' 카테고리의 다른 글

[MSSQL] 프로시저  (0) 2023.03.07
SQL 기본 구문  (0) 2022.02.26