DDL DCL

배쨈·2023년 8월 22일
0

SQL

목록 보기
1/9

SQL

데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어

DDL [CREATE, ALTER, DROP, RENAME, TRUNCATE]

Data Definition Language : 데이터가 저장되는 테이블이나, 개체를 정의

CREATE

CREATE TABLE 테이블명 (
컬럼명1 데이터타입 [DEFAULT, NULL여부],
...
[CONSTRANT ]
);
  • 컬럼에 대한 정보는 () 안에 명시한다.
  • 컬럼명 뒤에 데이터 유형과, 데이터 크기를 명시한다.
  • 마지막은 ; 로 끝난다.

  • 데이터 타입

    문자
    CHAR : 크기 고정, 정의한 메모리 모두 사용 ''
    VARCHAR : 크기 가변, '' 사용
    CLOB :

    숫자
    NUMBER

    날짜
    DATE

  • 옵션
    NULL : 공백과는 다르며, 존재하지 않는 값
    DEFAULT : 데이터의 기본값.

  • 제약조건

    CONSTRAINT (옵션) : 데이터의 무결성을 유지하기 위한 장치
    • PRIMARY KEY : 각각에 ROW에 대한 고유성을 보장.
      한 테이블에 하나씩만 정의
      PK값은 NULL값 불가
    • UNIQUE KEY : 고유키, PK와 같으나, NULL값 허용
    • NOT NULL : 해당 컬럼에 NULL값 불가
    • CHECK : 해당 컬럼에 저장 될 수 있는 값 범위 제한
      CONSTRANT CHK_DEL_YN CHECK (DEL_YN IN ('Y','N'))
      DEL_YN 컬럼에 Y나 N만 입력 될 수 있도록 한다.
      그리고 이 제약 조건을 CHK_DEL_YN라고 한다.

      CREATE를 활용한 테이블 복사

      CREATE 테이블명 AS
      SELECT *
      FROM 복사할 테이블명 ;

ALTER

테이블의 구조를 변경

  • ADD
    새로운 컬럼을 추가한다. 추가된 컬럼은 맨 끝에 위치하며, 별도 위치 설정은 불가
    ALTER TABLE 테이블명 ADD 컬럼명 데이터유형(SIZE);
  • DROP COLUMN
    기존에 있던 컬럼이 필요 없어졌을 때, 복구 불가
    ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
  • MODIFY()
    기존에 있던 컬럼을 변경. 데이터유형, 제약조건, DEFAULT, NOT NULL 변경 가능
    ALTER TABLE 테이블명 MODIFY (
    컬럼명 데이터유형(SIZE) [DEFALUT 값][NOT NULL]);
  • RENAME COLUMN TO
    ALTER TABLE 테이블명 
    RENAME COLUMN 변경할 컬럼명 TO 변경할 이름;
  • ADD CONSTRAINT 제약조건의 추가
    ALTER TABLE 테이블명
    ADD CONSTRAINT 제약조건명 제약조건 (컬럼명) ;

DROP

테이블 삭제
해당 테이블을 참조하는 다른 테이블이 있을 경우, CASCADE CONSTRAINT옵션을 명시

DROP TABLE 테이블명 [CASCADE CONSTRAINT];

TRUNCATE

테이블에 저장되어 있는 데이터를 모두 제거
저장 공간이 재사용된다
ROLLBACK불가

TRUNCATE TABLE 테이블명 ;

DCL [GRANT, REVOKE, USER~]

Data Control Language : 데이터베이스에 접근하고, 객체들을 사용할 수 있도록 권한을 주고, 회수하는 명령

  • 데이터 베이스를 사용할 user를 생성하고, 권한을 부여

USER 관련 명령

  • CREATE USER : CREATE USER 권한이 있어야 수행 가능
    CREATE USER 사용자명 IDENTIFIED BY 패스워드;
  • ALTER USER : 사용자를 변경
    ALTER USER 사용자명 IDENTIFIED BY 패스워드;
  • DROP USER : 사용자 삭제
    DROP USER 사용자명;

GRANT

데이터베이스에 접근할 수 있는 권한을 부여한다.

  • GRANT TO
    GRANT 권한 TO 사용자명;
    GRANT 권한 ON 개체 TO 사용자 [WITH GRANT OPTION];

REBOKE

  • REVOKE FROM
    REVOKE 권한 FROM 사용자명;
    REVOKE 권한 ON 개체 FROM 사용자명;

ROLE 관련 명령

ROLE은 세트로 생각하면 된다! 권한을 모아서 ROLE로 그룹을 지어준다. 롤의 이름은 적당히 짓는다

  • CREATE ROLE GRANT ROLE
    1. 롤 명을 짓는다
    CREATE ROLE 롤명;
    2. 롤에 권한들을 부여한다
    GRANT 권한 TO 롤명;
    3. 롤을 사용자에게 부여한다.
    GRANT 롤명 TO 사용자명;
profile
빵상빵상

0개의 댓글