반응형
-
SQL의 개요
-
SQL
- 사용 용도에 따라 DDL, DML, DCL로 구분
-
SQL의 특징
- 관계 대수와 관계 해석을 기초로 한 고급 데이터베이스 언어
- 데이터 정의, 데이터 조작, 데이터 제어 기능 제공
- 레코드 집합 단위로 처리
- 비절차적(선언적) 언어
-
- DDL(Data Definition Language)
- 스키마, 도메인, 테이블, 뷰, 인덱스를 정의 하거나 변경 또는 제거할 때 사용하는 언어
- DDL로 정의된 내용은 메타 데이터가 되며, 시스템 카탈로그에 저장
-
DDL의 유형
- CREATE : 객체를 정의
- ALTER : 정의를 변경
- DROP : 객체를 삭제
-
CREATE 문스키마, 도메인, 테이블, 뷰, 인덱스 정의에 사용
-
CREATE 문
- 스키마를 정의하는 명령문
- 스키마는 하나의 응용(사용자)에 속하는 테이블과 기타 구성 요소 등을 그룹짓기 위한 것
- 스키마의 식별을 위한 스키마명과 해당 스키마의 소유권자나 허가권자를 정의
- 표기형식
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id
-
CREATE DOMAIN
- 도메인을 정의하는 명령문
- 도메인이란 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합
- 임의의 속성에서 취할 수 있는 값의 범위가 SQL에서 지원하는 전체 데이터 타입의 값이 아니고 일부분일 때, 사용자는 그 값의 범위를 도메인으로 정의
- 정의된 도메인명은 일반적인 데이터 타입처럼 사용
-
표기형식CREATE DOMAIN 도메인명 데이터_타입
-
CREATE TABLE
- 테이블을 정의하는 명령문
- 표기형식
- PRIMARY KEY : 기본키로 사용할 속성 또는 속성의 집합을 지정
- UNIQUE : 유일한 값을 가지는 속성 또는 속성의 집합을 지정
- FOREIGN KEY ~ REFERENCES~ : 왜래키 속성과 참조 테이블에 관한 정보를 지정
-
ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 때, 기본 테이블에 취해야 할 사항을 지정
- NO ACTION : 참조 테이블의 튜플이 삭제되면 기본 테이블에는 아무런 조치를 취하지 않음
- CASCADE :참조 테이블의 튜플이 삭제되면 기본 테이블의 관련 튜플들도 모두 삭제 되고, 속성이 변경되면 관련 튜플의 속성값도 모두 변경
- SET NULL : 참조 테이블의 튜플이 삭제되면 기본 테이블의 관련 튜플의 속성값을 NULL로 변경
- SET DEFAULT : 참조 테이블의 튜플이 삭제되면 기본 테이블의 관련 튜플의 속성값을 묵시(Default)값으로 변경
-
ON UPDATE 옵션 : 참조 테이블의 튜플이 갱신되었을 때 기본 테이블에 취해야 할 사항을 지정
- 옵션으로는 NO ACTION, CASCADE,SET NULL,SET DEFAULT가 있는데, ON DELETE 옵션 경우와 유사하게 기본 테이블에 대해 처리
- CONSTRAINT : 제약 조건의 이름을 지정
- CHECK : 속성값에 대한 제약을 지정
-
CREATE VIEW
- 뷰를 정의하는 명령문
-
CREATE INDEX
- 인덱스를 정의하는 명령문
- UNIQUE : 중복값이 없는 속성의 인덱스를 생성
- ASC : 오름차순 정렬(Deafult)
- DESC : 내림차순 정렬
- CLUSTER : 지정된 키에 따라 튜플들을 클러스터로 지정하기 위해 사용
-
-
ALTER 문
- 기존 테이블에 대해 새로운 속성의 추가, 속성값의 변경, 기존 속성의 삭제 등에 사용
- ADD : 속성추가
- ALTER : 속성값을 묵시값으로 변경
- DROP : 속성삭제
-
DROP 문
- 스키마, 도메인, 테이블, 뷰, 인덱스,제약조건 삭제에 사용
- CASCADE : 삭제할 요소가 참조 중이면 연쇄적으로 삭제
-
RESTRICTED : 삭제할 요소가 참조 중이면 삭제 되지 않음
-
DML(Data Manipulation Language)데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 접근하는데 사용하는 언어
-
SELECT
- 테이블을 구성하는 튜플 중에서 전체 또는 조건을 만족하는 튜플을 검색하는 명령문(자동적으로 중복을 제거하지 않음)
-
PREDICATE : 검색할 튜플을 제한할 목적으로 사용되는 조건
- (ALL | DISTINCT | DISTINCTROW)가 올 수 있음
- ALL : 모든 튜플들을 검색할 때 사용(Default)
- DISTINCT : 중복된 튜플을 제거할 때 사용
- DISTINCTROW : 중복된 튜플을 제거하지만, 선택된 속성의 값이 아닌 튜플의 전체 값을 대상으로 할 때 사용
- * : 테이블을 구성하는 모든 속성을 지정
- AS : 속성 및 연산의 이름을 다른 이름으로 표현하기 위해 사용
- FROM : 검색할 데이터가 들어있는 테이블명을 지정
-
WHERE : 검색할 조건을 지정
- 다영한 조건 연산자 사용이 가능
- NULL 값 비교시 IS NULL(또는 IS NOT NULL)을 사용
- GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용
- HAVING : 그룹에 대한 조건을 지정
- ORDER BY : 정렬하기 위한 속성을 지정
-
INSERT
- 테이블에 새로운 튜플을 삽입할 때 사용하는 명령문
- 테이블에 모든 속성을 삽입할 때는 속성명 생략이 가능
- SELECT 문을 이용해 다른 테이블의 검색 결과 삽입이 가능
-
UPDATE
- 테이블에 있는 튜플들 중에서, 특정 튜플의 내용을 갱신할 때 사용하는 명령문
- 모든 튜플을 갱신할 때는 WHERE 절을 생략
-
DELETE
- 테이블에 있는 튜플들 중에서, 특정 튜플을 삭제할 때 사용하는 명령문
-
모든 튜플을 삭제할 때는 WHERE 절을 생략
-
-
DCL(Data Control Language)
- 데이터의 보안, 무결성, 회복, 동시성 제어 등을 정의하는 데 사용하는 언어
- 데이터베이스 관리자가 데이터 관리를 목적으로 사용
-
DCL 유형
- COMMIT : 데이터베이스 조작 작업을 영구적으로 반영하여 완료
- ROLLBACK : 데이터베이스 조작작업을 원래의 상태로 복구
- REVORK : 데이터베이스 사용자에게 사용 권한을 취소
-
COMMIT
- 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어
- 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성 상태를 가지기 위해 수행된 모든 변경을 데이터베이스에 반영하여 완료(Commit) 해야 함
-
ROLLBACK
- 트랜잭션이 변경한 모든 내용들을 취소하고, 데이터베이스를 이전 상태로 되돌리는 명령어
- 트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스가 비일관성 상태를 가질 수 있기 때문에 해당 트랜잭션은 복구(Rollback)되어야 함
- ROLLBACK 시에는 해당 트랜잭션은 받았던 자원과 잠금을 모두 반환하고, 재시작(Restart)되든지 폐기됨
-
GRANT / REVORK
- 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하고 취소하기 위한 명령어
-
표기 형식 1 : 사용자 등급 지정 및 해제GRANT 사용자 등급 TO 사용자_ID_리스트 [IDENFIFIED BY 암호];
-
사용자 등급
- DBA : 데이터베이스 관리자
- CONNECT : 단순사용자
- RESOURCE : 데이터베이스 및 테이블 생성이 가능한 사용자
-
- REVORK 사용자 등급 FROM 사용자_ID_리스트
-
표기 형식 2: 테이블 및 속성에 대한 권한 부여 및 취소GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
- 권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
- WITH GRANT OPTION : 부여 받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
- GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
- CASCADE : 권한 취소 시 권한을 부여 받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소
- REVORK [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자[CASCADE)];
반응형
'밥벌이 > 데이터베이스' 카테고리의 다른 글
관계형 데이터 구조의 이해 (0) | 2010.09.03 |
---|---|
관계형 데이터 연산 (0) | 2010.09.03 |
시스템 카탈로그(System Catalog) / 데이터 사전(Data Dictionary) (0) | 2010.09.03 |
개체-관계 모델(ER 모델) (0) | 2010.08.26 |
확장(Extended) ER모델 (0) | 2010.08.26 |