일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- auto configure
- oracle
- 프로젝트
- 초대장
- 파이썬 소스
- 알고리즘
- 문법 정리
- jsp
- c#
- 오라클 디비
- 학점
- K6
- SQL
- 백준 알고리즘
- hyperledger
- smart cast
- 파이썬
- spring
- JVM
- 운영체제
- dynamic query
- 리눅스
- 오라클
- resilience4j
- 유사코드
- 자바 프로젝트
- gradle
- 티스토리
- MongoDB
- 자바
- Today
- Total
모종닷컴
Oracle 문법 정리 - DDL 본문
◆DDL
1)데이터베이스 5가지 객체
객체 |
설명 |
테이블 |
기본 저장 단위 |
뷰 |
하나 이상의 테이블에 있는 데이터의 논리적 부분 집합 |
시퀀스 |
숫자 값을 생성 |
인덱스 |
일부 쿼리 성능 향상 |
동의어 |
객체에 다른 이름 부여 |
2)테이블 이름 명명 규칙
-문자로 시작 -길이는 1- 30자 -특수문자 _,$,# 사용가능 -동일한 유저가 소유한 다른 객채의 이름과 중복되지 않아야 함. -예약어(sum,table등 등) 사용할 수 없습니다. |
3)데이터 유형
varchar 와 char 무슨 차이일까?
char형은 처음 지정한 크기만큼 저장을 하지만
varchar는 처음 지정한 크기보다 적은 데이터가 들어간다면 그 데이터만큼만 할당을 하는 데이터 유형이다.
4)제약 조건
select * from user_constraints; -- 접속 계정의 제약 조건들 보기 |
not null
create table employees( employee_id number(6), frist_name varchar2(20), job_id varchar(10) CONSTRAINT emp_emp_job_nn not null, CONSTRAINT emp_emp_id_pk PRIMARY KEY (employee_id) ); |
unique
create table employees( employee_id number(6) , last_name varchar2(25) not null, email varchar2(25) constraint emp_email_uk unique, primary key(employee_id) ); |
create table t_friend( user_id varchar2(20), f_id varchar2(20) );
alter table t_friend add constraint c_friend_uk unique(user_id,f_id); |
foreign key
create table t_emp( empno number(4), ename varchar2(30) not null, hp varchar2(11), sal number, deptno number(2), constraint t_emp_no_pk primary key(empno), constraint t_emp_dept_fk foreign key (deptno) references t_dept(deptno) ); |
foreign key의 3가지 추가 제약 조건
1) on delete cascade : 연쇄적으로 삭제 , 상위 테이블의 행이 삭제되면 하위에 연관되어있던 테이블의 종속 행들도 삭제한다.
2) on delete set null : null로 대체 , 상위 테이블의 행이 삭제되면 하위에 연관되어있던 테이블들의 값은 null로 대체한다.
3) default 기본 : 갱신이나 삭제를 허용하지 않음.
check
create table t_friend( user_id varchar2(20), f_id varchar2(20), sal number constraint t_friend_sal_ck check(sal > 1000) ); |
default
create table café( café_num number primary key, café_name varchar2(20) not null, café_cnt number defalut 1 ); |
서브 쿼리를 이용한 테이블 생성(ctas)
CREATE TABLE dept80 AS SELECT employee_id, last_name, salary*12 ANNSAL, hire_date FROM employees WHERE department_id = 80; |
테이블 변경
alter table employees read only;--읽기 전용
alter table employees read write;--읽기 쓰기 둘 다 가능 alter table [테이블명] modify ([컬럼명] [데이터타입] [제약조건]); |
테이블 삭제
drop table dept purge; |
'Programming > 데이터베이스' 카테고리의 다른 글
Oracle 문법 정리 - 스키마 객체 (0) | 2018.01.22 |
---|---|
Oracle 문법 정리 - 시퀀스, 뷰 (0) | 2018.01.09 |
Oracle 문법 정리 - 트랜잭션 (0) | 2018.01.05 |
Oracle 문법 정리 - DML (0) | 2018.01.04 |
Oracle 문법 정리 - 집합 연산자 (0) | 2018.01.03 |