데이터 타입
-----------------------------------------------------------------------------------------------
DDL 사용 예시들 : http://gyh214.tistory.com/56
DDL
: Data Definition Language
데이터의 내용이 아닌 구조와 관련이 있는 언어들이다.
1. 테이블생성(CREATE)
2. 테이블생성(서브쿼리를 이용한)
(WHERE절에 항상 거짓인 조건지정) ==> CTAS방법
3. 테이블 구조변경(칼럼추가)
4. 테이블 구조변경(칼럼삭제)
5. 테이블 구조변경(칼럼데이터타입변경, 디폴트값 설정)
*member 테이블의 passwd컬럼의 디폴트값을 '1234'로 지정하라.
제대로 적용되는지 TEST
---------다른 예시
* 동일 : ALTER TABLE address MODIFY (phone VARCHAR2(50));
수정할 때 크기를 늘이는 것은 괜찮지만 줄일 경우 기존에 들어 있던 데이터보다 작은 값으로 줄이려고 할 경우 에러가 난다.
6. 테이블이름 변경
RENAME old_table TO new_table;
7. 테이블삭제(DROP, 구조까지 모두 삭제)
8. 테이블삭제(TRUNCATE, 구조만 남겨두고 자료들 모조리 삭제)
* TRUNCATE 명령어는 테이블 구조는 그대로 유지하고 데이터와 할당된 공간을 삭제하는 명령문이다.
숫자 |
number(p, s) p : 전체자리 수, s: 소수점 이하 예) number(5,3) : 12.345, number(3) : 218 ... number : 그냥 number만 쓰게 되면 총 38자리 양의정수 |
날짜 |
date |
문자 |
char(n) : n 바이트 예약한 그대로 끝까지 사용하는 것(최대 2000bytes) |
varchar2(n) : n바이트 예약하고, 남는 자리가 있으면 반환(최대 4000bytes) |
|
varchar2의 단점 : |
|
(즉, update시에는 varchar2가 불리합니다.) |
|
(보통 insert를 update보다 훨씬 많이 수행하므로 일반적으로는 varchar2(n)를 많이 사용합니다.) |
-----------------------------------------------------------------------------------------------
DDL 사용 예시들 : http://gyh214.tistory.com/56
DDL
: Data Definition Language
데이터의 내용이 아닌 구조와 관련이 있는 언어들이다.
1. 테이블생성(CREATE)
문법)
CREATE [GLOBAL TEMPORARY] TABLE [schema.] table
(column datatype [DEFAULT expressioin] [column_constraint clause]
[,……]);
2. 테이블생성(서브쿼리를 이용한)
사용예 1) 서브쿼리 절을 이용하여 주소록 테이블의 구조와 데이터를 복사하여 addr_second 테이블을 생성하세요. CREATE TABLE addr_second(id, name, addr, phone, email) AS SELECT * FROM address;
사용예 2) 주소록 테이블에서 id , phone 칼럼만 복사하여 addr_third 테이블을 생성하세요 CREATE TABLE addr_third AS SELECT id, phone FROM address;* TECHNIC : 다른 테이블에서 구조를 복사하고 싶을때
(WHERE절에 항상 거짓인 조건지정) ==> CTAS방법
address테이블의 id, name과 같은 구조를 가진 컬럼을 가진 addr_forth테이블생성 CREATE TABLE addr_forth AS SELECT id, name FROM address WHERE 1=2;
3. 테이블 구조변경(칼럼추가)
문법)
ALTER TABLE table
ADD (column datatype [DEFAULT expression],
[column datatype]….);
사용예 1) 주소록 테이블에 날짜 타입을 가지는 birth 칼럼을 추가하세요. SQL> ALTER TABLE address ADD (birth date); ------------------------------------------------------------------ 사용예 2) 주소록 테이블에 문자 타입을 가지는 comment 칼럼을 추가하여라. 기본값은 ‘No Comment’로 지정하여라. SQL> ALTER TABLE address ADD (comments varchar2(200) DEFAULT ‘No Comment’);
4. 테이블 구조변경(칼럼삭제)
문법)
ALTER TABLE tablename DROP COLUMN columnname;
5. 테이블 구조변경(칼럼데이터타입변경, 디폴트값 설정)
문법)
ALTER TABLE table
ALTER TABLE table
MODIFY (column datatype [ DEFAULT expression]
[, column datatype]….);
SQL> alter table member modify (passwd DEFAULT '1234'); Table altered.
제대로 적용되는지 TEST
1 insert into member (userid, username) 2* values('modify','test') SQL> / 1 row created. SQL> select userid, username, passwd from member 2 where userid='modify'; USERID USERNAME PASSWD ---------- ---------- ---------- modify test 1234*PASSWD 컬럼에 값을 넣어주지 않으면 자동으로 디폴트값이 들어감을 확인
---------다른 예시
* 주소록 테이블에서 phone 칼럼의 데이터 타입의 크기를 50으로
증가시키세요
SQL> ALTER TABLE address MODIFY phone VARCHAR2(50);
* 동일 : ALTER TABLE address MODIFY (phone VARCHAR2(50));
수정할 때 크기를 늘이는 것은 괜찮지만 줄일 경우 기존에 들어 있던 데이터보다 작은 값으로 줄이려고 할 경우 에러가 난다.
6. 테이블이름 변경
RENAME old_table TO new_table;
7. 테이블삭제(DROP, 구조까지 모두 삭제)
문법)
DROP TABLE [schema.]table [cascade constraints];
사용예)
SQL> DROP TABLE addr_third;
8. 테이블삭제(TRUNCATE, 구조만 남겨두고 자료들 모조리 삭제)
문법)
TRUNCATE TABLE [schema.] table
* TRUNCATE 명령어는 테이블 구조는 그대로 유지하고 데이터와 할당된 공간을 삭제하는 명령문이다.
'Oracle > SQL' 카테고리의 다른 글
MERGE 연습 (2) | 2012.01.11 |
---|---|
2012.01.10 SQL 6일차(DELETE, Truncate, Drop들의 차이점, 데이터 딕셔너리) (0) | 2012.01.11 |
2012.01.10 SQL 6일차(ITAS, CTAS, SQL 명령어들의 분류, 그 중 DML), 트렌젝션, 시퀀스 (0) | 2012.01.10 |
2012.01.10 DDL 연습문제(CREATE TABLE, where절을 이용한 구조만 복사, 칼럼추가, 추가시 기본값, 칼럼삭제, 데이터타입변경, 테이블 이름변경 (0) | 2012.01.10 |
2012.01.09 SQL 5일차(연습노트 ; sub query) max,min 안쓰고 최소값, 최대값, 등등 (0) | 2012.01.10 |