인덱스 생성하는법
CREATE INDEX 생성될 인덱스명 ON 스키마(속성명);
외래키에 대한 설명
- 테이블 생성시 설정할 수 있다.
- 외래키 값은 널 값을 가질 수 있다.
- 한 테이블에 여러개가 존재할 수 있다.
- 외래키 값은 참조 무결성 제약을 받을 수 있다.
Check 제약조건(Contstraint)은 데이터베이스에서 데이터의 무결성을 유지하기 위하여 테이블의 특정 컬럼에 설정하는 제약.
특정 컬럼데이터만 삭제하는 명령어
- ALTER TABLE 테이블명 DROP COLUMN 컬럼명
참조무결성 규정
ex) FOREIGN KEY(외래키가 될 컬럼) REFERENCES 참조할 스키마(속성명) ON DELETE CASCADE;
Delete(/Modefy) Action : Cascade, Set Null, Set Default, Restrict (부서 - 사원)
- Cascade : Master 삭제 시 Child 같이 삭제
- Set Null : Master 삭제 시 Child 해당 필드 Null
- Set Default : Master 삭제 시 Child 해당 필드 Default 값으로 설정
- Restrict : Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용
- No Action : 참조무결성을 위반하는 삭제 / 수정 액션을 취하지 않음
Insert Action : Automatic, Set Null, Set Default, Dependent (부서 - 사원)
- Automatic : Master 테이블에 PK가 없는 경우 Master 테이블 PK를 생성 후 Child 입력
- Set Null : Master 테이블에 PK가 없는 경우 Child 외부키를 Null 값으로 처리
- Set Default : Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
- Dependent : Master 테이블에 PK가 존재할 때만 Child 입력 허용
- No Action : 참조무결성을 위반하는 입력 액션을 취하지 않음
STADIUM 테이블의 이름을 STADIUM_JSC로 변경하는 SQL을 작성하시오 ( ANSI 표준 기준 )
-> DDL언어인 RENAME을 사용하면 된다.
-> RENAME STADIUM TO STADIUM_JSC
컬럼 (ID, AMT, DEGREE)일 경우
INSERT INTO TBL VALUES(1, 100) => 틀린 문법
=> 삽입 컬럼을 명시하지 않았을 경우 모든 컬럼을 삽입해야 한다.
A테이블(주문)을 B테이블(고객)이 참조할 경우
EX) ALTER TABLE 주문 ADD CONSTRAINT FK_001 FOFEIGN KEY (고객 ID) REFERENCES 고객 (고객ID) ON DELETE SET NULL;
=> 참조된 A테이블에 B에 없는 데이터를 INSERT를 하면 무결정 제약 오류가 발생함
테이블 삭제할 때, TRUNCATE TABLE 과 DROP TABLE은 로그를 남기지 않음
테이블 데이터 삭제 명령어
=> 특정 테이블의 모든 데이터를 삭제하고, 디스크 사용량을 초기화 하기위해서 사용 (테이블 스키마 정의 삭제안됨)
=> UNDO를 위한 데이터를 생성하지 않기 때문에 동일 데이터량 삭제시 DELETE보다 빠르다.
=> 테이블의 데이터를 모두 삭제하지만, 디스크 사용량을 초기화 하지는 않는다.
=> 테이블의 데이터를 모두 삭제하고 디스크 사용량도 없앨(초기화) 수 있지만, 테이블의 스키마 정의도 함께 삭제됨
DROP |
TRUNCATE |
DELETE |
DDL |
DDL(일부 DML성격) |
DML |
ROLLBACK 불가능 |
ROLLBACK 불가능 |
COMMIT 이전 ROLLBACK가능 |
Auto Commit |
Auto Commit |
사용자 Commit |
테이블이 사용했던 Storage를 모두 Release |
테이블이 사용했던 Storage중 최초 테이블 생성시 할당된 Storage만 남기고 Release |
데이터를 모두 Delete해도 사용했던 Storage는 Release되지 않음 |
테이블의 정의 자체를 완전히 삭제함 |
테이블을 최초 생성된 초기상태로 만듬 |
데이터만 삭제 |
DISTINCT : 중복된 데이터가 있는경우 1건으로 처리해서 출력