-
[산대특] Oracle10g 테이블 생성, 복제, 제거, PK/FK, 제약 조건[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/DBMS 2024. 10. 2. 17:47
1002
테이블
테이블은 열의 집합, 행(가로_줄)과 열(세로_줄)로 데이터가 저장.
행(Row行)은 고유한 레코드들의 집합
열(Column列)은 레코드 내의 항목을 나타남
=>둘이 만나는 곳에 필드(값)
데이터는 테이블의 형태로 관리
테이블_명, 컬럼_명, 데이터 타입, 제약조건 있다.
▪ 테이블 생성은 create table
▪ 테이블에 데이터를 넣을 때, insert into 테이블_명(열_명1, 열_명2, …) values(데이터1, 데이터2, …)
=> 컬럼의 갯수와 입력되는 데이터 수가 일치해야한다.
입력 데이터가 부족하면 ‘ ‘ 나 null으로 값을 입력해서 갯수를 맞춰야 한다.
데이터 타입
데이터에는 다양한 값이 존재, 데이터를 입력할 때에는 데이터 타입을 지정
문자(char), 숫자(number), 날짜(date) 타입, 큰 데이터를 저장시키는 LOB(Large OBject)
문자
고정 길이 문자를 저장하는 CHAR,
가변길이 문자를 저장하는 VARCHAR 와 VARCHAR2(중국어, 일본어, 한글) 가 사용.
CHAR 는 나머지를 공백으로 채워
VARCHAR 는 자동으로 크기가 늘어나면서 입력.
=> 한글 1자 = 영어 2자
숫자
정수는 NUMBER
NUMBER 하면 -10^38~10^38 범위
NUMBER(2) 하면 두 자리 -99~99 범위,
소수는 NUMBER(4, 2) = 전체 4자리에서 소수점이하 2자리로 해서 네 자리 -99.99~99.99 범위
소수점을 갖는 실수는 FLOAT를 사용
=> number로 지정해주는 것이 좋다. 하지만 메모리 낭비가 있을 수 있음.
날짜와 시간
날짜는 DATE 타입인 SYSDATE를 바로 사용
SYSTIMESTAMP는 소수점 이하 6자리까지 반환
따로 테이블 생성 없이 바로 쿼리해서 사용
제약조건(Constraints)
제약조건은 테이블에 추가, 변경, 삭제되는 데이터를 제한하기 위해서 사용
데이터에 제약조건을 거는 이유는 데이터의 무결성(integrity)을 보장하기 위해서 반드시 필요
∎ 기존의 항목에 제약조건을 추가할 때에는
'ADD constraint 제약조건_명(해당_컬럼_명) REFERENCE 타겟_테이블_명(타겟_컬럼_명)'
∎ 처음 테이블 생성할 때부터 제약조건을 줄 수도 있음.
Oracle에서는 KEY가 가지는 요건을 만족하는 데이터만 컬럼에 저장
제약조건은 데이터의 결함을 사전에 방지하고자 할 때 사용
일반적으로 어느 테이블에 걸려있는 제약조건을 보려면
select * from all_constraints
where table_name = 'EMPLOYEES';
employees 테이블에 걸려있는 모든 제약조건을 확인할 수 있다.
PRIMARY KEY와 FOREIGN KEY
PK는 NOT NULL과 UNIQUE 조건을 모두 만족하는 제약.
유일하게 테이블을 식별하게 해주는 컬럼_명으로 지정한다.
하나의 테이블에는 보통 하나의 PK가 있고 여러 개의 FK가 있을 수 있다.
PK과 FK의 관계에 의해 여러 테이블들을 조인(JOIN) 할 수 있는 근거가 된다.
기존에 체크 제약조건이 있는 테이블에 추가적으로 제약조건을 생성해서 넣어줄 수 있다.
제약조건이 있는 테이블 삭제는
drop table emp2 cascade constraints; 해주면 된다.
제약조건으로 'default 제약조건'이 있는데
create table emp3(empno number(4), ename varchar2(20),
sal number(6,2) default 0, gender char(1) default 'M', hiredate date default sysdate); 식으로 하면
sal은 입력이 없으면 0이 입력되고, gender는 입력이 없으면 M(ale), hiredate는 입력이 없으면 오늘날짜로 입력되게 된다.
'[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정 > DBMS' 카테고리의 다른 글