728x90
반응형
기억이..... 사라져서..... 정리........ㅠ.ㅠ
어디갔니.... 내 기억...?
DDL - Data Definition Language
CREATE | 스키마, 도메인, 테이블, 뷰, 인덱스 정의 |
ALTER | 테이블에 대한 정의 변경 |
DROP | 스키마, 도메인, 테이블, 뷰, 트리거, 인덱스 제거 |
CREATE
- 스키마 : 하나의 응용(사용자)에 속하는 테이블과 기타 구성 요소 등을 그룹 짓기 위함
CREATE SHCEMA 스키마명 AUTHORIZATION 사용자_ID;
--AUTHORIZATION 허가
- 도메인 : 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합
CREATE DOMAIN 도메인명 데이터_타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK (범위 값)];
--EX--
CREATE DOMAIN SEX CHAR(1)
DEFAULT '남'
CONSTRAINT VALID-SEX CHECK (VALUE IN('남', '여'));
- 테이블 : 설계단계에서는 릴레이션, 조작이나 검색 시에는 테이블
CREAT TABLE 테이블명
(속성명 데이터_타입 [NOT NULL], ...
[, PRIMARY KEY(기본키_속성명, ...)]
[, UNIQUE (대체키_속성명, ...)]
[, FOREIGN KEY (외래키_속성명, ...)
REFERENCES 참조 테이블(기본키_속성명, ...)]
[ON DELETE 옵션]
[ON UPDATE 옵션]
[, CONSTRAINT 제약조건명] [CHECK (조건식)]);
--EX--
CREAT TABLE 테이블명
(이름 VARCHAR(15) NOT NULL,
학번 CHAR(8),
전공 CHAR(5),
성별 SEX,
생년월일 DATE,
PRIMARY KEY(학번),
FOREIGN KEY(전공) REFERENCES 학과(학과코드)
ON DELETE SET NULL -- <학과>테이블에서 튜플이 삭제되면 관련된 모든 튜플의 전공 속성의 값을 NULL로 변경
ON UPDATE CASCADE, -- <학과> 테이블에서 학과코드가 변경되면 관련된 모든 튜플의 전공 속성의 값도 같은 값으로 변경
CONSTRAINT 생년월일제약 CHECK (생년월일 >='1980-01-01'));
-- CONSTRANINT 제약조건명 FOREIGN KEY(전공) REFERENCES학과(학과코드); 이런식으로 외래키 이름 설정 가능
- 뷰 : 하나 이상의 기본 테이블로부터 유도되는 이름을 갖는 가상 테이블
CREATE VIEW 뷰명[(속성명[, 속성명, ...])]
AS SELECT문;
--EX--
CREATE VIEW 안산고객(성명, 전화번호)
AS SELECT 성명, 전화번호
FROM 고객
WHERE 주소='안산시';
- 인덱스 : 검색을 빠르게 하기 위해 만든 보조적인 데이터 구조
CREATE [UNIQUE] INDEX <인덱스명>
ON 테이블명({속성명 [ASC|DESC] [,속성명 [ASC|DESC]]})
[CLUSTER];
-- UNIQUE 중복값 허용 안함
-- ASC 오름차순 생략시 오름차순
-- CLUSTER 지정된 키에 따라 튜플들을 그룹으로 지정하기 위해 사용
- 트리거 : 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때 마다 자동적으로 수행되는 사용자 정의 프로시저, SQL의 제약조건 방법을 통해 명시할 수 없는 무결성 제약조건을 구현하고, 관련 테이블의 데이터를 일치시킬 때 주로 사용
CREAT TRIGGER 트리거명 [동작시기 옵션][동작옵션] ON 테이블명
REFERENCING [NEW|OLD] TABLE AS 테이블명
FOR EACH ROW
WHEN 조건식
트리거 BODY
--EX--
CREAT TRIGGER 학년정보_tri BEFORE INSERT ON 학생
REFERENCING NEW TABLE AS new_table
FOR EACH ROW
WHEN new_table.학년 = ''
BEGIN
SET new_table.학년 = '신입생';
END;
ALTER
ALTER TABLE 테이블명 ADD 속성명 데이터타입[DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
DROP
DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
DROP DOMAIN 명 [CASCADE | RESTRICT];
DROP TABLE 명 [CASCADE | RESTRICT];
DROP VIEW 명 [CASCADE | RESTRICT];
DROP INDEX 명 [CASCADE | RESTRICT];
DROP TRIGGER 명 [CASCADE | RESTRICT];
DROP CONSTRAINT 제약조건명;
--CASCADE 참조하는 다른 모든 개체 함께 제거
--RESTRICT 다른 개체가 참조 중일 경우 제거가 취소됨
728x90
반응형
'개발일기 > DB, SQL' 카테고리의 다른 글
SQL - DML (0) | 2024.04.08 |
---|---|
SQL - JOIN (0) | 2024.04.08 |
SQL - SELECT (0) | 2024.04.08 |
오라클 데이터베이스 백업하기(feat, expdp / impdp) (0) | 2022.08.13 |
S3 서버에 대용량 파일 업로드(feat, AWS CLI) - 내용 추가 (0) | 2022.08.13 |