develop

[정보처리 산업기사] 2과목 데이터베이스 실무 일반 3장 SQL -DDL,DML,DCL,SELECT,JOIN

방뎁 2023. 2. 6. 09:00
반응형

DDL 유형

명령문 기능
CREATE 스키마,도메인,테이블,뷰,인덱스 정의
ALTER 테이블에 대한 정의를 변경한다.
DROP 스키마,도메인,테이블,뷰,트리거,인덱스를 제거한다.

 

DML 유형

명령문 기능
INSERT 테이블에 새로운 튜플을 삽입한다.
DELETE 테이블에서 튜플을 삭제한다.
UPDATE 테이블에서 튜플의 내용을 갱신한다.

 

DCL 유형

명령문 기능
COMMIT 데이터베이스 조작 작업을 영구적으로 반영하여 완료한다. 
ROLLBACK 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 
원래의 상태로 복구한다. 
GRANT 데이터베이스 사용자에게 사용 권한 부여
REVOKE 데이터베이스 사용자의 사용 권한 회수

 

 

 


 DDL 

  • CREATE (SCHEMA,DOMAIN,TABLE,VIEW,INDEX,TRIGGER)

CREATE SCHEMA

스키마는 하나의 사용자가에 속하는 테이블과 기타 구성요소 같은 것들을 그룹짓기 위한 것으로

스키마 식별을 위한 스키마 이름,해당 스키마의 소유권자나 허가권자를 정의한다.

 

표기형식

CREATE DOMAIN

도메인은 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합. 

정의된 도메인명은 일반적인 데이터타입처럼 사용. 

 

표기형식

-데이터타입: SQL에서 지원하는 타입. 

 

+ CHECK값 설정

표기형식

 

 

CREATE TABLE

테이블 정의 명령문

표기형식

PRIMARY KEY - 기본키로 사용할 속성 또는 속성의 집합 지정. 

UNIQUE - 대체키로 사용할 속성 또는 속성의 집합을 지정하는 것. UNIQUE로 지정한 속성은 중복된 값을 가질 수 없다. 

FOREIGN KEY ~~ REFERENCES ~~

-외래키 속성과 참조테이블에 관한 정보지정.

-외래키가 지정되면 참조 무결성의 CASCADE법칙이 적용된다. 

ON DELETE 옵션 - 참조테이블의 튜플이 삭제되었을 때 기본 테이블에 취해야 할 사항 지정.

(NO ACTION,CASCADE,SET NULL,SET DEFAULT 옵션이 있다. )

ON UPDATE 옵션 - 참조테이블의 참조 속성 값이 변경되었을 때 기본 테이블에 취해야 할 사항을 지정한다. 

(NO ACTION,CASCADE,SET NULL,SET DEFAULT 옵션이 있다. )

  • NO ACTION : 참조 테이블의 변화가 있어도 기본테이블에는 아무런 조취를 취하지 않는다. 
  • CASCADE : 참조테이블의 튜플 삭제 -> 기본테이블의 관련 튜플도 모두 삭제된다,....,속성변경->관련튜플 속성값도 모두 변경된다. 
  • SET NULL : 참조테이블에 변화 -> 기본테이블의 관련 튜플의 속성값을 NULL로 변경.
  • SET DEFAULT : 참조테이블에 변화 -> 기본테이블의 관련 튜플의 속성 값을 기본값으로 변경한다. 

-CONSTRAINT : 제약 조건 이름 지정. 이름을 지정할 필요가 없으면 CHECK절만 사용해 속성값에 대한 제약조건 명시. 

-CHECK : 속성 값에 대한 제약 조건을 지정. 

 

CREATE VIEW

뷰는 하나이상의 기본테이블로부터 유도되는 이름을 갖는 "가상 테이블"

 

표기형식

SELECT문을 서브쿼리로 사용해 SELECT문의 결과로서 뷰를 생성. 

서브쿼리인 SELECT문에는 UNION이나 ORDER BY 절을 사용할 수 없다. 

