데이터베이스 07_DDL
1. 데이터 정의어: 테이블 같은 데이터 저장소, 객체를 만들거나 수정
2. CREATE: 새로운 객체를 생성할 때 사용하는 명령어
-CREATE TABLE(USER, SEQUENCE, VIEW)
● 테이블 조회: 테이블명 작성-블럭 씌우기-Shift+ F4
-자료형(크기): DATA_TYPE
-기본값: DATA_DEFAULT
-NULL 여부: NULLABLE(YES=NULL(생략가능), NO=NOT NULL)
● 컬럼 여러 개 쓸 때는 콤마로 연결하며, 마지막 컬럼은 콤마를 쓰지 않는다.
● 테이블 삭제: DROP TABLE 테이블명
● 테이블 생성 규칙
-대소문자 구분하지 않는다.
-테이블명 중복될 수 없음
-같은 테이블 내에서 컬럼명은 중복될 수 없음
-문자로 시작해야 하며, 예약어는 사용이 불가능함
[실습1]
CREATE TABLE 부서 (
부서ID NUMBER(6,0) NOT NULL
부서명 VACHAR2 30 NOT NULL
매니저ID NUMBER(6),
위치ID NUMBER(4)
);
3. 제약조건: 테이블에 입력가능한 데이터를 제약할 조건
*연결개념:논리적 모델링
- PRIMARY KEY(PK)
- UNIQUE KEY
- NOT NULL
- CHECK
- FOREIGN KEY(FK)
1)PRIMARY KEY: 식별자를 물리적 모델링한 것 예)직원 ID
● NOT NULL+UNIQUE: NULL 불가, 중복 불가
*식별자: 테이블에서 행을 식별할 수 있는 컬럼
2)UNIQUE KEY: NULL가능, 중복 불가 예)이메일, 휴대폰 번호
3)NOT NULL: NULL 불가
4)CHECK: 지정한 데이터만 입력가능 예)성별에서 남/녀만 입력하도록 제한
5)FOREIGN KEY: 테이블과 테이블이 연결되어있는 관계를 물리적 모델링한 것
-다른 테이블의 기본키를 참조하는 속성의 집합
-FOREIGN KEY를 사용하면 데이터의 무결성이 이루어진다.
예)부서테이블(부모 테이블)-직원 테이블(자식 테이블)
부서테이블에 없는 컬럼을 자식 테이블에 가져올 수 없음
4. 무결성 제약조건
*무결성: 데이터에 결함이 없는 상태. 즉 데이터가 정확하고 유효하게 유지된 상태
*무결성 제약조건: 데이터베이스에 저장된 데이터의 무결성을 보장, 일관되게 유지
● 개체 무결성 제약조건: 기본키를 구성하는 속성은 NULL값을 가질 수 없음
● 참조 무결성 제약조건: 외래키는 참조할 수 없는 값을 지닐 수 없음
(NULL이거나 중복되는 값을 참조할 수 없음)
5. PK UK CHECK 문법
6. FK 문법: 참조하려는 컬럼이 UNIQUE하거나 PK이어야 참조가능함!
7. NOT NULL 변경: NULLABLE YES>NO로 변경
8. 제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
9. 제약조건 조회
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME =’테이블명’
10.제약조건 테이블 생성할 때 추가하기
[실습2]
CREATE TABLE 네이버회원(
ID VARCHAR2(15),
이름 VARCHAR2(12) NOT NULL,
비밀번호 VARCHAR2(16),
생년월일 DATE,
성별 VARCHAR2(3)
);
11. ALTER: 테이블 수정 시 사용하는 명령어
1)테이블에 컬럼 추가: ADD
ALTER TABLE 테이블명 ADD 컬럼명 자료형 [기본값] [NULL여부];
2)테이블의 컬럼 삭제: DROP COLUMN
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
3)테이블의 컬럼 속성 변경: MODIFY
ALTER TABLE 테이블명 MODIFY 컬럼명 자료형 [기본값] [NULL여부];
4)테이블의 컬럼 이름 변경: RENAME COLUMN
ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 컬럼명;
12. DROP: 삭제할 때 사용하는 명령어
1)DROP TABLE: 테이블 삭제
외래키에 의해 참조되는 테이블은 DROP TABLE로 삭제 불가
→CASCADE CONSTRAINT를 옵션으로 추가하면 외래키도 삭제할 수 있음
2)DROP CONSTRAINT: 제약조건 삭제
DROP TABLE 테이블명 CASCADE CONSTRAINT
3)TRUNCATE TABLE: 테이블, 데이터 영구삭제
● DELETE, TRUNCATE, DROP의 차이점
-DELETE: 테이블의 데이터 삭제 ->COMMIT 전까지 복구가능(ROLLBACK)
-TRUNCATE: 테이블의 데이터 영구삭제 ->복구 불가능
-DROP: 데이터, 테이블 영구삭제 ->복구 불가능
'데이터베이스' 카테고리의 다른 글
[DB]9.TCL&DCL (0) | 2023.06.08 |
---|---|
[DB]8.DML&서브쿼리 (1) | 2023.06.07 |
[DB]6. JOIN (0) | 2023.06.05 |
[DB]5. GROP BY&HAVING절 (0) | 2023.06.01 |
[DB]4. Oracle 함수 (0) | 2023.05.31 |