▶ DDL(Data Definition Language) - 데이터 정의어
데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어입니다.
종류 | 역할 |
CREATE | SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하고 생성하는 역할을 합니다. |
ALTER | TABLE에 대한 정의를 수정하는 역할을 합니다. |
DROP | SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제하는 역할을 합니다. |
TRUNCATE | 테이블을 초기화 시키는 역할을 합니다. |
1. CREATE : 테이블 생성하기
CREATE TABLE 테이블명 ( 속성명 데이터타입](길이) 제약조건, 속성명 데이터타입](길이) 제약조건, 속성명 데이터타입](길이) 제약조건, 속성명 데이터타입](길이) 제약조건 ); |
▶ 자주쓰는 데이터 타입 자료형
데이터 타입 | 내용 |
int | 정수 |
char(n) | 고정길이 문자형. n을 1부터 255까지 지정. CHARACTER의 약자이며, CHAR 이라고만 하면 CHAR(1)과 동일 * CHAR(100) 인 경우 세 자리만 사용해도 나머지 97 자리를 할당. (성능은 CHAR이 VARCHAR보다 더 좋음.) |
varchar(n) | 가변길이 문자형. n을 사용하면 1부터 65535까지 지정 Variable Character의 약자. * VARCHAR(100) 인 경우 3글자를 저장하는 경우 3자리의 데이터 공간만 사용 |
text | (1 ~ 65535) N 크기의 TEXT 데이터 값 |
date | 날짜는 1001-01-01 ~ 9999-12-31까지 저장되며 날짜 형식만 사용 'YYYY-MM-DD' 형식으로 사용됨 |
▶ 제약조건
제약조건 | 내용 |
PRIMARY KEY | 테이블의 기본키를 정의함. 기본으로 NOT NULL, UNIQUE 제약이 포함됨. |
FOREIGN KEY | 외래키를 정의함. 참조 대상을 테이블이름(열이름)으로 명시해야 함. FOREIGN KEY 제약 조건을 설정할 때 참조되는 테이블의 필드는 반드시 UNIQUE나 PRIMARY KEY 제약 조건이 설정되어 있어야 함. * 참조 무결성 위배 상황 발생 시 처리 방법으로 옵션 지정 가능 - NO ACTION, SET DEFAULT, SET NULL, CASCADE |
UNIQUE | 테이블 내에서 해당 필드는 유일한 값을 가져야 함. (중복된 값 지정 불가) |
NOT NULL | 테이블 내에서 해당 필드의 값은 NULL일 수 없음. (필수 입력 항목) |
CHECK | 개발자가 정의하는 제약 조건. 상황에 따라 다양한 조건 설정 가능 |
-- 'members' 테이블 생성
create table members (
idx int auto_increment primary key,
mem_nm varchar(10) not null,
mem_id varchar(12) not null,
pwd varchar(20) not null,
birth_dt date,
male_flg varchar(1) not null,
tel_no varchar(11) not null
);
2. ALTER~ ADD~ : 테이블에 컬럼 추가
ALTER TABLE 테이블명 ADD 속성명 데이터타입(길이); ALTER TABLE 테이블명 ADD 속성명 데이터타입(길이) after 속성명; ALTER TABLE 테이블명 ADD 속성명 데이터타입(길이) before 속성명; |
-- 'members'테이블에 'mem_reg_date'컬럼 추가
alter table members add mem_reg_date date not null after tel_no;
3. ALTER~ MODIFY(CHANGE)~ : 테이블의 컬럼 수정
ALTER TABLE 테이블명 modify 속성명 데이터타입(길이); ALTER TABLE 테이블명 change 기존속성명 새로운속성명 데이터타입(길이); |
-- 'members'테이블의 'tel_no'컬럼 데이터 타입 수정
alter table members modify tel_no int;
4. ALTER~ DROP~ : 테이블의 컬럼 삭제
ALTER TABLE 테이블명 DROP 속성명; |
※ drop 이 먼저 나오지 않도록 주의하자!
# 'members'테이블의 'birth_dt'컬럼 삭제
alter table members drop birth_dt;
5. 테이블 제약 조건 변경
제약 조건 변경 내용 | SQL 명령문 |
제약 조건 추가 | ALTER TABLE [테이블명] ADD [CONSTRAINT 제약조건명] [제약조건(속성명)] |
제약 조건 삭제 | ALTER TABLE [테이블명] CONSTRAINT [제약조건명 | 테이블명] [PRIMARY KEY | FOREIGN KEY(속성명) | UNIQUE(속성명)] |
제약 조건 비활성화 | ALTER TABLE [테이블명] DISABLE CONSTRAINT [제약조건명] |
제약 조건 활성화 | ALTER TABLE [테이블이름] ENABLE CONSTRAINT [제약조건명] |
'데이터베이스 > MySQL' 카테고리의 다른 글
[MySQL] SQL 제약조건 종류 (0) | 2021.05.31 |
---|---|
[MySQL] SQL 데이터타입 자료형 종류 (0) | 2021.05.31 |
[MySQL] 사용자 계정 조회, 생성, 삭제, 권한 부여하기 (0) | 2021.05.31 |
[MySQL] SQL종류 - DDL, DML, DCL (0) | 2021.05.31 |
[MySQL] 서버 접속 & 연결하기 (0) | 2021.05.28 |