*DDL :
-Data Definition Language
-데이터 정의 언어.
-객체를 만들고 수정하고 삭제하는 구문 ( CREATE , ALTER, DROP)
1. CREATE : 객체(테이블 , 인덱스 , 뷰 등..) 를 생성하는 구문
-CREATE TABLE `이름` (
`컬럼명` `자료형` (DEFAULT ~ ) (` 제약조건~` )
...
)
*서브쿼리를 이용한 테이블 복사(서브쿼리로 JOIN, 지정 가능 , WHERE 조건 가능)
CREATE TABLE BCOPY AS ( SELECT * FROM B);
-->제약조건 중 NOT NULL 제약조건만 복사되고 나머지는 사라진다.
*오라클의 데이터타입
1.CHAR : 고정길이 문자(빈칸이 있어도 고정)
2.VARCHAR2 : 가변길이 문자(빈칸 생기면 날림)
3.NUMBER : 숫자 (정수, 실수)
4.DATE : 날짜
5.CLOB : 대용량 문자
6.BLOB : 대용량 이진 데이터
7.TIMESTAMP : 밀리세컨드 단위 추가 DATE
*컬럼에 주석 넣기
-COMMENT ON COLUMN `테이블명`.`컬럼명` IS `내용`
*제약조건 : 데이터 무결성( 저장된 데이터의 정확성과 일관성을 보증) 을 목적으로
조건을 설정하는 강제 제약
1. NOT NULL : 널을 허용하지 않는다
컬럼 레벨에서만 가능하다
`컬럼명` `자료형` (생략가능)[CONSTRAINT 제약조건명] NOT NULL
2. UNIQUE : 중복값을 허용하지 않는다 (NULL은 가능하다)
컬럼 레벨 --`컬럼명` `자료형` (생략가능)[CONSTRAINT 제약조건명] UNIQUE
테이블 레벨 --(생략가능)[CONSTRAINT 제약조건명] UNIQUE (`컬럼명1` , `컬럼명2` )
*테이블 레벨에서 묶어서 UNIQUE 복합키 설정이 가능하다 ( 두 컬럼이 모두 중복되는 경우만 걸러냄)
3. PRIMARY KEY : 널과 중복을 허용하지 않으며 테이블의 식별자로 사용한다
한 테이블당 한 개만 설정 가능하고 테이블 레벨에서 여러 컬럼을 묶어 설정할 수 있다.
컬럼 레벨 --`컬럼명` `자료형` (생략가능)[CONSTRAINT 제약조건명] PRIMARY KEY
테이블 레벨 --(생략가능)[CONSTRAINT 제약조건명] PRIMARY KEY (`컬럼명1` , `컬럼명2` )
4. FOREIGN KEY : 참조된 다른 테이블의 컬럼이 제공하는 값만 사용할 수 있음
FOREIGN KEY 제약조건으로 테이블간에 관계가 형성됨
제공 되는 값 외 NULL도 사용 가능
참조될 수 있는 컬럼은 PRIMARY KEY / UNIQUE 만 가능하며
참조할 테이블의 참조 컬럼명이 생략되면
참조 테이블의 PRIMARY KEY를 자동 참조할 컬럼으로 설정함
컬럼 레벨 --`컬럼명` `자료형` (생략가능)[CONSTRAINT 제약조건명] REFERENCES `참조 테이블명` (`참조 컬럼명`)
테이블 레벨 --(생략가능)[CONSTRAINT 제약조건명] FOREIGN KEY (컬럼명) REFERENCES `참조 테이블명` (참조
컬럼명)
5. CHECK : 저장 가능한 값 조건을 미리 설정
=> 모두 테이블레벨에서도 가능하지만 NOT NULL은 테이블 레벨에 불가능하다
컬럼 레벨 --`컬럼명` `자료형` (생략가능)[CONSTRAINT 제약조건명] CHECK (`컬럼명` 비교연산자 비교값)
테이블 레벨 --(생략가능)[CONSTRAINT 제약조건명] CHECK(`컬럼명` 비교연산자 비교값)
*비교연산자 : > ,< ,IN, BETWEEN A AND B, ...
*FOREIGN KEY 삭제 옵션 ( FOREIGN KEY 제약조건 뒤에 추가)
- 부모 테이블의 데이터 삭제 시 자식 테이블의 데이터를 처리하는 방법
- 입력 없어도 ON DELETE RESTRICTED 가 DEFAULT( 참조되는 컬럼이면 삭제 불가)
- ON DELETE SET NULL : 부모키 삭제 시 자식키를 NULL로 변경하는 옵션
- ON DELETE CASCADE : 부모키 삭제시 자식키도 함께 삭제됨
'개발자로 업그레이드 되자 > 오라클,SQL' 카테고리의 다른 글
오라클 DBMS 정리 8(TCL) (0) | 2021.09.29 |
---|---|
오라클 DBMS 정리 7(DDL) (0) | 2021.09.29 |
오라클 DBMS 정리 5( DML) (0) | 2021.09.28 |
오라클 DBMS 정리 4( 서브쿼리) (0) | 2021.09.28 |
오라클 DBMS 정리 3(집합 / JOIN) (0) | 2021.09.28 |