DataBase/SQL

[SQL] DDL - 데이터 정의

노트북 산 김에 공부 2023. 3. 15. 19:17

DDL (Data Defintion Language) - 데이터 정의 언어

데이터베이스의 구조와 테이블, 뷰, 인덱스, 프로시저와 같은 개체를 정의


create 

테이블을 생성한다

 

create table 테이블명( 속성이름 데이터타입(크기)  제약조건, ... ); 

create table student(
    sid varchar2(9) primary key,
    name varchar2(3) not null,
    age number(3) not null,
    birth date not null
    );

create로 학생(student) 테이블을 생성했다. 속성은 [학번(sid), 이름(name), 나이(age), 생일(birth)] 이다.

학번은 기본키(primary key)로 지정하고 나머지 속성은 도메인 무결성을 위해 NOT NULL 제약을 걸었다.

 

create as select

 

DML의 select를 이용하여 다른 테이블의 데이터를 복사하여 새로운 테이블 생성이 가능(릴레이션 인스턴스도 복사됨)

create table student2
as 
select sid, name, age, birth
from student;

alter

테이블을 수정한다

 

add 

 

테이블에 새로운 속성을 추가한다

alter table student
add gender char(2);

성별(gender) 속성을 char 데이터 타입으로 추가했다.

 

drop column

 

테이블에서 속성을 삭제한다

alter table student
drop column gender;

성별(gender) 속성을 삭제했다.

 

modify 

 

테이블의 속성에 대한 정의를 변경한다

modify 속성명 데이터타입 

alter table student
modify name varchar(9); 
# 제약조건을 안 적어도 제약조건이 없어지지 않는다

이름(name) 속성의 데이터 크기를 3에서 9로 늘렸다. ( 제약조건을 안 적어도 제약조건이 없어지지 않는다)

 

rename 

 

테이블 속성(또는 테이블명)의 이름을 변경한다  

alter table student            # 테이블명 변경은 'column'을 안 붙이면 된다            
rename column sid to id;       rename student to stu;
            # old  # new

학번 속성의 이름을 sid 에서 id 로 변경했다.


drop

테이블을 삭제한다

 

drop table

 

데이터 베이스를 삭제하려면 drop database [dbname]; 

drop table student2;