DDL (Data Define Language)

2023. 3. 9. 20:35SQLD 정리

반응형

DDL

- 데이터를 보관하고 관리하기 위한 객체의 구조를 정의하기 위한 언어

create - 구조생성

alter - 구조 변경

drop - 구조 삭제

rename - 이름 변경

truncate - 테이블 초기화

 

create - 구조생성

CREATE TABLE_NAME(

    COLUMN1 VARCHAR2(10) PRIMARY KEY, 

    COLUMN2 NUMBER(4) DEFAULT 1234,

    COLUMN3 DATE NOT NULL,

    .....

)

 

데이터 타입

- number 숫자형

- date 날짜형

- varchar2 가변길이 문자열 >>> '하하' != '     하하'

- char 고정된 크기 문자열  >>> '하하' = '     하하'

 

제약조건

- default : 기본값 지정

- not null : null 입력 불가

- primary key : 기본키 지정(not null, unique)

- foreign key :  외래키 지정(테이블당 여러개 가능)

 

count(*) vs count(칼럼명)

count(*)   >>> 전체 행의 수 카운트, null 포함해서 카운트

count(칼럼명)   >>> null 제외한 향수 카운트

 

null 관련 정리

- 모르는 값을 상징하고 값이 없음(부재)를 의미

- null is null = true

- null과의 값 비교는 null을 반환 ex) null > 3 결과는 null

- null은 숫자 0이나 ''와 같지 않음

 

alter - 구조 변경

테이블과 컬럼에 대해 이름 및 속성 변경, 추가/삭제 등 구조 수정을 위해 사용

테이블 이름 변경

ALTER TABLE 테이블명 RENAME TO 테이블명2;

 

ALTER없이 테이블 이름 변경

RENAME 테이블명 TO 테이블명2; 

 

컬럼명 변경

ALTER TABLE 테이블명RENAME COLUMN 컬럼명 TO 컬럼명2;

 

컬럼 속성 변경

ALTER TABLE 테이블명 MODIFY(컬럼명 varchar(20) not null)

 

컬럼추가

ALTER TABLE 테이블명 ADD (컬럼명 varchar(10));

 

컬럼 삭제

ALTER TABLE 테이블명 DROP (컬럼명);

 

테이블의 제약조건 추가/삭제

ALTER TABLE 테이블명 ADD 제약 / DROP 제약

 

drop - 구조 삭제

테이블 및 컬럼 삭제

컬럼삭제

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

 

테이블 삭제

DROP TABLE 테이블명

 

DROP TABLE 테이블명 CASCADE CONSTRAINT;

-삭제를 하면 해당 테이블의 데이터를 외래키(FK)로 참조한 제약사항도 모두 삭제한다.

-ORACLE에만 있는 옵

참조) CASCADE CONSTRAINT :해당 테이블과 관계가 있었던 참조되는 제약조건에 대해서도 삭제한다는 의미

 

DROP  vs  TRUNCATE

DROP TABLE 테이블명 >>> 테이블 삭제( 테이블 관련해서 구조와 데이터 모두 삭제)

TRUNCATE TABLE 테이블명 >>> 테이블 초기화( 테이블 데이터만 삭제되고 구조는 살아있다)

 

 

반응형