-
[SQLD] SQL 개발자 공부하기 Day 11 : DDLStudy/SQL 2024. 2. 26. 23:29728x90반응형
목차
1. DDL
DDL Data Definition Language
‣ 데이터베이스의 구조를 정의하는 언어이다.
(1) 테이블 생성
‣ 데이터베이스를 사용하기 위해서는 테이블을 먼저 생성해야 한다.
SQL문 설명 CREATE Table ‣ 새로운 테이블을 생성한다. ALTER Table ‣ 생성된 테이블을 변경한다. Drop Table ‣ 해당 테이블을 삭제한다. (2) Create Table 구조
1) CREATE Table A : A라는 테이블을 생성하라. ( ) 괄호 사이에 칼럼을 쓰고 마지막은 세미클론으로 끝난다.
2) 칼럼 정보 : 테이블에 생성되는 칼럼 이름과 데이터 타입을 입력한다.
3) 데이터 타입 : number는 숫자형 타입, varchar2는 가변 길이 문자열로 지정.
4) 기본키 : 기본키를 지정할 때 칼럼 옆에 primary key를 입력한다.
(3) CASCADE
‣ CASCADE 옵션은 참조 관계(기본키와 외래키 관계)가 있을 경우 참조되는 데이터를 자동으로 반영할 수 있는 것이다.
(4) 테이블 변경
‣ ALTER Table을 통해 테이블을 변경할 수 있다.
‣ 테이블명 변경, 칼럼 추가, 삭제 등을 할 수 있다.
반응형[ 테이블명 변경 ]
ALTER Table EMP
RENAME TO NEW_EMP;‣ EMP 테이블의 테이블명을 NEW_EMP로 변경한다.
[ 칼럼 추가 ]
ALTER Table EMP
ADD (age number(2));‣ EMP 테이블에 두 자리 숫자까지 저장할 수 있는 age 칼럼을 추가한다.
[ 칼럼 변경 ]
ALTER Table EMP
MODIFY (ename varchar2(40) not null);‣ EMP 테이블에 ename 칼럼의 길이를 40으로 변경하고 not null 조건을 설정한다.
‣ 칼럼 변경을 통해 데이터 타입을 변경하거나 데이터의 길이를 변경할 수 있다.
‣ 칼럼의 데이터 타입을 변경할 때 기존 데이터가 있는 경우 에러가 발생한다.
‣ 예를 들어, 숫자타입이고 숫자 데이터가 저장되어 있는데 문자형 데이터 타입으로 변경하면 에러가 발생한다.
[ 칼럼 삭제 ]
ALTER Table EMP
DROP COLUMN age;‣ EMP 테이블의 age 칼럼을 삭제한다.
[ 칼럼명 변경 ]
ALTER Table EMP
RENAME COLUMN ename to new_ename;‣ EMP 테이블의 ename 칼럼명을 new_ename으로 변경한다.
(5) 테이블 삭제
‣ DROP Table을 통해 테이블을 삭제 할 수 있다.
‣ DROP Table은 테이블의 구조와 데이터를 모두 삭제한다.
‣ DROP Table에서 CASCADE CONSTRAINT 옵션을 사용할 수 있다.
(6) 뷰(View) 생성과 삭제
‣ View는 테이블로부터 유도된 가상의 테이블이다.
‣ 실제 데이터를 가지고 있지 않고 테이블을 참조해서 원하는 칼럼만을 조회할 수 있게 한다.
‣ View는 데이터 딕셔너리(Data Dictionary)에 SQL문 형태로 저장하되 실행 시에 참조된다.
728x90(7) 뷰(View)의 특징
‣ 참조한 테이블이 변경되면 뷰도 변경된다.
‣ 뷰의 검색은 참조한 테이블과 동일하게 할 수 있지만, 뷰에 대한 입력, 수정 삭제에는 제약이 있다.
‣ 특정 칼럼만 조회시켜서 보안성을 향상시킨다.
‣ 한번 생성된 뷰는 변경할 수 없고 변경을 원하면 삭제 후 재생성해야 한다.
‣ ALTER문을 사용해서 뷰를 변경할 수 없다.
View 장점
‣ 특정 칼럼만 조회할 수 있기 때문에 보안 기능이 있다.
‣ 데이터 관리가 간단하다.
‣ SELECT문이 간단해진다.
‣ 하나의 테이블에 여러 개의 뷰를 생성할 수 있다.View 단점
‣ 독자적인 인덱스를 만들 수 없다.
‣ 삽입, 수정, 삭제 연산이 제약된다.
‣ 데이터 구조를 변경할 수 없다.
[ View 생성 ]
CREATE VIEW t_emp AS
SELECT * FROM emp;‣ emp 테이블의 모든 데이터를 조회한 결과를 t_emp라는 뷰를 생성하라.
[ View 조회 ]
SELECT * FROM t_emp;
‣ t_emp를 조회한다.
[ View 삭제 ]
DROP VIEW t_emp;
‣ t_emp 뷰를 삭제한다.
728x90반응형'Study > SQL' 카테고리의 다른 글
[SQLD] SQL 개발자 공부하기 Day 13 : SQL 기본 및 활용 오답노트 (0) 2024.02.28 [SQLD] SQL 개발자 공부하기 Day 12 : DML / DCL / TCL (1) 2024.02.27 [SQLD] SQL 개발자 공부하기 Day 10 : 계층형 조회 / PIVOT / UNPIVOT / 정규표현식 (0) 2024.02.25 [SQLD] SQL 개발자 공부하기 Day 9 : 윈도우 함수 / Top N 쿼리 (1) 2024.02.24 [SQLD] SQL 개발자 공부하기 Day 8 : 그룹 함수 (Group Function) (0) 2024.02.23