: 관계 데이터베이스에서 사용될 테이블, 스키마, 도메인, 인덱스, 뷰 등을 정의(생성)하거나 수정, 제거하기 위해 사용하는 언어이다.
CREATE
CREATE TABLE 테이블이름
( 속성이름 데이터타입, ... , ... );
CREATE SCHEMA 스키마이름 AUTHORIZATION 사용자;
CREATE DOMAIN 도메인이름 데이터타입
[DEFAULT 기본값][CONSTRAINT 제약조건이름 CHECK(VALUE IN(범위값))];
CREATE [UNIQUE] INDEX 인덱스이름
ON 테이블이름(속성이름 [ASC | DESC])
[CLUSTER];
//
// UNIQUE: 중복을 허용하지 않도록 인덱스를 생성할때 사용
// CLUSTER: 인접된 튜플들을 그룹으로 묶어 저장하도록 할때 사용
ALTER
ALTER TABLE 테이블이름 ADD 속성이름 데이터타입 [DEFAULT];
ALTER TABLE 테이블이름 ALTER 속성이름 [SET DEFAULT];
ALTER TABLE 테이블이름 DROP 속성이름 [CASCADE | RESTRICT];
//
// CASCADE: 속성을 제거할때 그 속성을 참조하고 있는 모든 테이블, 스키마 등에서 제거된다
// RESTRICT: 속성을 제거할때 그 속성을 참조하고 있는 테이블, 스키마 등이 있을때 그 속성에 대한 명령이 취소된다
DROP
DROP TABLE 테이블 이름 [CASCADE | RESTRICT];
-> 테이블 전체 삭제
DROP SCHEMA 스키마 이름 [CASCADE | RESTRICT];
DROP DOMAIN 도메인 이름 [CASCADE | RESTRICT];
DROP VIEW 뷰 이름 [CASCADE | RESTRICT];
DROP INDEX 인덱스 이름;
DROP CONSTRAINT 제약조건 이름;
: 데이터베이스 내의 자료를 실제 사용자가 이용(조작)하기 위한 언어이며, 데이터의 검색, 삽입, 수정, 삭제 등을 위해 사용된다.
SELECT (검색문)
SELECT [DISTINCT] 속성이름
FROM 테이블이름
// [WHERE 조건]
// [GROUP BY 속성이름 [HAVING 그룹조건]]
// [ORDER BY 속성이름 [ASC | DESC]]
//
// DISTINCT: 검색 결과에 중복되는 값이 있는 경우 한번만 표현하도록 하는 옵션
// GROUP BY: 한 속성의 값을 그룹으로 분류하고자 할때 사용
// HAVING: GROUP BY에 의해 그룹으로 분류를 한 후 조건을 제시할때 사용
ex1)
SELECT 이름
FROM 학생정보
WHERE 학과 IN
( SELECT 학과
FROM 학과인원
WHERE 학생수 <= 30 );
.
ex2)
SELECT 성명
FROM 학생
WHERE 연락처 LIKE '%7588';
.
ex3)
SELECT 성명
FROM 학생
WHERE 연락처 IS NOT NULL
INSERT (삽입문)
INSERT INTO 테이블이름 (속성이름1, 속성이름2, ... )
VALUES (속성값1, 속성값2, ...);
UPDATE (갱신문)
UPDATE 테이블이름
SET 속성이름 = 변경내용
[WHERE 조건];
DELETE (삭제문)
DELETE FROM 테이블이름
[WHERE 조건];
: 관리자가 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 하기 위해 사용하는 언어를 말한다.
COMMIT
: 데이터베이스 내의 연산이 성공적으로 종료되어 그 연산에 의한 수정내용을 지속적으로 유지하기 위한 명령어
ROLLBACK
: 데이터베이스 내의 연산이 비정상적으로 종료되거나 정상적으로 수행이 되었다 하더라도 수행되기 이전 상태로 되돌리기 위해 연산 내용을 취소할때 사용하는 명령어
GRANT
: 관리자(DBA)가 사용자에게 데이터베이스에 대한 권한을 부여하기 위한 명령어
GRANT 권한내용 ON 테이블이름 TO 사용자 [WITH GRANT OPTION];
// WITH GRANT OPTION: 사용자가 부여받은 권한을 다른 사용자에게 부여하고자 할때 사용하는 옵션
.
ex) GRANT UPDATE ON 학생 TO OTH WITH GRANT OPTION;
REVOKE
: 관리자(DBA)가 사용자에게 부여했던 권한을 취소하기 위해 사용되는 명령어
REVOKE 권한내용 ON 테이블이름 FROM 사용자 [CASCADE];
.
ex) REVOKE UPDATE ON 학생 FROM OTH CASCADE
: 가상테이블
: 실제 물리적으로 기억공간을 차지하지 않으며, 논리적 독립성을 제공하고, 데이터 접근제어로 보안성을 향상한다.
: 뷰가 정의된 기본 테이블이 제거되면, 뷰도 자동적으로 제거된다.
: 뷰는 ALTER문을 이용하여 변경할 수 없다.
: 한번 정의된 뷰는 변경할 수 없으며, 삭제한 후 다시 생성해야 한다.
: 데이터사전 (Data Dictionary), 메타 데이터 (Meta Data)
: 데이터베이스에 저장되어 있는 테이블, 인덱스, 제약조건 등 개체들에 대한 정보와 정보들 간의 관계를 저장한 것으로 그 자체가 하나의 작은 데이터베이스이다.
: 검색은 가능하지만 삽입, 삭제, 갱신 등은 불가능하다.
: 시스템 카탈로그 갱신은 사용자가 SQL문을 실행하면 시스템에 의해 자동적으로 이루어진다.
: 둘 이상의 테이블로부터 특정 공통된 값을 갖는 행을 연결하거나 조합하여 검색하는 것
+) JOIN ~ ON
: 두 테이블을 JOIN 연산한 뒤 자료를 검색하는 형태의 질의문
테이블1 JOIN 테이블2 ON 조인조건
ex)
SELECT 이름, 학과, 학생수
FROM 학생정보 JOIN 학과인원 ON (학생정보.학과 = 학과인원.학과);
: 데이터베이스에 특정한 사건(이벤트)이 발생될 때마다 자동으로 수행되는 저장 프로시저이다.