CREATE TABLE 테이블명
(컬럼명 데이터타입 (NOT NULL일경우 적기)
, 컬럼명2 데이터타입 (NOT NULL일 경우 적기));
ALTER TABLE 테이블명 ADD PK명 PRIMARY KEY (컬럼명);
이렇게 쓰면 컬럼에 PK를 추가해서 테이블 생성이 가능하다.
CREATE TABLE 테이블명
(컬럼명 데이터타입 (NOT NULL일경우 적기)
, 컬럼명2 데이터타입 (NOT NULL일 경우 적기)
, ADD PK명 PRIMARY KEY(컬럼명));
위와 같이 짜면 된다.
ORACLE
ALTER TABLE 테이블명 MODIFY 컬럼이름 데이터유형 NOTNULL/NULL
SQL SERVER
ALTER TABLE 테이블명 ALTER 컬럼이름 데이터유형 NOTNULL/NULL
을 사용한다.
참조하고 있는 컬럼이 지워지면 데이터가 있는 모든 행을 지워버린다.
이와 달리 ON DELETE SET NULL은 지워질 경우 NULL을 반환한다.
1) UNIQUE : 테이블에서 중복되는 값이 없으며 NULL 입력 가능
2) PK : 테이블에서 중복되는 값이 없으며 NULL 입력 불가능
주 키로 테이블당 1개만 생성이 가능하다.
3) FK : 외래키로 테이블당 여러개 생성이 가능하다.
4) NOT NULL : 명시적으로 NULL 입력을 방지한다.
데이터 베이스 안에서 검색의 속도를 빠르게 도와주는 역할
데이터 베이스의 성능 개선을 위해 가장 먼저 확인하고 있음.
실무에서도 데이터의 속도가 느려지면 Index가 없거나 잘못 만들어졌을 경우가 많고 성능에서 중요한 역할을 함.
Index 생성 문법
CREATE INDEX 인덱스명 ON 테이블명(컬럼명);
ALTER TABLE 테이블명 DROP 컬럼명;
을 이용하여 특정 컬럼을 삭제할 수 있다.
RENAME 기존테이블명 TO 변경할 테이블명;
1) DEPENDENT : 참조되는(부모) 테이블에 PK 값이 존재할 때만 입력을 허용
2) AUTOMATIC : 참조되는(부모) 테이블에 PK 값이 없는 경우는 PK를 생성 후 입력
3) DEFAULT : 참조되는(부모) 테이블에 PK 값이 없는 경우 지정된 기본값으로 입력
4) CUSTOMIZED : 특정한 조건이 만족할 때만 입력을 허용
5) NULL : 참조되는(부모) 테이블에 PK 값이 없는 경우 외부키를 NULL 값으로 처리
6) NO EFFECT : 조건 없이 입력을 허용
1) CASCADE : Master 삭제 시 Child 같이 삭제
2) SET NULL : Master 삭제 시 Child 해당 필드 Nulll 처리
3) SET DEFAULT : Master 삭제 시 Child 해당 필드 Default 값으로 설정
4) RESTRICT : Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용
5) NO ACTION : 참조 무결성을 위반하는 삭제/수정 액션을 취하지 않음.
6) NO EFFECT : 조건 없이 삭제/수정 허용
7) COSTOMIZED : 특정 조건을 만족할 때만 수정/삭제 허용
8) DEFAULT : 참조되는(부모) 테이블의 수정을 항상 허용하고 참조하는(자식) 테이블의 외부키를 지정된 기본값으로 변경
INSERT INTO 테이블명 VALUES(컬럼명, 컬럼명, 컬럼명, 컬럼명);
이 때는 테이블에 있는 모든 테이블에 값이 있어야지만 성공한다.
INSERT INTO 테이블명(컬럼명, 컬럼명) VALUES(데이터값, 데이터값);
특정 컬럼을 지정해서 해당 컬럼에만 데이터를 넣고 나머지는 NULL로 들어간다.