밥벌이/데이터베이스 SQL(Structured Query Language) - 반응형 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)]; 반응형 공유하기 게시글 관리 구독하기IT RED OCEAN 에서 살아 남기(일흔까지만) '밥벌이 > 데이터베이스' 카테고리의 다른 글 관계형 데이터 구조의 이해 (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 Contents 당신이 좋아할만한 콘텐츠 관계형 데이터 구조의 이해 2010.09.03 관계형 데이터 연산 2010.09.03 시스템 카탈로그(System Catalog) / 데이터 사전(Data Dictionary) 2010.09.03 개체-관계 모델(ER 모델) 2010.08.26 댓글 0 + 이전 댓글 더보기