728x90
[ 데이터베이스 ] 제약조건, NULL, CTAS
제약 조건 종류
PRIMARY KEY(기본키) | 하나의 테이블에 하나의 기본키, NULL 입력 불가 기본키 제약 = 고유키 제약 & NOT NULL 제약 |
UNIQUE(고유키) | 데이터를 고유하게 식별하기 위한 기본키 정의, NULL은 고유키 제약 대상이 아님 |
NOT NULL | NULL 값 입력 금지, 디폴트는 NULL가능, CHECK의 일부분으로 이해 가능 |
CHECK | TRUE, FALSE로 입력 값의 범위 제한 |
FOREIGN KEY(외래키) | 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사 외래키 지정할때 참조 무결성 제약 조건 선택가능 |
제약조건 방식
1) 칼럼 LEVEL 방식 : 데이터 유형 뒤에 NOT NULL 정의
2) 테이블 LEVEL 방식 : 테이블 생성 마지막에 모든 제약조건 기술
3) 별도의 DDL 문장으로 수행
NULL의 의미
'NULL'은 '아직 정의되지 않은 미지의 값' or '현재 데이터를 입력하지 못하는 경우'를 의미한다.
NULL은 공백, 숫자 0, 공집합과 다르다.
생성된 테이블 구조 확인
Oracl : DESCRIBE PLAYER;
SQL Server : exec sp_help 'dbo.PLAYER'
SELECT문을 통해 테이블 생성
CTAS : create table as select, 기존 테이블을 이용해 칼럼별로 데이터 유형을 재정의하지 않아도 된다.
주의 : 테이블의 구조는 복사되지만, 제약조건 NOT NULL만 적용된다. 나머지 PK, FK, UK, CHECK 등은 없어짐.
Oracl : CREATE TABLE TEAM_TEMP AS SELECT * FROM TEAM;
SQL Server : SELECT * INTO TEAM_TEMP FROM TEAM;
728x90
'Back-End > SQL 개발자 자격증' 카테고리의 다른 글
[ 데이터베이스 ] DML (INSERT, DELETE, SELECT, ALIAS, DUAL) (0) | 2023.09.29 |
---|---|
[ 데이터베이스 ] ALTER TABLE, TRUNCATE, DROP, DELETE 차이 (0) | 2023.09.28 |
[ 데이터베이스 ] ERD, 데이터 유형, 테이블 생성규칙 (0) | 2023.09.26 |
[ 데이터베이스 ] DBMS, SQL, TABLE (0) | 2023.09.25 |
[Oracle] 오라클 ORA-28000, ORA-28002 오류 해결 (1) | 2023.09.05 |