오브젝트 관련 DDL
 - CREATE : 데이터베이스 내의 모든 객체를 생성할 때 사용한다.
 - ALTER : 이미 생성된 객체의 구조를 변경할 때 사용한다.
 - DROP : 생성되어 있는 객체를 삭제할 때 사용한다.
 - RENAME : 이미 생성한 객체의 이름을 변경할 때 사용한다.
 - COMMENT : 객체 이름, 컬럼에 대한 설명을 데이터베이스 내에 저장한다.
 - TRUNCATE : 테이블에 저장되어 있는 모든 행을 삭제할 때 사용한다. 

 


 테이블
 - 기본적인 데이터 저장 단위
 - 사용자의 접근 가능한 모든 데이터를 보유한다.
 - 행(ROW)와 컬럼(COLUMN)으로 구성된다.

 

 

 제약 조건(CONSTRAINT)
 - 사용자가 원하는 조건의 데이터만 유지하기 위해, 데이터의 무결성을 유지하기 위해 테이블의 특정 컬럼에 설정하는 제약이다.
 - NOT NULL : 컬럼이 NULL값을 포함하지 못하도록 지정한다.
 - UNIQUE : 컬럼 값이 테이블 전체에서 유일한 값이어야 한다.
 - PRIMARY KEY : 테이블의 각 행을 고유하게 식별한다. NOT NULL + UNIQUE
 - FOREIGH KEY : 입력되어야 할 값이 다른 테이블의 컬럼 값을 참조해야 한다.
 - CHECK : 해당 조건을 만족하는 값으로만 입력을 제한한다.

 

 

 CREATE TABLE AS SELECT
 - SELECT문 수행결과를 별도의 테이블로 저장할 수 있다.
 - 무결성 제약 조건은 새로운 테이블에 전달되지 않으며 열 데이터 유형의 정의만 전달된다.

 - ex)

1
2
3
4
5
CREATE TABLE newemp
AS
SELECT empno no, ename name, sal * 2 salary
FROM emp
WHERE sal > 2000;
 

 

 

 테이블 변경
 - 업무적인 요구 사항이나 시스템 운영상 테이블을 사용하는 도중에 변경해야 할 일들이 발생할 수 있다.
 - 컬럼을 추가/삭제하거나 제약 조건을 추가/삭제하는 작업을 수행할 수 있다.

 
1
2
3
4
5
6
7
ALTER TABLE 테이블
    [ADD 컬럼명 데이터타입]
    [DROP COLUMN 컬럼명]
    [MODIFY 컬럼명 데이터타입]
    [MODIFY 컬럼명 [NULL | NOT NULL]
    [ADD PRIMARY KEY(컬럼명)]
    [[ADD | DROP] 제약조건이름]
 

 

 

 TRUNCATE TABLE
 - 테이블에서 모든 행을 제거한다.
 - 해당 테이블이 사용하는 저장 공간을 해제한다.
 - TRUNCATE 명령을 사용한 행 제거 작업은 롤백 할 수 없다.
 - DELETE 문으로 제거하는 것보다 빠르다.

 

 

 DROP TABLE
 - 테이블의 모든 데이터 및 구조를 삭제한다.
 - 보류중인 트랜잭션을 모두 커밋(Commit)한다.
 - 인덱스를 모두 삭제한다.
 - DROP TABLE 문은 롤백 할 수 없다.

 

 

 뷰(View)
 - 실제 데이터를 가지고 있지 않다.
 - 단지 뷰 정의만을 가지고 있다.
 - 질의에서 뷰가 사용되면 뷰 정의를 참조해서 DBMS 내부적으로 질의를 재작성하여 질의를 수행한다.
 - 뷰는 실제 데이터를 가지고 있지 않지만 테이블이 수행하는 역할을 수행하기 때문에 가상 테이블이라고도 한다.
 - 뷰를 통해 테이블의 데이터를 보거나 변경이 가능하다.

 

 뷰의 용도
 - 테이블의 일부 컬럼 또는 행으로의 접근 제한한다.
 - 데이터 복잡성 은닉
 - 사용자에게 편의성을 제공한다.
 - 복잡한 쿼리를 데이터베이스에 저장한다.

 - ex)

1
2
3
4
CREATE VIEW emp_view AS
    SELECT empno, ename, deptno
    FROM demp
    WHERE deptno = 10;
 

 

 

 

 인덱스
 - 테이블 내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조이다.
 - 하나 혹은 다수의 컬럼에 인덱스 생성이 가능하다.
 - 쿼리의 수행속도는 향상되지만 DML의 수행속도는 저하된다.
 - 테이블에 PK 또는 UNIQUE 제약조건을 정의하면 고유 인덱스가 자동으로 생성된다.

 인덱스 생성이 좋은 컬럼
 - WHERE 절이나 JOIN 조건 안에서 자주 사용되는 컬럼
 - NULL 값이 많이 포함되어 있는 컬럼

 

 

 

 오늘의 한 줄 : 강의가 끝났다. SQL에 자신감이 붙었다!


 

 

 

 

 

 출처 : SK 동반성장 아카데미, 비전공자를 위한 SQL 입문, 「오브젝트 이해」

+ Recent posts