속성명을 기술하지 않으면 SELECT문의 속성명이 자동으로 사용된다. 

 

조건설정시표기형식

 

CREATE INDEX

인덱스는 검색을 빠르게 하기 위해 만든 보조적인 데이터 구조이다. 

표기형식

-UNIQUE

사용: 중복 값이 없는 속성으로 인덱스 생성. 

생략: 중복 값을 허용하는 속성으로 인덱스 생성. 

 

-정렬여부지정

ASC:오름차순 지정

DESC:내림차순 지정

생략:오름차순으로

 

-CLUSTER : 지정된 키에 따라 튜플들을 그룹으로 지정하기 위해 사용.

 

 

CREATE TRIGGER

트리거는

-데이터베이스 시스템에서 데이터의 입력,갱신,삭제 등의

이벤트가 발생할 때 마다 자동적으로 수행되는 사용자 정의 프로시저.

-SQL 의 제약조건 방법을 통해 명시할 수 없는 무결성 제약조건을 구현,

관련테이블의 데이터를 일치시킬 때 주로 사용한다. 

표기형식

동작시기

>AFTER : 테이블이 변경된 후에 트리거 실행된다. 

>BEFORE : 테이블이 변경되기 전에 트리거가 실행된다.

 

동작 옵션 - 트리거가 실행되게 할 작업의 종류 지정. 

>INSERT : 테이블에 새로운 레코드를 삽입될 때 트리거가 실행.

>DELETE : 테이블의 레코드를 삭제할 때 트리거 실행.

>UPDATE : 테이블의 레코드 수정할 때 트리거 실행.

 

테이블 선택 옵션 - 트리거가 적용될 테이블의 종류를 지정한다. 

> NEW : 새로 추가되거나 변경에 참여할 튜플들의 집합에 트리거가 적용된다.

> OLD : 변경된 튜플들의 집합(테이블)에 트리거 적용된다. 

 

-트리거 BODY : 트리거의 본문 코드를 입력하는 부분.

  > BEGIN으로 시작해서 END로 끝난다. 적어도 하나 이상의 SQL문이 있어야한다. 

  >변수에 값을 치환할 때는 예약어 SET를 사용한다. 

 

  • ALTER TABLE 

테이블에 대한 정의를 변경하는 명령문

 

새로운 속성 추가

표기형식

ADD : 새로운 속성 추가. 

ALTER : 속성의 기본값 변경.

DROP COLUMN : 속성을 제거. 

 

 

속성의 기본값(DEFAULT) 변경

표기형식

 

속성 제거

표기형식

  • DROP

스키마,도메인,테이블,뷰,인덱스,트리거를 제거. 

표기형식

 

CASCADE: 제거하는 개체를 참조하는 모든 개체를 함께 삭제. (참조 무결성 제약조건 설정시 사용)

RESTRICT: 다른 개체가 제거할 개체를 참조중일 경우 제거가 취소된다. 


 

SELECT절 

 

(일반형식)

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

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

[WHERE 조건]

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

[HAVING 조건]

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

 

-PREDICATE : 검색할 튜플을 제한할 목적으로 사용되는 조건 (ALL, DISTINCT,DISTINCTROW)

    -ALL : 모든 튜플 검색시,기본값

    -DISTINCT : 중복된 튜플 제거

    -DISTINCTROW : 중복된 튜플제거(선택된 튜플이 아닌, 튜플의 전체 값을 대상으로 할 때 사용)

-FROM절 : 불러올 데이터가 있는 테이블 지정

-WHERE절 : 검색할 조건 기술, 조건 연산자 사용 가능(이 때 연산자 처리순서는 연산자 우선순위를 따름)

-GROUP BY절 : 특정 속성을 기준으로 그룹화하여 검색시 사용. 일반적으로는 그룹함수와 함께 사용.

-HAVING절 : 그룹에 대한 조건을 기술. 

-ORDER BY : 기준 정렬할때 사용. 정렬 기준이 되는 속성명 설정,

  ASC(오름차순)이 기본값이고 DESC(내림차순)설정 가능. 

 


 JOIN 

 

:2개의 테이블에 대해 연관된 튜플 결합으로 하나의 새로운 릴레이션 반환. 

크게 INNER JOIN과 OUTER JOIN으로 나뉘어진다. 

  • INNER JOIN 

- EQUI JOIN 

조인할 테이블에서 공통 속성을 기준으로 '=' EQUAL비교에 의해 

같은 값을 지니는 행을 연겨해 결과 생성. 

 + EQUI JOIN에서 동일한 속성은 두번 나타나게 되는데 이 중 중복된 속성을 제거

같은 속성을 한번만 표기하는 것을 NATURAL JOIN이라고 한다. 

 + EQUI JOIN 에서 연결고리가 되는 ㅡ공통 속성을 JOIN속성이라고 한다.

 

WHERE절 EQUI JOIN 표기 형식

 

NATURAL JOIN 표기 형식

 

- NON-EQUI JOIN

조인 조건이 '='조건이 아닌 나머지 비교 연산자 

>,<,<>,>=,<=연산자를 사용하는 조인방법.

 

NON-EQUI JOIN 표기 형식 

 

Ex) WHERE 테이블명1.속성 BETWEEN 테이블명.속성명

 

  • OUTER JOIN

-LEFT OUTER JOIN

이너조인 결과 구한 후 우측 항 릴레이션의 어떤 튜플과도 맞지 않는

좌측 항의 릴레이션에 있는 튜플들에 NULL값을 붙여 INNER JOIN의 결과에 추가. 

 

-RIGHT OUTER JOIN

이너조인 결과 구한 후 좌측 항 릴레이션의 어떤 튜플과도 맞지 않는

우측 항의 릴레이션에 있는 튜플들에 NULL값을 붙여 INNER JOIN의 결과에 추가. 

 

-FULL OUTER JOIN

LEFT,RIGHT OUTER JOIN을 합쳐 놓은 것.


 DML 

  • INSERT문

테이블에 새로운 튜플을 삽입할 때 사용하는 명령문

대응하는 속성과 데이터는 개수와 데이터 타입이 일치해야 한다.

 

표기형식

  • DELETE문 

표기형식

특정 튜플 삭제시 사용.. 

 

+ 모든 튜플삭제

표기형식

  • UPDATE문

특정튜플의 내용 갱신할 때 사용. 

표기형식


 DCL 

COMMIT/ROLLBACK

  • COMMIT

-트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영하는 명령어. 

-성공적으로 트랜잭션이 끝나면 데이터베이스가 새로운 일관성상태를 가지기 위해 

수행된 모든 변경을 데이터베이스에 반영하여 COMMIT(완료)하여야 한다. 

 

  • ROLLBACK

-변경된 모든 애용 취소하고 데이터베이스를 이전 상태로 돌리는 명령어

-트랜잭션의 일부를 성공적으로 끝내지 못하면 데이터베이스는 비일관성인 상태에 있게 되므로 

일부분만 완료된 트랜잭션은 ROLLBACK(롤백)되어야 한다. 

 

GRANT/REVOKE

 

  • GRANT 

데이터베이스 관리자가 사용자에게 권한 부여를 위한 명령어

  • REVOKE

데이터베이스 관리자가 사용자에게 부여한 권한을 취소하기 위한 명령어

 

  • 사용자등급 지정 및 해제

사용자등급에는 "DBA,RESOURCE,CONNECT"가 있다.

 

  • 테이블 및 속성에 대한 권한 부여 및 취소

권한리스트(종류): ALL, SELECT,INSERT,DELETE,UPDATE,ALTER 등등...

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

CASCADE : 숸한취소할때 권한을 부여받은 사용자가 다른 사용자에게 부여한 권한도 모두 취소.

반응형