2022. 3. 11. 10:45ㆍSQL
오라클에서 관리할 대상인 데이터들은 저장 객체로 데이터베이스에 저장이 된다.
데이터베이스에 저장된 저장 객체를 오브젝트(Object)라고 부르고 데이터를 저장하기 위한 저장 공간을 세그먼트(Segment)라고 부른다.
⇒ 데이터베이스에 저장된 객체 : Object (테이블)
⇒ 데이터를 저장하기 위한 공간 : Segment
오브젝트들을 생성, 수정, 삭제 등 관리하기 위해 사용하는 언어를 DDL이라 부른다.
DDL 종류
CREATE
테이블과 같은 오브젝트를 생성하는 명령어이다.
ALTER
테이블과 같은 오브젝트 구조를 변경하는 명령어이다.
DROP
테이블과 같은 오브젝트를 삭제하는 명령어이다.
TRUNCATE
테이블과 같은 오브젝트를 전부 삭제하고 사용중인 공간을 반납하는 명령어이다.
# DROP 테이블과는 달리 테이블 자체가 지워지는 것은 아니라 테이블의 구조는 남아 있다.
⇒ 테이블에 있는 모든 행의 데이터를 지워 빈 공간으로 남긴다고 생각하면 되겠다.
CREATE
CREATE TABLE <테이블명> (
<컬럼명> <데이터형> <제약조건>,
<컬럼명> <데이터형> <제약조건>
);
컬럼명, 테이블명 명명 규칙
1. 알파벳 대문자 ⇒ A~Z
2. 알파벳 소문자 ⇒ a~z
3. 숫자 ⇒ 0~9
4. 특수기호 ⇒ _ $ #
5. 공백 불허
6. 반드시 문자로 시작한다.
서브쿼리로 테이블 만들기
⇒ CTAS, CREATE TABLE AS SELECT
CREATE TABLE <테이블명>
AS <서브쿼리>
테이블 생성하는 방법
1. CREATE TABLE 문장을 사용하여 컬럼에 대한 모든 정의를 하고 빈 테이블 생성
2. CREATE TALBE AS SELECT 문장을 사용하여 테이블 구조와 행을 모두 입력
3. CREATE TABLE AS SELECT ~ WHERE FALSE 문장을 사용하여 테이블 구조만 복사
ALTER
새로운 컬럼 추가
ALTER TABLE <테이블명>
ADD (<컬럼명> <데이터형> <제약조건>);
기존 컬럼 자료형, 제약조건 변경
ALTER TABLE <테이블명>
MODIFY(<컬럼명> <데이터형> <제약조건>);
(SQL SERVER : MODIFY 대신 ALTER)
테이블명 변경
ALTER TABLE <테이블명>
RENAME TO <변경 후 테이블명>;
컬럼 삭제
ALTER TABLE <테이블명>
DROP COLUMN <컬럼명>;
컬럼명 변경
ALTER TABLE <테이블명>
RENAME COLUMN <변경 전 컬럼명> TO <변경 후 컬럼명>;
DROP
테이블의 모든 데이터 및 구조를 삭제한다.
# CASCADE 옵션은 해당 테이블과 관계가 있던 참조되는 제약조건에 대해서도 모두 삭제하는 것을 의미
DROP TABLE <테이블명> [CASCADE CONSTRAIN];
TRUNCATE
해당 테이블에 들어있던 모든 행들ㄹ이 제거되고 저장공간을 재사용하도록 해제한다.
TRUNCATE TABLE <테이블명>;
'SQL' 카테고리의 다른 글
| [SQL] DML, Data Manipulation Language (0) | 2022.03.11 |
|---|---|
| 수직 결합 SET OPERATOR (0) | 2022.03.11 |
| 다중행 서브쿼리 MULTI ROW SUBQUERY 연산자 (0) | 2022.03.11 |
| 서브쿼리 (0) | 2022.03.11 |
| 계층형 쿼리 (0) | 2022.03.11 |