SQL 이란 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그램 언어를 의미합니다. 이런 SQL 의 문법에 대해 알아보도록 하겠습니다.
DDL 의 명령어 종류는 아래와 같습니다.
CREATE : 데이터베이스(테이블)을 "생성"
ALTER : 데이터베이스(테이블)을 "수정"
DROP : 데이터베이스(테이블)을 "삭제"
TRUNCATE : 데이터베이스(테이블)을 "초기화"
정확한 의미의 스키마와 데이터베이스는 다르지만 MySQL 에서는 같은 것으로 봅니다.
CREATE SCHEMA 스키마명;
CREATE DATABASE 데이터베이스명;
DROP SCHEMA 스키마명;
DROP DATAVASE 데이터베이스명;
CREATE TABLE 테이블명(
열이름1 데이터타입 [DEFAULT 형식],
열이름2 데이터타입 [DEFAULT 형식],
...
);
제약조건
PRIMARY KEY : 기본키
UNIQUE KEY : 고유키
NOT NULL
CHECK
FOREIGN KEY : 외래키
예시
CREATE TABLE `User` (
`userIdx` int AUTO_INCREMENT NOT NULL ,
`name` varchar(30) NOT NULL ,
`profileImgUrl` text NULL ,
`status` varchar(10) NOT NULL DEFAULT 'active',
`createdAt` timestamp NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (
`userIdx`
)
);
- 형태1)
ALTER TABLE 테이블명
ADD [컬럼명 데이터타입 DEFAULT 표현] ...);
- 형태2)
ALTER TABLE 테이블명
ADD 컬럼명 데이터타입;
형태
ALTER TABLE table01
ADD (birth date);
// table01 테이블에서 date 데이터 타입을 가지는 birth 컬럼을 새롭게 추가
- 형태1)
ALTER TABLE table01
MODIFY ([컬럼명 데이터아입 DEFAULT 표현식]...);
- 형태2)
ALTER TABLE 테이블명
MODIFY 컬럼명 데이터타입;
예제
ALTER TABLE table01
MODIFY (ename varchar(10));
// ename 컬럼의 크기를 10으로(=varchar(10)) 으로 변경
ALTER TABLE 테이블명
CHANGE 기존컬럼명 새컬럼명 데이터타입;
ALTER TABLE 테이블명
DROP COLUMN 컬럼명;
ALTER TABLE table01
DROP COLUMN ename; // table01 테이블에서 ename 컬럼을 삭제
TRUNCATE TABLE 테이블명;
=> 테이블의 모든 행을 지웁니다.
DROP TABLE 테이블명;
=> DROP 은 테이블 자체를 삭제하고, TRUNCATE 는 테이블은 유지하고 데이터들만 삭제합니다.