[MySQL] DDL 데이터정의어 CREATE, DROP, ALTER, RENAME, TRUNCATE

·2022년 12월 20일
0

MySQL

목록 보기
5/8

[DDL] 데이터정의어
테이블과 같은 데이터 구조를 정의하는데 사용.
데이터 구조를 정의함에 있어 발생할 수 있는 이슈로 생성, 변경, 삭제 이름 변경의 명령어도 포함


CREATE

데이터베이스, 테이블을 생성

데이터베이스 생성

-- 새로운 데이터 베이스 생성 명령문
create database 데이터베이스 명;

-- mydata라는 이름의 새로운 데이터 베이스를 생성
create database mydata;

-- mydata라는 이름이 존재 하지 않는 경우에 이 이름으로 생성하라
create database if not exists mydata;

테이블 생성

-- 새로운 테이블 생성 명령문
create table 테이블명 (
	칼럼명1 데이터타입1 [제약설정],
	칼럼명2 데이터타입2 [제약설정],
	칼럼명3 데이터타입3 [제약설정],
);

-- userTable라는 테이블을 생성
create table userTable (
  idx        int primary key auto_increment,
	memberId   varchar(15)  not null,
	pwd        varchar(255) not null,
	memberName varchar(10)  not null,
	age        int(2),
);
  • 테이블 생성시 테이블명, 칼럼, 칼럼의 타입을 지정해줘야 함.
  • 필요에 따라 제약 설정을 해줌(필수 값 → not null, 고유 키 → AUTO_INCREMENT)

DROP

데이터베이스, 테이블을 삭제하는 명령어.

데이터베이스 삭제

-- 데이터베이스 삭제 명령어
drop database 데이터베이스 명;

-- myData 데이터베이스 삭제
drop database myData;

테이블 삭제

-- 테이블 삭제 명령어
drop table 테이블 명;

-- userTable 삭제 명령어
drop table userTable;

ALTER

테이블의 내용을 수정

-- 테이블에 칼럼 추가하기
alter table 테이블명 add column 칼럼명 칼럼타입;

-- 테이블에 칼럼 타입 변경하기
alter table 테이블명 modify column 칼럼명 칼럼타입;

-- 테이블에 칼럼 이름 변경하기
alter table 테이블명 change column 칼럼명 새로운 칼럼이름 새로운 칼럼타입;

-- 테이블에 칼럼 삭제하기
alter table 테이블명 drop column 칼럼명;

-- 테이블에 칼럼 인덱스 주기
alter table 테이블명 add index 칼럼명;

-- 테이블에 primary key 만들기
-- 1. 테이블에 새로운 필드를 추가할 때 해당 필드를 기본키로 설정 
alter table 테이블명 add [제약조건] primary key (칼럼네임)
-- 2. 기존에 존재하는 필드를 기본키로
alter table 테이블명 modify [제약조건] primary key (칼럼네임)

-- 테이블에 primary key 삭제 하기
alter table 테이블명 drop primary key

-- 테이블 명 바꾸기
alter table 테이블명 rename 새로운 테이블명

RENAME

테이블의 이름을 변경하는 명령어

-- 테이블 이름 변경 명령어
rename table 기존 테이블 명 to 새로운 테이블 명;

-- 여러 테이블 이름 변경 명령어
rename table 기존 테이블 명1 to 새로운 테이블 명1, 기존 테이블 명2 to 새로운 테이블 명2; 

TRUNCATE

DELETE와 DDL 명령어인 DROP과 비슷한 형태, 데이터를 삭제하는 명령어

DML의 delete 명령어는 where문과 같은 조건문을 붙여 원하는 곳만 삭제
DDL의 drop 명령어는 테이블, 데이터베이스를 모두 삭제
truncate는 drop후 create를 하는 특징을 가지고 있음

delete

데이터를 삭제하고 삭제한 공간을 재 사용하기 위한 명령어

truncate

데이터가 존재하던 공간까지 모두 제거
AUTO_INCREMENT로 지정하여 값이 증가하던 컬럼이 완전 초기화 됩니다.(MySQL 5.0.13 버전 이후)
[Table_name].frm 파일이 아직 유효할 경우, 데이터나 인덱스가 손상된 경우라도 빈 테이블로 재 생성이 가능

-- 테이블의 데이터 삭제 명령어
truncate table 테이블 명;

출처 : https://kkamikoon.tistory.com/entry/MySQL-DDL-명령어-사용하는-방법CREATE-DROP-ALTER-RENAME-TRUNCATE

profile
열심히 기록

0개의 댓글