※ DCL

       1. DCL이란? - Data Control Language란 의미로 USER를 생성하고 USER에게 데이터를 다룰 수 있는 권한을 부여하거나 회수하는 명령어

 

       2. DCL 종류

           2-1. USER 관련 명령어

                  ① CREATE USER - 사용자를 생성

                   • CREATE USER 사용자명 IDENTIFIED BY 패스워드;

 

                  ② ALTER USER - 사용자를 변경

                   • ALTER USER 사용자명 IDENTIFIED BY 패스워드;

 

                  ③ DROP USER - 사용자를 삭제

                   • DROP USER 사용자명

 

           2-2. 권한 관련 명령어

                  ① GRANT - 사용자에게 권한을 부여

                   • GRANT 권한 TO 사용자명;

 

                  ② REVOKE - 사용자를 변경

                   • REVOKE 권한 FROM 사용자명;

 

            2-3. ROLE 관련 명령어 -ROLE이란 특정 권한들을 하나의 그룹으로 묶는 것과 동일하다.

                  ① CREATE ROLE 롤명 - ROLE을 생성

 

                  ② GRANT 권한 TO USER - ROLE에 권한 부여

 

                  ③ GRANT 롤명 TO 사용자명 - 사용자를 삭제

 

※ DDL

        1. DDL이란? - Data Definition Language란 의미로 데이터를 정의하고 테이블 안에 들어갈 데이터의 유형도 같이 정의한다. 묵시적으로 동시에 COMMIT이 사용된다.

       

        2. 데이터 유형

             ① 문자

                   • CHAR - 크기가 정의된 만큼 고정이고 빈 공간을 문자로 인식하지 않는다. 

                   • VARCHAR - 크기가 정의된 것보다 작을 수 있고 빈 공간을 문자로 인식한다.

                   • CLOB

             ② 숫자 - NUMBER

             ③ 날짜 - DATE

 

         3. DDL 종류

             ① CREATE - 테이블을 생성하는 명령어

                  • CREATE TABLE 테이블명 (컬럼명1 데이터 타입(DEFAULT / NULL / NOT NULL), ...);

                  • CREATE TABLE 테이블명 AS SELECT * FROM 복사할 테이블명 (테이블 복사해서 생성)

 

                  * 테이블 생성 규칙

                      ㉮ 테이블명은 고유해야 하고 테이블의 정체성을 나타낼 수 있어야 한다.

                      ㉯ 한 테이블 내에서 컬럼명은 고유해야 한다.

                      ㉰ 컬럼명 뒤에 데이터 유형과 크기가 명시되어야 한다.

                      ㉱ 테이블명과 컬럼명은 숫자로 시작할 수 없다.

                      ㉲ 컬럼명을 정의할 때 다른 테이블과 통일성이 있어야 한다.

 

                  * 테이블 제약 조건(CONSTRAINT)의 종류 - 테이블에 저장될 데이터의 무결성을 유지하기 위한 것

                      ㉮ PRIMARY KEY(PK) - 테이블에 하나씩만 정의할 수 있으며 PK로 지정된 컬럼에는 NULL값을 입력할 수 없고 UNIQUE 인덱스로 생성된다.

                      ㉯ FOREIGN KEY(FK) - 하나의 테이블이 다른 테이블을 참조하고자 할 때 FK를 정의한다. 

                      ㉰ UNIQUE KEY - PK와 유사하지만 NULL값을 입력할 수 있다.

                      ㉱ NOT NULL - 해당 컬럼에 NULL값을 입력할 수 없다.

                      ㉲ CHECK - 컬럼에 저장될 수 있는 값의 범위를 제한한다.

 

             ② ALTER - 테이블의 구조를 변경할 때 사용한다.

                 ㉮ ADD COLUMN - 새로운 컬럼을 추가할 때 사용되며 추가되는 위치는 맨 끝이며 추가될 위치를 바꿀 수 없다.

                  • ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형;

 

                 ㉯ DROP COLUMN - 기존에 있는 컬럼을 삭제하는 명령어로 한 번 삭제하면 복구할 수 없다.

                  • ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

 

                 ㉰ MODIFY COLUMN - 컬럼을 변경할 때 사용되며 컬럼의 데이터 유형, DEFAULT값, NOT NULL 제약조건도 변경 가능하다. 컬럼의 크기를 줄일 때는 컬럼의 모든 데이터가 줄어든 컬럼의 크기보다 작아야 한다. 컬럼에 저장된 데이터가 없을 때만 변경 가능하고 현재 NULL값이 저장되어 있지 않은 컬럼에만 NOT NULL 제약조건 추가가 가능하다. DEFAULT 변경 시 변경 이후 저장되는 데이터에만 적용된다. 

                  • ALTER TABLE 테이블명 MODIFY (컬럼명1 데이터 유형 [DEFAULT 값][NOT NULL], ...);

 

                 ㉱ RENAME COLUMN - 기존의 컬럼 이름 변경

                  • ALTER TABLE 테이블명 RENAME COLUMN 변경할 컬럼명 TO 변경할 이름;

 

                 ㉲ ADD CONSTRAINT - 제약조건 추가 

                  • ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);

 

                 ㉳ DROP TABLE - 테이블을 삭제할 때 사용하며 만약 다른 테이블이 해당 테이블을 참조하고 있을 경우 CASCADE CONSTRAINT를 사용해야만 삭제가 된다

                  • DROP TABLE 테이블명 [CASCADE CONSTRAINT];

 

                 ㉴ TRUNCATE TABLE - 테이블의 모든 데이터를 제거하고 ROLLBACK이 불가능하다. 사용 공간이 재사용되도록 초기화된다. 테이블을 삭제하지는 않는다.

                  • TRUNCATE TABLE 테이블명;

             

 

