본문 바로가기
2019/ORACLE

SQL DDL 테이블 생성 / 변경 / 삭제

by SOLYI 2019. 11. 20.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
--테이블 생성
create table emp02 (
    empno number(3),
    ename varchar2(5),
    sal number(3,2)
);
 
--데이터 추가
insert into emp02 values(999'abcde'1);
insert into emp02 values(-999'a'1);
 
--insert into emp02 values(1, 'abcdefg', 1);
--insert into emp02 values(1, '김하나', 1);
--//타입이 맞지않으면 값 추가 불가
--insert into emp02 values(1, 'hong', 10.9);
--//(3,2)였으므로 소수점 2자리+정수1자리까지만 가능
 
insert into emp02 values(1'hong'1.91232);
--//알아서 둘째짜리까지 짤려서 삽입된다.
 
 
create table emp01(
    deptno number(2),
    dname varchar2(14),
    loc varchar2(13)
);
 
--table 복사하는 방법
create table temp01 
as 
    select * 
    from emp;
    
--구조만 복사
create table temp02 
as 
    select empno, ename, sal
    from emp
    where 1=0;
    
--구조의 자료들의 컬럼명들을 변경
--& 값은 가져오고 싶지 않을 때
create table temp03(hakno, name, salary)
as
    select empno, ename, sal
    from emp
    where 1=0;
 
create table emp04     
as 
    select empno, ename, sal
    from emp;
    
create table member(
    member_id number(3),
    name varchar2(20)
);
 
desc member;
 
--테이블 구조 변경 (추가)
alter table member
    add age number(3);
desc member;
 
--테이블 구조 변경 (추가)
alter table member
    add addr varchar2(10);
desc member;
 
--추가한 컬럼의 값 변경 (크게)
alter table member
    modify addr varchar2(100);
desc member;
 
--추가한 컬럼의 값 변경 (작게)
alter table member
    modify addr varchar2(5);
desc member;
 
--값 입력
insert into member values(1'hong'10'seoul');
select * from member;
 
--값 수정
alter table member
    modify addr varchar2(20);
    
--데이터가 이미 입력되어있으면, 더 작은 값으로 변경 할 수 없다.
alter table member
    modify addr varchar2(5);
    
--컬럼명 변경
alter table member
    rename column addr to juso;
    
--컬럼 삭제
alter table member
    drop column juso;
desc member;
 
--테이블 생성
create table emp01(
    empno number(4),
    ename varchar(20),
    sal number(72)
);
 
--테이블 구조 확인
desc emp01;
 
--컬럼 추가
alter table emp01
    add job varchar2(9);
desc emp01;   
 
--컬럼 타입 수정
alter table emp01
    modify job varchar2(30);
 
--컬럼삭제
alter table emp01
    drop column job;
 
--테이블 삭제
drop table emp01;
 
--현재 아이디? 에 들어있는 모든 table 확인
select * from tab;
 
--bin파일들 확인
desc recyclebin;
 
--휴지통 확인
select object_name, original_name, type, droptime
from recyclebin;
 
--휴지통 버리기
purge recyclebin; 
select * from tab;
 
--테이블삭제
drop table a1;
drop table a2;
desc tab;
 
--휴지통에서 삭제
purge table a1;
 
--a1은 삭제되고, a2는 남아있는것을 알수있다.
select object_name, original_name, type, droptime
from recyclebin;
 
--삭제전으로 복구시켜랏
flashback table a2 to before drop;
 
select * from tab;
 
--한번에 휴지통에 넣고, 삭제하기
drop table a2 purge;
 
drop table book;
drop table emp02;
drop table emp03;
drop table emp04;
select * from tab;
 
--보너스 dept emp salgrade 빼고 삭제해봐!
drop table t1;
drop table temp01 purge;
drop table temp02 purge;
drop table dept01 purge;
drop table dept02 purge;
drop table tt purge;
 
create table t1
as
    select * from emp;
    
--자료확인 후 데이터 삭제    
select * from t1;    
delete from t1;
--롤백 : delete로 삭제하는것들은 롤백 가능
rollback;
 
--잘라내기  (잘라내면 rollback이 불가능하다)
truncate table t1;
rollback;
select * from t1;    
 
cs
반응형

'2019 > ORACLE' 카테고리의 다른 글

SQL 제약조건(추후수정)  (0) 2019.11.26
SQL DDL (추후수정)  (0) 2019.11.26
SQL table 생성을 위한 데이터형의 종류  (0) 2019.11.20
SQL 서브쿼리  (0) 2019.11.20
SQL 문제 및 문제풀이 (~JOIN)  (2) 2019.11.19