CREATE TABLE - 새로운 테이블을 생성하는 DDL명령어



테이블을 생성하기 전에 cmd 창을 켜야합니다. 

sqlplus 를 키거나 다음화면처럼 실행해주세요!



저는 cmd창을 사용하기때문에 sqlplus 를 치고, 제가직접만든 hr 계정에 테이블을 만들기 위해 hr 비밀번호를 입력해주었습니다.


그리고 테이블을 생성해보겠습니다! 테이블을 생성하는 법은

CREATE TABLE 테이블명(컬럼명 컬럼Data Type); 입니다.




1
2
3
4
5
create table a1(
num number,
id varchar2(20),
name varchar2(20)
);
cs


a1 = 테이블명

num, id, name = 컬럼명

number, varchar2(20) = 컬럼 Data Type




DESC 테이블명;  - 테이블 조회





테이블을 생성하고 확인까지 하였습니다. 

이번에는 테이블 안에 Data 를 넣어보겠습니다.




INSERT INTO 테이블명 VALUES('데이터','데이터',..); - 데이터 넣기



1
2
3
4
5
6
insert into a1 values(1,'a1','aa');
insert into a1 values(1,'a2','bb');
insert into a1 values(1,'a3','cc');
insert into a1 values(2,'a4','dd');
insert into a1 values(2,'a5','ee');
insert into a1 values(2,'a6','ff');
cs



[set linesize 값;] 은 화면크기를 설정하는 쿼리문 입니다.

[select * from 테이블명;] 은 테이블 안의 데이터를 모두 나타내는 쿼리문 입니다.


테이블 만들기는 끝!



이제 기존 테이블과 동일한 내용과 구조를 같은 테이블을 AS절을 추가하여 만들어 보겠습니다.



CREATE TABLE 새테이블명 AS SELECT * FROM 기존테이블명;






1
create table a2 as select * from a1;
cs

테이블 a1과 테이블 a2의 데이터가 동일한 것을 볼수있습니다.




굳이 * 을 사용하지 않고 * 대신 원하는 컬렴명을 적으면 원하는 컬럼만 복사하여 테이블을 만들 수 있습니다.


1
create table a3 as select id,name from a1;
cs


또 쿼리문 뒤에 WHERE 조건절을 추가하여 원하는 조건을 제시하면 일부의 행만 복사할 수 있습니다.


1
create table a4 as select * from a1 where num1
cs




WHERE 조건절에 항상 거짓인 조건을 주면 테이블 구조만 복사하는 쿼리문이 됩니다.


1
create table a5 as select * from a1 where 1=0;
cs



보이는 것 처럼 SELECT를 써도 데이터가 없어서 뜨지않지만 테이블 구조는 복사되어 생성되었습니다.













+ Recent posts