테이블 만들기

  • create table 테이블 명(
    컬럼명 자료형 제약조건,
    컬럼명 자료형 제약조건
    )

컬럼의 자료형

  • char(size) : 고정길이 문자열 타입
  • varchar2(size) : 가변 길이 문자열 타입
  • number : 최고 40자리까지 저장할 수 있는 숫자 타입
  • char는 고정된 메모리를 할당 받는다.
    varchar2는 가변길이의 메모리를 할당 받는다.
  • date : 날짜
  • long : 가변길이 문자열 타입, 최대 2Gbyte

ex)

-- 다음과 같은 정보를 저장하기 위한 테이블을 만든다.
-- 학생번호, 학생이름, 학생나이, 학생국어점수, 영어점수, 수학점수

create table stu_table(
stu_idx number,
stu_name char(10),
stu_age number,
stu_kor number,
stu_eng number,
stu_math number
);

ex)

create table number_table(
number1 number,
number2 number(3),
number3 number(5, 2)
);

insert into number_table(number1)
values (10000);

select * from number_table;

insert into number_table(number2)
values(100);
-- number2는 3자리까지만 가능하다.

insert into number_table(number3)
values (100.111111);

-- number3은 총5자리를 저장하나 소수점 2자리 까지만 저장한다.

ex)

-- emp테이블을 복제한 emp01테이블을 만드시오

create table emp01
as
select * from emp;

ex)

-- emp테이블에서 사원의 번호, 이름, 급여 정보를 가지고 있는 테이블을 생성하시오

create table emp02
as
select empno, ename, sal
from emp;

ex)

-- 30번 부서에 근무하고 있는 사원들의 사원번호, 이름, 근무부서이름을 가지고 있는 테이블을 생성한다.

create table emp03
as
select a1.empno, a1.ename, a2.dname 
from emp a1, dept a2
where a1.deptno = a2.deptno and a1.deptno = 30;

ex)

-- 각 부서별 급여 총합, 평균 최고액, 최저액, 사원수를 가지고 있는 테이블을 생성하시오

create table emp04
as
select sum(sal) as sum, trunc(avg(sal)) as avg, max(sal) as max,
    min(sal) as min, count(sal) as count
from emp
group by deptno;