SQL(structured query language)
- 인터페이스 = 대화식 SQL, 내장형 SQL
- 구성요소 = DDL(정의어), DML(조작어), DCL(제어어)
DDL(Data Definition Language)
- 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조 및 구조 간의 사상을 정의한다.
- DDL로 정의된 내용은 메타데이터(Metadata)가 되며, 시스템 카탈로그에 저장된다.
DDL = CREATE/ALTER/DROP
CREATE DOMAIN = 도메인을 정의하는 명령문이다.
표기형식 => CREATE DOMAIN 도메인_이름 데이터_타입
[DEFAULT 기본값]
[CONSTRAINT VALID-도메인_이름 CHECK(범위값)
EX) CREATE DOMAIN GENDER CHAR(2)
DEFAULT '여'
CONSTRAINT VALID-GENDER CHECK (VALUE IN (남', '여'));
CREATE TABLE 학생{
학번 CHAR(15) NOT NULL,
이름 VARCHAR(15) NOT NULL,
*NOT NULL = 널값을 입력하면 안된다. / is not null = 검색 명령인 Select에서 where 속 is not null, 속성이 널값이 아닌 것을 검색해라.
학과 VARCHAR(20) NOT NULL,
학년 INT NOT NULL
전화번호 CAHR(15) NOT NULL,
성별 GENDER,
생년월일 DATE,
PRIMARY KEY(학번), *기본키로 지정되어있으면 NOT NULL과 UNIQUE가 자동지정
UNIQUE(전화번호), *UNIQUE = 중복 제거
FOREIGN KEY(학과) REFERENCES 학과(학과코드)
ON DELETE CASCADE ON UPDATE CASCADE, *부모 테이블에서 삭제,수정이 일어나는 경우, 자식 테이블도 삭제,수정해라.
CONSTRAINT 학년제약 CHECK(학년 >= 1 AND 학년 <= 4)); *CHECK = 제약을 거는 조건으로
CREATE VIEW = 뷰를 정의하는 명령문이다.
표기형식 => CREATE VIEW 뷰_이름(속성_이름,...)
AS SELECT 속성-이름,... FROM 테이블_이름 WHERE 조건
[WITH CHECK OPTION];
EX) CREATE VIEW 컴공학생(학번,이름,학과)
AS SELECT 학번, 이름, 학과
FROM 학생
WHERE 학과='컴퓨터공'
[WITH CHECK OPTION];
CREATE INDEX = 인덱스를 정의하는 명령문이다.
표기 형식 => CREATE [UNIQUE] INDEX 인덱스_이름
ON 기본테이블_이름((속성_이름[ASC|DESC],..));
EX) CREATE UNIQUE INDEX 학번_idx
ON 학생(학번 ASC);
ALTER TABLE = 테이블의 정의를 변경하는 명령문
표기형식 = ALTER TABLE 기본테이블_이름 ADD 속성_이름 data_type[DEFAULT '기본값'];
데이터 제어어 [DCL, data control language]
COMMIT = 정상적인 완료
ROLLBACK = 비정상적인 종료
GRANT = 사용권한 부여
REVOKE = 사용권한 취소
EX) DBA: GRANT SELECT, DELETE ON STUDENT
TO U1 WITH GRANT OPTION; *with grant option을 주면 그 사용자에게 grant 권한을 줄 수 있는 권한을 줌
U1: GRANT SELECT, DELETE ON STUDENT TO U2;
REVOKE = 사용자에게 해당 객체에 대한 특정 사용권한을 취소할 떄 사용.
권한 종류: SELECT, INSERT, DELETE, UPDATE 등
AUTO COMMIT이 off된 경우, COMMIT 하기 전에 실제 데이터베이스 내에서는 수행한 명령어가 적용이 안된다.
COMMIT을 하기전에 ROLLBACK을 하면 그 수행된 명령어를 취소 할 수 있다. COMMIT을 하게 되면 ROLLBACK이 안된다.
'정보처리기사 > Database' 카테고리의 다른 글
정처기 수준에서의 데이터베이스 - 데이터베이스 고급 기능 (0) | 2018.10.04 |
---|---|
정처기 수준에서의 데이터베이스 - SQL(DML) (0) | 2018.10.04 |
정처기 수준에서의 데이터베이스 - 관계 데이터 연산 (0) | 2018.10.04 |
정처기 수준에서의 데이터베이스 - 물리적 데이터베이스 모델링 (0) | 2018.10.04 |
정처기 수준에서의 데이터베이스 - 정규화 (0) | 2018.10.03 |