SQL 기본 문법 정리(DDL)

유성용·2022년 5월 9일
0

sql

목록 보기
1/2

SQL 에서 DDL 문이라고 하면 간단하게
테이블에 직접 접근하는 명령어라고 볼수있을 것 같다.
create table은 테이블을 생성한다.
drop table은 테이블을 삭제한다.
alter table은 테이블 내부적으로 컬럼명이나 속성 등을 변경할 수 있다.
rename to는 테이블의 이름을 변경 할 수있다.
truncate는 dml문의 delete table 과 비슷한 속성을 가지고있다 테이블이 갖고있는 모든 정보를 날려버린다.

테이블 생성

create table 테이블이름 (
컬럼들과 속성명 기입 ','콤마를 기준으로 하나의 컬럼 작성
);

create table member ( -- member 테이블 생성
    member_no number(8) primary key, -- primary key(고유키)는 member_no
    member_name varchar(20) not null,
    member_address varchar(50) not null,
    member_phone varchar(20) not null,
    member_email varchar(30) not null
);

문자형 데이터 타입

CHAR(n) 고정 길이 데이터 타입(최대 2000byte) - 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 공백으로 채워짐
VARCHAR2(n) 가변 길이 데이터 타입(최대 4000byte) - 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 채우지 않는다.
NCHAR(n) 고정 길이 유니코드 데이터 타입(최대 2000byte)
NVARCHAR2(n) 가변 길이 유니코드 데이터 타입(최대 4000byte)
LONG 가변 길이 데이터 타입(최대 2Gbyte)
CLOB 대용량 텍스트 데이터 타입(최대 4Gbyte)
NCLOB 대용량 텍스트 유니코드 데이터 타입(최대 4Gbyte)

숫자형 데이터 타입

BINARY_FLOAT 부동 소수형 데이터 타입(4byte) - 32bit 부동 소수
BINARY_DOUBLE 부동 소수형 데이터 타입(4byte) - 64bit 부동 소수
NUMBER(P,S) P, S로 표현 숫자 데이터 타입 P: 1 ~ 38, S: -84 ~ 127 P(Precision): 유효자리수, S(Scale):소수점 유효자리

날짜형 데이터 타입

DATE 고정 길이의 날짜
INTERVAL_YEAR 날짜(년도, 월)형태의 기간 표현 데이터 타입
INTERVAL_DAY 날짜 및 시간(요일, 시, 분, 초)형태의 기간 표현 데이터 타입
TIMESTAMP 밀리초(ms)까지 표현 데이터 타입
TIMESTAMP_WITH TIME ZONE 날짜 및 시간대 형태의 데이터 타입
TIMESTAMP_WITH LOCAL TIME ZONE 저장 시 데이터베이스 시간대를 준수, 조회시 조회하는

클라이언트 시간 표현 데이터 타입

이진 데이터 타입

RAW(n) 가변 길이 이진 데이터 타입(최대 2Gbyte)
LONGRAW 가변 길이 이진 데이터 타입(최대 4Gbyte)
BLOB 대용량의 바이너리 데이터를 저장하기 위한 데이터 타입(최대 4Gbyte)
BFILE 대용량의 바이너리 데이터를 파일형태로 저장하기 위한 데이터 타입(최대 4Gbyte)

데이터타입 이외에 primary key(고유키) foreign key(외래키)나
null값을 허용하는 null 속성이 있고 반대로 허용하지 않는 not null이 있다.
데이터가 not null 이거나 null 인지에 상관없이 default(기본)값을 따로 지정해 줄 수도 있다.
not null인 값에 default 값도 없이 데이터가 들어가지않는다면 오류가 발생한다.

table 생성시 컬럼속성 기입 순서는
컬럼명 -> 데이터타입 -> null & not null > default -> primary key
와 같은 순서로 지정한다 null, not null과 default 값은 생략 가능하다
default값을 지정 안하면 기본값은 0이고
null값 여부를 지정안할시엔 기본이 null 허용이다

테이블 삭제

drop table 테이블명
-> 테이블 자체가 없어지는 명령어다 조심해서 다루자

테이블 수정(alter table)

  • 테이블에 컬럼 추가
    alter table 테이블명
    add [컬럼이름 데이터타입 not null] ...);

  • 테이블 속성 변경
    alter table 테이블명
    modify [컬럼이름 데이터타입 not null]...);

  • 테이블 컬럼 삭제
    alter table 테이블명
    drop column 컬럼명

  • 테이블 이름 변경
    RENAME 기존 테이블명 to 바꿀 테이블 명;

    DDL문은 명령어 작성 후에 따로 TCL 문을 사용해주지 않아도 자동으로 commit 등이 진행된다.

profile
화이팅팅팅 :)

0개의 댓글