오브젝트 관련 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 입문, 「오브젝트 이해」
'공부 > SQL' 카테고리의 다른 글
[SQL] INSERT ˙ UPDATE ˙ DELETE 구문 사용 (0) | 2019.12.05 |
---|---|
[SQL] 인라인뷰와 스칼라 서브쿼리 (0) | 2019.12.05 |
[SQL] 서브 쿼리 (0) | 2019.12.04 |
[SQL] 조인 문장 및 집합 연산자 (0) | 2019.12.04 |
[SQL] 조인 처리과정 이해 및 기본 조인 문장 (0) | 2019.12.03 |