오라클 스키마 정의, 자료형, 제약조건
자료형(Data Types)
오라클의 기본 자료형
1) NUMBER
- 숫자를 다루는데 사용하는 데이터 타입
- number(10,2) 소수점 기준을 ㅗ10자리, 소수점 이하 2자리
- 다른 시스템/언어와 호환성을 위해 int/float 허용
2) 문자열
2-1) CHAR(size) 고정길이 문자열
- 예를들어 sample이라는 문자열을 CHAR(10)타입의 컬럼에 넣으면 'sample____'의 형태로 들어간다
- 이런 데이터를 읽어오면 trim()과 같은 공백 문자열 처리를 하고 사용해야 한다
2-2) VARCHAR2(size) 가변길이 문자열
2-3) LONG
- 2GB 이내의 문자열을 처리하는 데이터
2-4) Date
- 날짜와 관련한 데이터를 저장하는 데이터 타입
2-5) CLOB(Character Large Object)
- 4GB 이하의 문자열을 저장하는 데이터 타입
2-6) BLOB(Binary Large Object)
- 4GB 이하의 바이너리 데이터를 저장하는 데이터 타입
스키마 정의
DDL(Data Definition Language)
- 데이터베이스와 테이블 CRUD(Create, Retrieve, Update, Delete)
- 테이블에 대한 정보는 메타데이터로 데이터사전에 저장 관리된다.
데이터베이스 생성
CREATE DATABASE 데이터베이스명;
테이블생성
CREATE TABLE 테이블명 (컬럼명1 데이터타입(크기), 컬럼명2 ...);
예제) 컬럼으로 이름(Name), 주소(Address), 전화번호(Telephone)를 가지는 BusinessCard 테이블을 정의하고 생성하시오. (단, 이름, 주소, 전화번호는 문자열(varchar2) 최대 길이 255자로 지정함)
create table BusinessCard(Name varchar2(255), Address varchar2(255), Telephone varchar2(255));
desc BusinessCard; --생성 후 테이블 스키마 확인
insert into BusinessCard values('Bob','Seocho-dong 123','123-4567'); --레코드 입력
insert into BusinessCard values('Sam','Sindang-dong 456','321-4321');
제약조건(Constraint)
입력 데이터의 제약조건을 걸어 해당되지 않는 데이터는 입력되지 않음
- NOT NULL : 데이터가 NULL값을 받아들이지 않음
- UNIQUE : 테이블에 동일한 값이 입력되어 있을 경우 받아들이지 않음
- PRIMARY KEY : 기본키 제약조건 (UNIQUE, NOT NULL 조건)
- FOREIGN KEY : 외래키 제약조건
- CHECK : 입력 값 체크 (ex) age >= 0 )
- DEFAULT : 컬럼값이 입력되지 않으면 기본값을 입력
예제) BusinessCard 테이블의 이름(Name)이 NOT NULL로 생성하시오
create table BusinessCard(Name varchar(255) not null, Address varchar2(255), Telephone varchar2(255));
예제) BusinessCard 테이블의 Name이 동일한 값이 허용하지 않도로 생성하시오
create table BusinessCard(Name varchar(255) uique, Address varchar2(255), Telephone varchar2(255));
예제) BusinessCard테이블의 Age 값은 0이상이어야 함
create table BusinessCard(Name varchar(255), Address varchar(255), Telephone varchar(255),Age Ing, check(Age>0));
예제) BusinessCard테이블의 주소(Address)값이 저장되지 않으면 'SEOUL'로 입력되도록 하시오.
create businessCard(Name varchar2(255), Address varchar2(255)default 'SEOUL', Telephone varchar2(255));
Insert into BusinessCard(name,telephone) values('sam','234-5678');
시퀀스(Sequence)
- 오라클에만 있는 Object
- 자동번호 생성기
- 기본키로 사용하기 편하도록 숫자를 정해진 규칙에 의해 생성
- 다른 DBMS에서는 AUTO_INCREMENT 속성에 대응하는 개념
CREATE SEQUENCE 시퀀스명
START WITH N
INCREMENT BY N
시퀀스 조회 함수
CURRVAL() : 현재 시퀀스 값 조회
NEXTVAL() : 새로운 시퀀스 값 얻어내는 함수
예제) 시퀀스를 새로 생성고, 현재 시퀀스 값을 표시하시오 .
create table BusinessCard(id int, Name varchar(255), Address Varchar(255), Telephone Varchar(255));
create sequence businesscard_seq;
select businesscard_seq.currval from dual;
'Study > 데이터베이스' 카테고리의 다른 글
오라클 DB 권한(Access Control) 설정 (0) | 2018.04.10 |
---|---|
오라클 스키마 수정, 스키마 삭제 (0) | 2018.04.09 |
오라클 서브쿼리, 집합연산 (0) | 2018.03.29 |
오라클 LIKE 검색, NULL값, GROUP BY/HAVING (0) | 2018.03.20 |
오라클 SELECT INTO / INSERT INTO SELECT (0) | 2018.03.20 |
댓글