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 |