오늘은 어제 공부했던 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 |