새소식

반응형
밥벌이/데이터베이스

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)];
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.