728x90
반응형
SMALL

테이블 생성

1. 이름 규칙

- 테이블 이름과 열 이름은 문자로 시작

- 영어 대/소문자, 숫자, _ , $(보통 뷰에 사용), # 문자만 포함 가능

- 사용자에 의해 소유된 다른 객체(테이블, 뷰, 인덱스 등) 의 이름과 중복은 불가능

- 오라클 예약어 불가능

- 대소문자 구분X

2. 데이터 타입

문자 데이터 타입 CHAR(n) 고정길이 n. 문자 타입
VARCHAR2(n) 최대 n. 가변길이 문자 타입
숫자 데이터 타입 NUMBER(p, s) 전체 p 자리, 소수점이하 s자리 가지는 숫자 (s는 p에서 제외)
BINARY_FLOAT 4byte 부동 소수점 타입
BINARY_DOUBLE 8byte 부동 소수점 데이터 타입
날짜 데이터 타입 DATE 고정길이 날짜 데이터 타입
TIMESTAMP 날짜, 시간, 밀리초까지 표현
바이너리 데이터
타입
RAW(size) 가변 길이 바이너리 데이터 타입(최대 2000byte)
LONG RAW 가변 길이 바이너리 데이터 타입(최대 4gb)
BLOB 대용량 바이너리 데이터 타입(최대 4gb)
BFILE 대용량 바이너리 데이터를 파일 형태로(최대 4gb)

3. CREATE TABLE

CREATE TABLE[schema.] table_name(
	column_name data_type [DEFAULT expr],
    ...
);

4. 서브쿼리를 사용한 테이블 생성

CREATE TABLE table_name AS SELECT statement;

테이블 구조 변경

1. ALTER TABLE

- ADD / MODIFY 로 열을 변경할 수 있다.

ALTER TABLE table_name
ADD ( column data_type [DEFAULT expr]
	[, column data_type] ...);
    
ALTER TABLE table_name
MODIFY (column data_type [DEFAULT expr]
	[, column data_type] ...);
create table emp_dept50
as select employee_id, first_name, salary*12 as ann_sal, hire_Date
from employees
where department_id=50;

2. 열 추가

- ADD 절을 사용해 열을 추가

- 새로운 열이 마지막 열이 됨

ALTER TABLE emp_dept50
ADD (job VARCHAR2(10));

3. 열 수정

- MODIFY 절을 사용해 열을 ㅅ줭

- 기존의 데이터를 손상되게 크기를 조정할 수는 없음

alter table emp_dept50
modify(first_name varchar2(10));

4. 열 삭제

- ALTER TABLE문을 DROP COLUMN 절과 함께 사용하여 테이블에서 열 삭제 가능

- ORACLE 8i 부터 가능

ALTER TABLE table_name
DROP COLUMN column_name;
alter table emp_dept50
add(job_id varchar2(10));

alter table emp_dept50
drop column job_id;

5. 열 이름 변경

- RENAME COLUMN 절을 사용하여 테이블의 열 이름을 변경할 수 있습니다.

ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;
alter table emp_dept50
rename column job to job_id;

6. SET UNUSED 옵션과 DROP UNUSED 옵션

- SET UNUSED 옵션을 사용하여 하나 이상의 열을 "사용되지 않았음"으로 표시

- DROP UNUSED COLUMNS 옵션을 사용해 UNUSED로 표시된 열을 제거

ALTER TABLE table
SET UNUSED [COLUMN] (column);

ALTER TABLE table
DROP UNUSED COLUMNS;

7. 객체 이름 변경

RENAME old_name TO new_name;
rename emp_dept50 to employees_dept50;
--테이블 이름이 변경되었습니다.

 

테이블 삭제

- 테이블의 모든 데이터와 구조가 삭제됩니다.

- 어떤 결정되지 않은 트랜잭션이 커밋됩니다.

- 모든 인덱스가 삭제됩니다.

- 이 문장은 롤백할 수 없습니다.

DROP TABLE table_name [ CASCADE CONSTRAINTS]
drop table employees_dept50;
--Table EMPLOYEES_DEPT50이(가) 삭제되었습니다.

 

테이블 데이터 비우기(TRUNCATE)

- TRUNCATE TABLE 문장으로 테이블의 모든 행을 삭제합니다.

- 해당 테이블에 사용된 기억공간을 해제합니다.

- TRUNCATE를 사용하여 삭제한 행을 롤백할 수 없습니다.

- TRUNCATE 대안적으로, DELETE 문장을 사용하여 행을 삭제합니다.

TRUNCATE TABLE table_name;
truncate table emp2;
--Table EMP2이(가) 잘렸습니다.

 

 

728x90
반응형
LIST

'IT > SQL' 카테고리의 다른 글

[SQL] 12. 뷰(View)  (0) 2023.05.16
[SQL] 11. 제약조건(Constraints)  (0) 2023.05.15
[SQL] 9. 트랜잭션(Transaction)  (0) 2023.05.15
[SQL] 8. 데이터 조작(DML)  (0) 2023.05.15
[SQL] 7. 서브쿼리(Subquery)  (0) 2023.05.12

+ Recent posts