8. SQL 응용

SQL – DDL (데이터 정의어)

DDL (Data Define Language, 데이터 정의어)

  • CREATE – SCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 정의
  • ALTER – TABLE에 대한 정의를 변경하는 데 사용
  • DROP – SCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 삭제
  • TRUNCATE – 초기화

CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_ID;

SCHEMA – 데이터베이스 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description)한 것 

CREATE DOMAIN 도메인명 [AS] 데이터_타입 [DEFAULT 기본값] [CONSTRAINT 제약조건명 CHECK (범위값)];

DOMAIN – 하나의 속성이 취할 수 있는 동일한 유형의 원자값들의 집합

CREATE TABLE 테이블명

( 속성명 데이터_타입 [DEFAULT 기본값] [NOT NULL], …

[, PRIMARY KEY (기본키_속성명, …)]

[, UNIQUE (대체키_속성명, …)]

[, FOREIGN KEY (외래키_속성명, …)]

[REFERENCES 참조테이블 (기본키_속성명, …)]

[ON DELETE 옵션]

[ON UPDATE 옵션]

[, CONSTRAINT 제약조건명] [CHECK (조건식)]);

CREATE VIEW 뷰명[(속성명[, 속성명, …])] AS SELECT문;

CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명 (속성명 [ASC|DESC][, 속성명 [ASC|DESC]]) [CLUSTER];

DROP SCHEMA 스키마명 [CASCADE | RESTRICT];

DROP DOMAIN 도메명 [CASCADE | RESTRICT];

DROP TABLE 테이블명 [CASCADE | RESTRICT];

DROP VIEW 뷰명 [CASCADE | RESTRICT];

DROP INDEX 인덱스명 [CASCADE | RESTRICT];

DROP CONSTRAINT 제약조건명;

CASCADE – 제거할 요소를 참조한느 다른 모든 개체를 함께 제거

RESTRICT – 다른 개체가 제거할 요소를 참조 중일 때는 제거를 취소

SQL – DCL (데이터 제어어)

DCL (Data Control Language, 데이터 제어어)

  • COMMIT – 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
  • ROLLBACK – 데이터베이스 조작 작업이 비정상적으로 종료되었을 때, 원래의 상태로 복구
    • SAVEPOINT – 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어
  • GRANT – 데이터베이스 사용자에게 사용 권한을 부여
  • REVOKE – 데이터베이스 사용자의 사용 권한을 취소

GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];

REVOKE 사용자등급 FROM 사용자_ID_리스트;

GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];

REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

권한 종류 – ALL, SELECT, INSERT, DELETE, UPDATE, ALTER

WITH GRANT OPTION – 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여

GRANT OPTION FOR – 다른 사용자에게 권한을 부여할 수 있는 권한을 취소

SQL – DML (데이터 조작어)

DML (Data Manipulation Language, 데이터 조작어)

  • SELECT – 테이블에서 튜플 검색
  • INSERT – 튜플 삽입
  • DELETE – 튜플 삭제
  • UPDATE – 튜플 갱신

INSERT INTO 테이블명([속성명1, 속성명2, …]) VALUES (데이터1, 데이터2, …);

DELETE FROM 테이블명 [WHERE 조건];

UPDATE 테이블명 SET 속성명=데이터[, 속성명=데이터, …][WHERE 조건];

SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭],[, [테이블명.]속성명, …]

[, 그룹함수(속성명) [AS 별칭]]

[, WINDOW함수 OVER (PARITION BY 속성명1, 속성명2, … ORDER BY 속성명3, 속성명4, …)]

FROM 테이블명[, 테이블명, …]

[WHERE 조건]

[GROUP BY 속성명, 속성명, …]

[HAVING 조건]

[ORDER BY 속성명 [ASC | DESC]];

PREDICATE – 검색할 튜플 수를 제한하는 명령어를 기술

  • DISTINCT – 중복제거

PARTITION BY – WINDOW 함수의 적용 범위가 될 속성을 지정

WINDOW 함수

  • ROW_NUMBER() – 윈도우별로 각 레코드에 대한 일련번호를 반환
  • RANK() – 윈도우별로 순위를 반환하며, 공동 순위를 반영
  • DENSE_RANK() – 윈도우별로 순위를 반환하며, 공동 순위를 무시하고 순위를 부여

프로시저 ( Procedure )

프로시저(Procedure)

  • SQL을 사용하여 작성한 일련의 작업을 저장해두고 호출을 통해 원할 때마다 저장한 작업을 수행하도록 하는 절차형 SQL
  • 시스템의 일일 마감 작업, 일괄(Batch) 작업 등에 주로 사용

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *