본문 바로가기

CERTIFICATION/IEIP

[3-2] SQL 활용

092 SQL 개념


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

  • SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어
  • DDL(데이터 정의어)의 세가지 유형
명령어 기능
CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의
ALTER TABLE에 대한 정의를 변경
DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제

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

  • 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 처리하는데 사용되는 언어
  • DML(데이터 조작어)의 네가지 유형
명령어 기능
SELECT 테이블에서 조건에 맞는 튜플 검색
INSERT 테이블에 새로운 튜플 삽입
UPDATE 테이블에서 조건에 맞는 튜플의 내용 변경
DELETE 테이블에서 조건에 맞는 튜플 삭제

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

  • 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는데 사용되는 언어
  • DCL(데이터 제어어)의 종류
명령어 기능
COMMIT 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장,
DB 조작 작업이 정상적으로 완료되었음을 관리자에게 알림
ROLLBACK DB 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구
GRANT DB 사용자에게 사용 권한 부여
REVOKE DB 사용자의 사용 권한 취소

093 DDL


CREATE TABLE

    CREATE TABLE 테이블명
        (속성명 데이터_타입 [DEFAULT 기본값][NOT NULL], ...
        [, PRIMARY KEY(기본키_속성명, ...)]
        [, UNIQUE(대체키_속성명, ...)]
        [, FOREIGN KEY(외래키_속성명, ...)]
            [REFERENCES 참조테이블(기본키_속성명, ...)]
            [ON DELETE 옵션]
            [ON UPDATE 옵션]
        [, CONSTRAINT 제약조건명][CHECK (조건식)];
  • 테이블을 정의하는 명령문
  • 표기 형식
    • 기본 테이블에 포함될 모든 속성에 대하여 속성명과 그 속성의 데이터 타입, 기본값, NOT NULL 여부 지정
    • PRIMARY KEY : 기본키로 사용할 속성 or 속성의 집합 지정
    • CHECK : 속성 값에 대한 제약 조건 정의

ALTER TABLE

    ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
    ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
    ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
  • 테이블에 대한 정의를 변경하는 명령문
  • 표기 형식
    • ADD : 새로운 속성(열) 추가
    • ALTER : 특정 속성의 Default 값을 변경할 때 사용
    • DROP COLUMN : 특정 속성 삭제

DROP

    DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
    DROP DOMAIN 도메인명 [CASCADE | RESTRICT];    
    DROP TABLE 테이블명 [CASCADE | RESTRICT];
    DROP VIEW 뷰명 [CASCADE | RESTRICT];
    DROP INDEX 인덱스명 [CASCADE | RESTRICT];
    DROP CONSTRAINT 제약조건명;
  • 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문
  • 표기 형식
    • CASCADE : 제거할 요소를 참조하느느 다른 모든 개체를 함께 제거
      • 주 테이블의 데이터 제거시 각 외래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건 설정
    • RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거 취소

094 DCL


GRANT / REVOKE

  • GRANT : 권한 부여를 위한 명령어
  • REVOKE : 권한 취소를 위한 명령어
  • 테이블 및 속성에 대한 권한 부여 및 취소
    GRNAT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
    REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

COMMIT

  • 트랜잭션이 성공적으로 끝나면 db가 새로운 일관성(Consistency) 상태를 가지기 위해 변경된 모든 내용을 DB에 반영하는 명령어

ROLLBACK

  • 아직 COMMIT 되지 않은 변경된 모든 내용들을 취소하고 DB를 이전 상태로 되돌리는 명령어

SAVEPOINT

  • 트랜잭션 내 ROLLBACK 할 위치인 저장점을 지정하는 명령어

095 DML


삽입문(INSERT INTO ~)

    INSERT INTO 테이블명([속성명1, 속성명2, ...])
    VALUES (데이터1, 데이터2, ...);
  • 기본 테이블에 새로운 튜플 삽입
  • 대응하는 속성과 데이터는 개수와 데이터 유형이 일치해야 함
  • 기본 테이블의 모든 속성을 사용할 때는 속성명 생략 가능

삭제문(DELETE FROM ~)

    DELETE
    FROM 테이블명
    [WHERE 조건];
  • 기본 테이블에 있는 튜플들 중에서 특정 튜플(행) 삭제
  • 모든 레코드를 삭제할 때는 WHERE절 생략
  • 모든 레코드를 삭제하더라도 테이블 구조는 남아있음
    • 디스크에서 테이블을 완전히 제거하는 DROP과 다름

갱신문(UPDATE ~ SET ~)

  • 기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용 변경
    UPDATE 테이블명
    SET 속성명 = 데이터[, 속성명=데이터, ...]
    [WHERE 조건];

DML(데이터 조작어)의 네가지 유형

  • SELECT(검색) : SELECET ~ FROM ~ WHERE ~
  • INSERT(삽입) : INSERT INTO ~ VALUES ~
  • DELETE(삭제) : DELETE FROM ~ FROM ~ WHERE ~
  • UPDATE(변경) : UPDATE ~ SET ~ WHERE ~

096 DML - SELECT-1


일반 형식 및 기본 검색

    SELECT [PREDICATE] [테이블명.]속성명1, [테이블명2.]속성명2, ...
    FROM 테이블명[, 테이블명, ...]
  • SELECT 절
    • PREDICATE : 불러올 튜플 수를 제어할 명령어 기술
      • DISTINCT : 중복된 튜플이 있으면 그 중 첫번째 한개만 검색
    • 속성명 : 검색하여 불러올 속석(열) 및 수식들 지정
  • FROM 절
    • 질의에 의해 검색될 데이터들을 포함하는 테이블명 기술

조건 연산자

  • 논리 연산자 : NOT, AND, OR
  • LIKE : 대표 문자를 이용해 지정된 속성 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용
    • * OR % : 모든 문자를 대표
    • _ : 문자 하나를 대표
    • # : 숫자 하나를 대표

조건 지정 검색

    SELECT [테이블명.]속성명1, [테이블명2.]속성명2, ...
    FROM 테이블명[, 테이블명, ...]
    [WHERE 조건];
  • WHERE절에 조건을 지정하여 조건에 만족하는 튜플만 검색
  • BETWEEN 연산자
    • 생일이 '01/09/69'에서 '10/22/73' 사이인 자료만 검색
    • WHERE 생일 BETWEEN #01/09/69# AND #10/22/73#

정렬 검색

  • ORDER BY절에 특정 속성을 지정하여 지정된 속성으로 자료를 정렬하여 검색
    SELECT [테이블명.]속성명1, [테이블명2.]속성명2, ...
    FROM 테이블명[, 테이블명, ...]
    [WHERE 조건];
    [ORDER BY 속성명 [ASC | DESC]];
  • 속성명 : 정렬의 기준이 되는 속성명 기술
  • [ASC | DESC]
    • 정렬 방식
      • ASC : 오름차순
      • DESC : 내림차순
    • 생략하면 오름차순으로 지정

하위 질의

  • 조건절에 주어진 질의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용
  • ex) '취미'가 '게임'인 사원의 '이름'과 '주소' 검색
    SELECT 이름, 주소
    FROM 사원
    WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미 = '게임');

097 DML - SELECT-2


그룹 지정

    SELECT [테이블명.]속성명, [테이블명.]속성명, ...
    FROM 테이블명[, 테이블명, ...]
    [WHERE 조건]
    [GROUP BY 속성명, 속성명, ...]
    [HAVING 조건];
  • 특정 속성을 기준으로 그룹화하여 검색할 때 그룹화할 속성 지정
  • GROUP BY절
    • 특정 속성을 기준으로 그룹화하여 검색할 때 사용
    • 그룹 함수와 함께 사용
  • HAVING절
    • GROUP BY절과 함께 사용
    • 그룹에 대한 조건 지정

그룹 함수

  • COUNT(속성명) : 그룹별 튜플 수를 구하는 함수
  • SUM(속성명) : 그룹별 합계를 구하는 함수
  • AVG(속성명) : 그룹별 평균을 구하는 함수
  • MAX(속성명) : 그룹별 최대값을 구하는 함수
  • MIN(속성명) : 그룹별 최소값을 구하는 함수

집합 연산자

  • 2개 이상의 테이블의 데이터를 하나로 통합하는 연산자

098 DML - JOIN


INNER JOIN

  • EQUI JOIN
    • JOIN 대상 테이블에서 공통 속성을 기준으로 '='(EQUAL) 비교에 의해 같은 값을 가지는 행 연결
    • JOIN 조건이 '='일 때 동일한 속성이 두번 나타남
      • NATURAL JOIN : 이중 중복된 속성을 제거하여 같은 속성을 한번만 표기하는 방법
  • NON-EQUI JOIN
    • JOIN 조건에 '=' 조건이 아닌 나머지 비교 연산자
    • >, <, <>, >=, <= 연산자를 사용하는 JOIN 방법

OUTER JOIN

  • 릴레이션에서 JOIN 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 JOIN 방법
  • LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN

SELF JOIN

  • 같은 테이블에서 2개의 속성을 연결하여 EQUI JOIN 하는 JOIN 방법

'CERTIFICATION > IEIP' 카테고리의 다른 글

[3-3] 데이터베이스 프로그래밍  (0) 2024.05.18
[3-1] 데이터베이스 이해  (0) 2024.05.18
[2-2] 프로그램 구현  (0) 2024.05.18
[2-1] 프로그래밍 언어 활용  (0) 2024.05.18
[1-4] 정보시스템 기반 기술 용어  (0) 2024.05.17