DB(SQL)

SQL문의 종류 - DDL, DML, DCL

_주야 2012. 7. 27. 11:30

 

* DDL (Data Definition Language)

데이터 구조를 정의! 객체의 생성, 변경, 버리기, 삭제 명령어


 1) Create (생성)

CREATE TABLE <table name> (
        <attribute name 1> <data type 1>,
        ...
        <attribute name n> <data type n>);

2) Alter (변경)

ALTER TABLE <table name>
        ADD CONSTRAINT <constraint name> PRIMARY KEY (<attribute list>);

ALTER TABLE <table name>
        ADD CONSTRAINT <constraint name> FOREIGN KEY (<attribute list>)
        REFERENCES <parent table name> (<attribute list>);

3) Drop (삭제)

DROP TABLE <table name>;

* DDL 명령은 autocommit 이라 한번 수행하면 되돌릴 수 없다.

 


* DML(Data Manipulation Language)

레코드 제어 명령어


1) Select(선택)

SELECT <함수 또는 필드명> FROM <Table명> WHERE <조건문> [Order by, Group by]

2) Insert(삽입) 

        INSERT INTO <table name>
        VALUES (<value 1>, ... <value n>);

3) Update(수정)

        UPDATE <table name>
        SET <attribute> = <expression>
        WHERE <condition>;
4) Delete(삭제)

        DELETE FROM <table name>
        WHERE <condition>;

* DML 명령은 Commit 수행을 번복하고 싶다면, RollBack 가능하다. 

 

 

* DCL (Data Control Language)

객체 권한 부여등의 제어어


1) Grant (권한주기) 

SQL> conn /as sysdba
연결되었습니다.

SQL> create user test identified by test;

사용자가 생성되었습니다. 

SQL> grant create session to test;

권한이 부여되었습니다.

SQL> grant resource to test;

권한이 부여되었습니다.

SQL> grant connect to test;

권한이 부여되었습니다.

       SQL> conn test/test

연결되었습니다.
SQL> show user
USER은 "TEST"입니다. 

SQL> select grantee,privilege
  2  from dba_sys_privs
  3  where grantee='CONNECT';

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
CONNECT                        CREATE SESSION

SQL> select grantee,privilege
  2  from dba_sys_privs
  3  where grantee='RESOURCE';

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
RESOURCE                       CREATE TRIGGER
RESOURCE                       CREATE SEQUENCE
RESOURCE                       CREATE TYPE
RESOURCE                       CREATE PROCEDURE
RESOURCE                       CREATE CLUSTER
RESOURCE                       CREATE OPERATOR
RESOURCE                       CREATE INDEXTYPE
RESOURCE                       CREATE TABLE

8 개의 행이 선택되었습니다.

2) Revoke(권한삭제) 

 SQL> revoke create session from test;

권한이 취소되었습니다.


'DB(SQL)' 카테고리의 다른 글

[MySQL] MySQL 접속  (0) 2013.07.08
조인(Join)  (0) 2012.07.27
사용자 생성, 권한부여, 삭제  (0) 2012.07.27
테이터 입력, 수정, 삭제  (0) 2012.07.27
테이블 생성과 삭제  (0) 2012.07.27