728x90
DDL (Data Definition Language)
- 오라클(한정)에서는 이름의 대소문자를 구분 X
- 여기서는 commit, rollback 사용 X
- 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
- (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어.
마우스로 DDL 사용
더보기
1. 테이블 - 오른쪽 마우스 - 편집 클릭
2. 테이블 편집에서 +, x 눌러서 컬럼 추가, 삭제 후
3. 확인을 누르기 전 DDL 확인 - SQL문 확인 가능
C.R.U.D
이름 | 조작 | SQL |
Create | 생성 | INSERT |
Read | 읽기(또는 인출) | SELECT |
Update | 갱신 | UPDATE |
Delete | 삭제(또는 파괴) | DELETE |
Create table
데이터 타입
데이터 타입 | 특징 | 크기 | |
varchar2 (size) | 가변 길이 문자 | 조금 쓰면 알아서 크기 조금 잡아서 씀 | Max 사이즈까지 가능 size 바이트 |
char (size) | 고정 길이 문자 | 무조건 고정 길이 다 씀 | size 바이트 |
number (p, s) | 숫자 | p - 모든 유효숫자 자리수 s - 소수의 자리수 (음수: 소수점기준 왼쪽, 양수: 소수점 이하) |
|
date | 날짜와 시간 값 | ||
clob | 문자 데이터 | 큰 문자 데이터 | 4기가 |
blob | 이진 데이터 | 파일, 동영상 데이터 통째로 집어 넣을 때 사용 |
4기가 |
Alter table
- 테이블 구조 변경
Add - 열 추가
- 열을 추가
- 새로운 열이 마지막 열
Modify - 타입 크기 조정
- 바꿀 타입의 크기만 적으면 됨
- 테이블에 있는 기존의 열을 변경
- 기존의 데이터를 손상되게 크기를 조절 X
- 줄일수는 있으나 쉽지 않고, 크기를 넘어가는 것은 X
Rename column - 열 이름 변경
- 열 이름 변경
Drop column - 열 삭제
- 테이블에서 열 삭제
- 삭제된 열은 복구 불가
- 큰 제목 Drop table은 테이블 삭제임
Drop table
- 테이블의 모든 데이터와 구조 삭제
- 어떤 결정되지 않은 트랜잭션 커밋
- 모든 인덱스 삭제
- 롤백 불가!!!!!!!!!!!!
더보기 - cascade
더보기
실습
-- DDL문 create문
create table dept2 (
dept_no number(2), -- 자리수
dept_name varchar(20), -- 가변문자(20바이트, 영어1byte, 한글2byte),
dept_yn char(1), -- 1byte 고정
dept_date date,
dept_bonus number(10, 3) -- (정수 자리수, 소수 자리수)
);
desc dept2;
insert into dept2 values(99, '영업', 'Y', sysdate, 3.14);
insert into dept2 values(100, '회계', 'Y', sysdate, 14.123); -- dept_no 자리수
commit;
select * from dept2;
----------------------------------------------------------------------------------------
-- alter (테이블 구조 변경)
-- 컬럼 추가
alter table dept2
add (dept_count number(3));
desc dept2;
-- 컬럼명 변경
alter table dept2 rename column dept_count to emp_count;
-- 컬럼 타입 변경 (데이터가 있을 때, 손상되는 크기로 줄일 수 없음)
alter table dept2 modify (emp_count number(5));
-- 컬럼 삭제
alter table dept2 drop column emp_count;
-- 테이블 삭제
drop table dept2;
drop table demployees; -- 제약조건을 삭제 불가 (cascade로 제약조건을 지우면서 삭제는 가능, 실제로 쓰지 X)
Truncate
- DDL 구문으로 롤백 할 수 없음
- 위험하기 때문에 사용되지 X
- 해당 테이블에 사용된 기억 공간을 해제
- truncate 대안으로 delete 문장을 사용하여 행을 삭제
오늘 하루
더보기
기억에 남는 부분
-
-
어려운 부분
-
-
문제 해결 부분
-
-
728x90
'프로그래밍 언어 > SQL-Oracle' 카테고리의 다른 글
[SQL] 시퀀스(Sequence), 인덱스(index) (0) | 2022.11.17 |
---|---|
[SQL] 제약조건, view (0) | 2022.11.16 |
[SQL] DML 데이터조작어(insert, update, delete, merge, ctas), TCL(트랜잭션) (0) | 2022.11.15 |
[SQL] 서브쿼리(단일행, 다중행, 스칼라), 인라인뷰, rownum (0) | 2022.11.11 |
[SQL] 그룹함수 count(~별!), Join (inner,outer,cross,self) (0) | 2022.11.10 |