※ TCL

      1. TCL이란? - 트랜잭션을 제어하는 명령어로 트랜잭션은 더 이상 쪼개질 수 없고 한 그룹으로 묶이는 논리적인 업무 단위를 뜻한다.

 

      2. 트랜잭션의 특징

          ① 원자성 - 트랜잭션으로 묶인 일련의 동작들은 모두 성공해야 하거나 실패해야 한다.

          ② 일관성 - 트랜잭션이 완료된 후에도 데이터베이스가 가진 데이터에 일관성이 있어야 한다.

          ③ 고립성 - 한 번에 하나의 트랜잭션만 수행 가능하다. 다른 트랜잭션이 수행 중이면 그 트랜잭션이 끝나고 나서 수행이 가능하다.

          ④ 지속성 - 트랜잭션이 성공적으로 수행이 되면 모든 트랜잭션이 로그에 남겨진 뒤 COMMIT 되어야 한다.

 

       3. TCL 종류

          ① COMMIT - 데이터 입력, 삭제, 수정 후 변경된 내용을 최종적으로 데이터 파일에 저장하는 명령어. COMMIT 하지 않으면 휘발성인 메모리에만 저장하기 때문에 변경된 사항이 사라질 수 있고 다른 사용자가 변경된 데이터를 조회할 수 없다. 

          ② ROLLBACK - 변경된 사항을 취소하는 명령어로 ROLLBACK하면 변경하기 이전 데이터로 복구된다.

          ③ SAVEPOINT - ROLLBACK 뒤에 특정 SAVEPOINT를 지정하면 그 지점까지만 이전 데이터로 복구한다.

 

 

※ DML

        1. DML이란? - Data Manipulation Language란 의미로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회하는 명령어이다. DML 명령서 사용 후 별도의 COMMIT 명령어를 실행시켜야만 데이터가 반영되고 ROLLBACK이 가능하다.

        2. DML 종류

            INSERT - 테이블에 데이터를 입력하는 명령어. 입력할 데이터가 컬럼의 데이터 타입과 맞지 않을 경우 묵시적으로 형변환을 한 후 입력한다. 만약 형변환을 해도 데이터 타입에 안 맞을 경우 에러가 발생한다. 

                • INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES (데이터1, 데이터2, ...)

            ② UPDATE - WHERE절을 사용해 이미 저장된 특정 데이터를 수정하고 싶을 때 사용하는 명령어로 수정하고 싶은 컬럼이 많으면 SET절에 ,(콤마)로 컬럼을 이어서 사용한다(SET 컬럼명1 = 데이터, 컬럼명2 = 데이터, ...).  

            ③ DELETE - WHERE절을 사용해 이미 저장된 특정 데이터를 삭제할 때 사용하는 명령어. 테이블 전체 데이터를 삭제할 때 TRUNCATE 명령어가 시스템 부하 측면에서 유리하지만 ROLLBACK은 불가능하다(DELETE는 COMMIT 전 ROLLBACK 가능)

            ④ MERGE - 테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터의 변경 작업을 한 번에 할 수 있는 명령어

             • MERGE 

                      INTO타깃 테이블명

                 USING 비교 테이블명

                 ON 조건

                 WHEN MATCHED THEN

                     UPDATE SET 컬럼명1 = 새로운 데이터, 컬럼명2 = 새로운 데이터, ...

                 WHEN NOT MATCHED THEN

                     INSERT (컬럼명1, 컬럼명2, ...)

                     VALUES (데이터1, 데이터2, ...);

 

 

+ Recent posts