Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

archive

[SQLD] DDL (Data Definition Language) 사용 본문

Data/SQLD 필기 준비

[SQLD] DDL (Data Definition Language) 사용

안정민 2023. 11. 11. 09:59

1) 생성

 

칼럼 요소는 (칼럼 정보)(데이터 타입) 순서로 작성한다

요소  
Create Table EMP 라는이름의 테이블을 생성하라는 의미
() 사이에 열 요소를 나열하고 마지막은 세미콜론으로 끝낸다
number 칼럼의 데이터 타입을 숫자형 타입으로 지정
varchar2 칼럼의 데이터 타입을 가변 길이 문자열로 지정
char 칼럼의 데이터 타입을 고정된 크기의 문자열로 지정
date 칼럼의 데이터를 날짜형 타입으로 지
constraint ~ primary key constraint 키워드를 활용하여 기본키와 기본키의 이름을 지정할 수 있
기본키 지정 시 칼럼 옆에 primary key 키워드를 붙인다
default 0 기본값을 0으로 지정한다
sysdate 현재 날짜 시분초
number(10, 2)  소숫점 둘째자리까지 출력하도록 포맷팅
delete from ~ where ~  요소 삭제, 차례대로 테이블명, 요소
select from  

 

외래키를 지정하려면 마스터 테이블(부서 테이블) 을 먼저 생성되어야 한다

외래키를 emp 테이블에서 사용할 때에는 기본키 지정 방식과 동일하게 constraint 키워드를 사용하여 외래키 이름인 deptfk를 입력하여 외래키를 생성한다.

 

2) 데이터 입력 및 삭제

 INSERT INTO ~ VALUES (~); 구문을 활용하여 해당 테이블에 요소를 추가한다

테이블을 생성할 때 CASCADE 옵션을 사용할 수 있다

이는 참조 관계 (기본키 관계와 외래키 관계) 가 있을 경우 차조되는 데이터를 자동으로 반영할 수 있는 

테이블을 생성하고 데이터를 입력하는데, 테이블 생성 시 외래키 선언문 아래에 ON DELETE CASCADE를 추가한다

위와 같이 DELETE FROM 구문을 이용하여 삭제가 이루어질 테이블과 요소를 지정하고

SELECT FROM 구문을 활용하여 EMP 테이블을 조회하면 EMP 테이블에 임베스트가 삭제된다.

 

즉 ON DELETE CASCADE 옵션은 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신도 삭제되는 옵션이다.

위 옵션을 통해 참조무결성을 준수할 수 있다

참조무결성이란 마스터 테이블에는 해당부서 번호가 없는데 슬레이브 테이블 (EMP)에는 해당 부서 번호가 있는 경우 참조무결성 위배로 볼 수 있다.

 

3) 테이블 변경

ALTER TABLE 문을 통하여 테이블 변경을 할 수 있으며, 테이블명 변경, 칼럼 추가, 변경, 삭제 등을 할 수 있다.

ALTER TABLE ~ RENAME TO ~ 구문을 활용하여 테이블 명을 변경할 수 있다

ALTER TABLE ~ ADD 구문을 활용하여 칼럼을 추가할 수 있다

칼럼의 변경은 ALTER TABLE ~ MODIFY 구문을 사용하면 되는데 칼럼 변경을 통해 데이터 타입을 변경하거나 데이터의 길이를 변경할 수 있다

칼럼을 변경할때 제약조건을 설정할 수도 있다.

칼럼의 데이터 타입을 변경할 때 기존 데이터가 있는 경우엔 에러가 발생, 숫자 타입이고 숫자 데이터가 저장이 되어있는데 문자형 데이터 타입으로 변경하면 에러가 발생한다.

ALTER TABLE ~ DROP COLUMN 구문을 활용하여 칼럼에 대한 삭제를 수행한다

ALTER TABLE~ RENAME COLUMN~ TO 문으로 칼럼명을 변경할 수 있다.

 

4) 테이블 삭제

테이블 삭제는 DROP TABLE 명령을 활용하여 삭제 연산을 진행할 수 있는데, 이 구문은 테이블의 구조와 데이터를 모두 삭제한다.

DROP TABLE 명령어에서  CASCADE CONSTRAINT  옵션을 사용할 수 있는데, 해당 테이블의 데이터를 외래키로 참조한 슬레이브 테이블과 관련된 제약사항도 삭제할 때 사용된다

 

5) 뷰(View) 생성과 삭제

뷰란, 테이블로부터 유도된 가상의 테이블이다. 실제 데이터를 가지고 있지 않고 테이블을 참조하여 원하는 칼럼만을 조회할 수 있도록 하는 것이다.

뷰는 데이터 딕셔너리에 SQL 문 형태로 저장하되 실행 시에 참조된다

 

참조한 테이블이 변경되는 뷰도 변경된다

뷰의 검색은 참조한 테이블과 동일하게 할 수 있지만, 뷰에 대한 입력, 수정, 삭제에는 제약이 존재한다.

특정 칼럼만 조회시켜서 보안성을 향상시킨다

한 번 생성된 뷰는 변경할 수 없고 변경을 원하면 삭제 후 재생성해야한다

ALTER 문을 사용해서 뷰를 변경할 수 없다

 

장점 단점
- 특정 칼럼만 조회가 가능하기 때문에 보안 기능이 있다
- 데이터 관리가 간단하다
- SELECT 문이 간단해진다
   원본에서 조건 걸어서 하는 것보다 뷰 하나 생성해서 전체조회(*) 하면 되기 때문
- 하나의 테이블에 여러 개의 뷰를 생성할 수 있다
- 뷰는 독자적인 인덱스를 만들 수 없다
- 삽입, 수정, 삭제 연산이 제약된다
- 데이터 구조를 변경할 수는 없다

 

 

'Data > SQLD 필기 준비' 카테고리의 다른 글

[SQLD] 조인 (Join)  (0) 2023.11.14
[SQLD] DCL 사용과 TCL 사용  (0) 2023.11.12
[SQLD] WHERE문 사용 및 GROUP 연산  (0) 2023.11.12
[SQLD] DML (Data Manipulation Language) 사용  (0) 2023.11.11