테이터베이스 객체
1. 테이블 : 기본저장 단위, 행으로 구성
2. 뷰 : 하나 이상의 테이블에 있는 데이터의 부분집합을 논리적으로 나타냄
3. 시퀀스 : 숫자 값을 생성
4. 인덱스 : 일부 query 성능을 향상
5. 동의어 : 객체에 다른 이름을 부여
이름 지정 규칙
테이블의 이름 및 열 이름의 규칙
1. 문자로 시작
2. 길이 : 1-30자
3. A-Z, a-z, 0-9, _,$,#만 가능
4. 동일한 유저가 소유한 다른 객체의 이름과 중복되지 않아야 한다.
5. Oracle 서버 예약어는 사용할 수 없다.(권장하지 않지만 "" 안에서 사용은 가능..)
다른 유저가 소유한 테이블은 소유자의 이름을 접두어로 사용해야 한다.
CREATE TABLE employees(
employee_id NUMBER(6),
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE NOT NULL,
department_id NUMBER(4),
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id),
CONSTRAINT emp_email_uk UNIQUE(email));
not null -> check
CONSTRAINT emp_salary_min CHECK (salary > 0)
다른 테이블에서 Foreign key로 사용되는 Primary key를 포함한 행은 삭제할 수 없습니다.
11. 뷰생성
CREATE VIEW empvu80
AS SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 80;
테이블처럼 뷰에서도 데이터를 검색할 수 있습니다. 전체 뷰나 특정 행과 열의 내용을 표시할 수 있습니다.
뷰수정
CREATE OR REPLACE VIEW empvu80 (id_number, name, sal, department_id)
AS SELECT employee_id, first_name || ' ' || last_name, salary, department_id
FROM employees
WHERE department_id = 80;
뷰제거
DROP VIEW empvu80;
시퀀스 생성
CREATE SEQUENCE dept_deptid_seq
INCREMENT BY 10
START WITH 120
MAXVALUE 9999
NOCACHE NOCYCLE;
'학부 정리 > DataBase' 카테고리의 다른 글
[DB] Mysql Workbench Result Grid 사라짐 (0) | 2018.11.29 |
---|---|
[DB공부] 8. 집합연산 - 미완성 (0) | 2018.01.07 |
[DataBase-공부] 9. 행 복제, 열 복제를 해보자 (0) | 2018.01.02 |
[DataBase-공부] 6. 함수를 사용해보자 (2) | 2018.01.01 |
[DataBase-공부] 5. where절을 써서 데이터를 제한해 보자 (0) | 2018.01.01 |