[DBMS] DDL 데이터정의문
💡 데이터 정의 언어(Data definition Language : DDL)
데이터의 저장구조를 정의하는 언어로 스키마의 정의 수정, 삭제하는 명령문과 인덱스의 생성 및 삭제 명령문을 뜻함
🔴 데이터베이스/테이블 생성(CREATE)
create database 데이터베이스명;
- create table 테이블 이름(
컬럼이름1 컬럼타입1,
...
);
create table member (
mb_no INT(11) not null auto_increment,
mb_id varchar(20) not null default '',
mb_password varchar(255) not null default '',
mb_name varchar(255) not null default '',
mb_email varchar(255) not null default '',
PRIMARY KEY (mb_no),
UNIQUE INDEX mb_id (mb_id)
);
다른 테이블을 이용한 테이블 생성
create table 새로만들테이블명 as select 필드명1, 필드명2 from 참고할테이블명;
❗️참고한 테이블의 데이터도 같이 가져옴
데이터베이스 사용
use 데이터베이스이름;
데이터베이스 보기
show 데이터베이스 이름;
🟠 데이터베이스 변경(ALTER)
alter database 데이터베이스명 character set = utf8;
alter database 데이터베이스명 collate = utf8_general_ci;
alter database mydb CHARACTER SET=utf8 COLLATE=utf8_general_ci;
ADD (컬럼 추가)
alter table 테이블명 add 필드명 필드자료형;
ALTER TABLE member ADD mb_tel int;
DROP (컬럼 삭제)
alter table 테이블명 drop 필드명;
alter table 테이블명 drop column 필드명;
MODIFY COLUMN (컬럼 타입 변경)
alter table 테이블명 modify column 필드명 필드자료형;
alter table member modify mb_email varchar(255) not null default '';
RENAME TABLE (테이블 이름 변경)
- rename table 기존 테이블 이름 to 변경할 테이블 이름;
- rename table 기존 데이터베이스 이름.기존 테이블 이름 to 옮길 데이터베이스 이름.생성할 테이블 이름;
rename table mydb.member to test.member2;
↳ mydb에는 member이라는 테이블이 남아있지 않고, test에 member2로 옮겨갔다.
CHANGE (컬럼명, 타입 변경)
alter table 테이블이름 change 기존열이름 새로운열이름 자료형;
❗️컬럼명과 타입 둘 다 한 번에 바꿀 수 있음
🟡 인덱스 생성
: 테이블 최초로 생성할 때부터 인데스 사용하는 경우도 있고, 테이블 생성 후에 인덱스 생성하는 경우도 있음
1. member 테이블에 5개 컬럼 추가
alter table member
add mb_1 INT,
add mb_2 INT,
add mb_3 INT,
add mb_4 INT,
add mb_5 INT;
2. create index문을 사용해 인덱스 생성
- create index 인덱스 이름 on 테이블 이름 (컬럼이름);
create index mb1_idx on member (mb_1);
- create index 인덱스 이름 on 테이블 이름 (컬럼이름1, 컬럼이름2, ...);
3. 인덱스 확인방법
- show index from 테이블 이름;
4. 인덱스 타입 추가해서 생성방법
- create unique index 인덱스 이름 on 테이블 이름 (필드이름);
5. 정렬방식 설정
- create index 인덱스 이름 on 테이블 이름 (컬럼이름 DESC); → 내림차순
- create index 인덱스 이름 on 테이블 이름 (컬럼이름 ASC); → 오름차순
6. alter문 사용한 인덱스 생성
- alter table 테이블 이름 add index 인덱스 이름 (컬럼이름);
- alter table 테이블 이름 add 인덱스타입 인덱스 이름 (컬럼이름);
7. 인덱스 삭제
- drop index 인덱스 이름 on 테이블 이름;
- alter table 테이블 이름 drop index 인덱스 이름
Author And Source
이 문제에 관하여([DBMS] DDL 데이터정의문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dpdnjs402/70lcr7xg저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)