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
--[ DDL(Data Definition Language) : create, alter, drop, truncate를 이용한 테이블 관리 ]
 
-- desc 테이블명
    --  테이블 구조 보기(describe)
desc Employees;
desc member;
 
create table employees2(
  employee_id number(10) primary key,
  name varchar2(20),
  salary number(7,2) -- 7자리를 할당하고 소수점은 2자리란 의미
);
 
 
create table employees4(
  employee_id number(10), --constraint employees4_pk primary key,
  name varchar2(20),
  salary number(7,2), -- 7자리를 할당하고 소수점은 2자리란 의미
  --foreign key (employee_id) references employees2.employee_id
  constraint employees4_pk primary key(employee_id), -- 각 키 이름을 지정할 수 있는데
  -- 이름을 지정할 때는 constraint 라는 키워드를 붙여준다.
  constraint employees4_fk FOREIGN key(employee_id) REFERENCES employees2(employee_id) --  외래키 지정
);
 
 
-- 기존 테이블 항목을 그대로 만들고 싶을 때
create table employees3
as
select * from employees;
 
desc employees3;
 
-- 테이블 수정 : alter
-------------------------------------------------------------------------------
 
-- alter문)
-- employees2 테이블에 manager_id 항목 추가
alter table employees2 add (
    manager_id varchar2(10)
    );
 
desc employees2;
 
-- manager_id의 varchar2(20)을 varchar2(10)으로 변경해보자.
alter table employees2 modify(
  manager_id varchar2(20)
);
 
-- manager_id "컬럼"을 삭제하자.
alter table employees2 drop column manager_id;
desc employees2;
 
 
-- Primary Key 변경 방법
  -- 1. 먼저 primary key를 drop한다.
  -- 2. alter table 테이블명 add constraint 인덱스명 primary key(기존컬럼,추가컬럼)
alter table employees2 drop primary key; -- primary key 지우기
alter table employees2 add primary key(name); -- primary key 추가하기
desc employees2;
 
-- 현재 name이 기본키로 되어 있다. name뿐만아니라 employee_id + name 두개를 복합키로 지정해 보자.
alter table employees2 drop primary key;
alter table employees2 add primary key(name,employee_id);
----------------------------------------------------------------
 
-- drop 문)
 
-- employees2 테이블 삭제하기
drop table employees2;
----------------------------------------------------------------
 
-- rename문)
 
  --  테이블 이름 변경
-- member 테이블명을 member1으로 변경
rename member to member1;
desc member1;
--------------------------------------------------------------------
 
-- truncate 문)
    --  테이블 내에 있는 모든 레코드를 삭제하는 구문(drop은 테이블 자체를 지우고
        --  truncate는 레코드들만 비우는 것
-- employees3 테이블의 모든 레코드를 지워라.
truncate table employees3;
select * from employees3;
 
 
/* 문자형 데이터 타입
  char : 고정길이 문자형 타입(지정한 사이즈만큼,남아도 고정적으로 용량 차지),
  varchar2 : 가변길이(최대사이즈는 지정하지만, 입력한게 여분이 남으면 입력한대까지만 용량차지),
  nchar : 고정길이 유니코드 문자형 타입,
  nvarchar : 가변길이 유니코드 문자형 타입,
  long(2GB) : 가변길이형 문자 데이터 타입(2GB까지 가능)
*/

+ Recent posts