SQL 활용 - 1

김상우·2022년 4월 9일
0
post-thumbnail

DDL(Data Define Language)

DB를 구축하거나 수정할 목적으로 사용하는 언어

  • 유형

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

    • CREATE SCHEMA
      스키마를 정의하는 명령문
    # 표기 형식
    CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
    • CREATE DOMAIN
      도메인을 정의하는 명령문
    # 표기 형식
    CREATE DOMAIN 도메인명 [AS] 데이터_타입 [DEFAULT 기본값] [CONSTRAINT 제약조건명 CHECK (범위값)];
    • 데이터 타입 : SQL에서 지원하는 데이터 타입
    • 기본값 : 데이터를 입력하지 않있을 때 자동으로 입력되는 값
    • CREATE TABLE
      테이블을 정의하는 명령문
    # 표기 형식
    CREATE TABLE 테이블명 (속성명 데이터_타입 [DEFAULT 기본값][NOT NULL]), ... [, PRIMARY KEY(기본기_속성명, ...)] [, UNIQUE(대체키_속성명, ...)] [,FOREIGN KEY(외래키_속성명, ...) REFERENCES 참조테이블(기본키_속성명, ...)] [ON DELETE 옵션] [ON UPDATE 옵션] [, CONSTRAINT 제약조건명][CHECK (조건식)]);
    • PRIMARY KEY : 기본키로 사용할 속성 지원

    • UNIQUE : 대체키로 사용할 속성 지정, 중복된 값 불가

    • FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성 지정

      • ON DELETE 옵션 : 참조 테이블의 튜플이 삭제될 때 테이블에 취해야 할 사항 지정
      • ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경될 때 기본 테이블에 취해야할 사항 지정
    • CONSTRAINT : 제약 조건의 이름 지정

    • CHECK : 속성 값에 대한 제약 조건 지정

    • CREATE VIEW
      뷰(view)를 정의하는 명령문
    # 표기 형식
    CREATE VIEW 뷰명[(속성명[, 속성명, ...])] AS SELECT;
    • CREATE INDEX
      인덱스를 정의하는 명령문
    # 표기 형식
    CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(속성명 [ASC | DESC] [, 속성명[ASC | DESC]]) [CLUSTER];
    • UNIQUE

      • 사용된 경우 : 중복값이 없는 속성으로 인덱스를 생성
      • 생략된 경우 : 중복값을 허용하는 속성으로 인덱스 생성
    • 정렬여부 지정

      • ASC : 오름차순 정렬
      • DESC : 내림차순 정렬
      • 생략된 경우 : 오름차순 정렬
    • CLUSTER : 사용하면 인덱스가 클러스터드 인덱스로 설정

  • ALTER

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

    • 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 : 다른 개체가 제거할 요소를 참조중인 경우 제거 취소

DCL(Data Control Language)

데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어

  • 종류
    • COMMIT : 수행 결과를 실제 물리적 디스크로 저장하고 작업이 완료되었음을 알림
    • ROLLBACK : 조작 작업이 비정삭적으로 종료된 경우 원래 상태로 복구
    • GRANT : 사용자에게 사용 권한 부여
    • REVOKE : 사용자의 사용 권한 취소
  • 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 등
    • WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한 부여
    • GRANT OPTION FOR : 디른 사용자에게 권한을 부여할 수 있는 권한 취소
    • CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소
  • COMMIT
    트랜잭션이 수행한 내용을 데이터베이스에 반영하는 명령
  • ROLLBACK
    변경되었으나 아직 COMMIT되지 않은 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
  • SAVEPOINT
    트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정하는 명령어

DML(Data Manipulation Language)

저장된 데이터를 실질적으로 관리하는데 사용되는 언어

  • 유형
    • SELECT : 튜플 검색
    • INSERT : 새로운 튜플 삽입
    • DELETE : 튜플 삭제
    • UPDATE : 튜플의 내용 갱신
  • INSERT INTO~(삽입문)
# 표기 형식
INSERT INTO 테이블명([속성명1, 속성명2, ...]) VALUES (데이터1, 데이터2, ...)
  • DELETE FROM~(삭제문)
# 표기 형식
DELETE FROM 테이블명 [WHERE 조건];
  • UPDATE~ SET~(갱신문)
# 표기 형식
UPDATE 테이블명 SET 속성명 = 데이터[, 속성명 = 데이터, ...] [WHERE 조건];
profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글

관련 채용 정보