
create table emp900
( empno number(10), -- 숫자 10자리 허용
ename varchar2(20), -- 영문자 20자 허용
sal number(10),
hiredate date);
✔️ 테이블명과 컬럼명은 반드시 문자로 시작해야함
1111 scott 3000 2025/03/02
2222 smith 2000 2025/04/01
insert into emp900
values(1111, 'scott', 3000, to_date('2025/03/02', 'RRRR/MM/DD'));
insert into emp900
values(2222, 'smith', 2000, to_date('2025/04/01', 'RRRR/MM/DD'));
select * from emp900;
create table emp902
( empno number(4,0) not null enable,
ename varchar2(10 byte),
job varchar2(9 byte),
mgr number(4,0),
hiredate date,
sal number(7,2), --- 숫자 전체 7자리를 허용하는데 그중 소수점 2자리 허용
comm number(7,2),
deptno number(2,0),
loc varchar2(20 byte)
) ;
insert into emp902
select
* from emp;
create table dept900
( deptno number(10,0),
dname varchar2(14 byte),
loc varchar2(13 byte),
sumsal number(10,0),
maxsal number(10,0),
minsal number(10,0),
cnt number(10,0)
) ;
year,model,price,mileage,color,transmission
2011,SEL,21992,7413,Yellow,AUTO
2011,SEL,20995,10926,Gray,AUTO
2011,SEL,19995,7351,Silver,AUTO
2011,SEL,17809,11613,Gray,AUTO
2012,SE,17500,8367,White,AUTO
2010,SEL,17495,25125,Silver,AUTO
2011,SEL,17000,27393,Blue,AUTO
💡
- 테이블명과 컬럼명 만들 때 예약어 쓸 수 X
- 반드시 문자로 시작해야함
- 30자를 넘어가면 X
create table usedcar
( car_year number(10),
car_model varchar2(10),
price number(10),
mileage number(10),
color varchar2(10),
transmission varchar2(10)
);
💡 테이블 생성 후에는 반드시 sqldeveloper 탐색기창에서 새로고침 해줘야됨
age,sex,bmi,children,smoker,region,expenses
19,female,27.9,0,yes,southwest,16884.92
18,male,33.8,1,no,southeast,1725.55
28,male,33.0,3,no,southeast,4449.46
33,male,22.7,0,no,northwest,21984.47
32,male,28.9,0,no,northwest,3866.86
31,female,25.7,0,no,southeast,3756.62
46,female,33.4,1,no,southeast,8240.59
37,female,27.7,3,no,northwest,7281.51
37,male,29.8,2,no,northeast,6406.41
60,female,25.8,0,no,northwest,28923.14
create table insurance
( age number(10),
sex varchar(10),
bmi number(10,2),
children number(10),
smoker varchar2(10),
region varchar2(20),
expenses number(10,2) );
select * from insurance;
create table insurance2
as
select rownum as num, i.*
from insurance i;
select * from insurance;
select * from insurance2;
drop table insurance;
rename insurance2 to insurance;
select * from insurance;
create table usedcar2
as
select rownum as num, u.*
from usedcar u;
drop table usedcar;
rename usedcar2 to usedcar;
select * from usedcar;
💡 책 p.245
varchar2 의 최대길이 4000 바이트
number 는 최대 38 자리까지 허용
date 는 기원후 9999년 12월 31일까지 입력가능

가변 문자형은 입력되고 남은 공간을 회수
varchar2(가변 문자형)는 입력하고 남은 공간을 오라클이 회수함char(고정 문자형)는 회수하지 않기 때문에 공간낭비가 생길 수 있음create table insurance2
( age number(10),
sex varchar(10),
bmi number(10,2),
children number(10),
smoker varchar2(10),
region varchar2(20),
expenses number(10,2) );
암종,질병코드,환자수,성별,조유병률,생존률
구강및인두,C00-C14,17024,남녀전체,33.8,62.2
식도,C15,7444,남녀전체,14.8,31.7
위,C16,207145,남녀전체,411.4,71.5
대장,C18-C20,173459,남녀전체,344.5,74.8
간,C22,51402,남녀전체,102.1,30.1
담낭 및 기타담도,C23-C24,14778,남녀전체,29.4,28.3
췌장,C25,7032,남녀전체,14,8.8
... 등등
create table korea_cancer
( cancer_type varchar2(100),
d_type varchar2(100),
p_cnt number(10),
gender varchar2(100),
jo_rate number(10,2),
s_rate number(10,2) );
-- 중복 행 제거
create table korea_cancer2
as
select distinct c.*
from korea_cancer c;
select cancer_type, p_cnt, rank() over (order by p_cnt desc nulls last) 순위, c.*
from korea_cancer2 c
where gender='남자' and cancer_type !='모든암';

