사용자 생성
- 오라클데이터베이스를 사용할 user 생성 및 권한 부여
- 생성
CREATE USER 유저명 IDENTIFIED BY 암호;
CREATE USER JY92 IDENTIFIED BY java;
GRANT 권한명1[,권한명2,...] TO 유저명;
GRANT CONNECT, RESOURCE, DBA TO JY92;
테이블 생성
- 데이터 저장을 위한 기본 구조
- 행(ROW)과 열(COLUMN)으로 구성
- 생성 : CREATE TABLE
삭제 : DROP TABLE
1) 테이블 생성 명령
CREATE TABLE 테이블명(
컬럼명1 데이터타입[(크기)] [NOT NULL] [DEFAULT 값] [,]
:
컬럼명n 데이터타입[(크기)] [NOT NULL] [DEFAULT 값] [,]
[CONSTRAINT 기본키설정명 PRIMARY KEY(컬럼명[,컬럼명,...]) [,]
[CONSTRAINT 외래키설정명1 FOREIGN KEY(컬럼명)
REFERENCES 테이블명(컬럼명)[,]
:
[CONSTRAINT 외래키설정명1 FOREIGN KEY(컬럼명)
REFERENCES 테이블명(컬럼명)]);
- 테이블명 : 생성하려는 테이블명
- 컬럼명1~ 컬럼명n : 테이블에 존재하는 컬럼이름
- 데이터타입 : CHAR, VARCHAR2, NUMBER, DATE, BLOB등 사용
- DERAULT 값 : 사용자가 데이터 입력시 자료를 정의하지 않았을 때
자동으로 정의되는 값
- 기본키설정명 : 기본키설정상태에 부여된 이름으로 절대 중복사용해서는 안됨
- 외래키설정명 : 외래키설정상태에 부여된 이름으로 절대 중복사용해서는 안됨
- REFERENCES 테이블명 : 부모테이블명
사용예) 한국건설의 데이터 모델을 테이터 베이스로 구현하시오.
- 사원테이블
CREATE TABLE EMP(
EMP_ID CHAR(3),
EMP_NAME VARCHAR2(30),
TEL_NO VARCHAR2(20),
JOB_TITLE VARCHAR2(30),
EEPT_NAME VARCHAR2(50),
CONSTRAINT PK_EMP PRIMARY KEY (EMP_ID));
- 사업장
CREATE TABLE CONSTRUCTIN_SITE(
CONST_ID NUMBER(4),
CONST_NAME VARCHAR2(100),
ADDRESS VARCHAR2(500),
REMARKS VARCHAR2(20),
CONSTRAINT PK_CONST_SITE PRIMARY KEY (CONST_ID));
- 사업장자재
CREATE TABLE CONST_MATERIALS(
MAT_ID VARCHAR2(5),
MAT_NAME VARCHAR2(50),
QTY NUMBER(4),
COST NUMBER(9),
BUY_DATE DATE,
CONST_ID NUMBER(4),
CONSTRAINT PK_CONST_MATERIALS PRIMARY KEY (MAT_ID),
CONSTRAINT FK_CMATERIALS_CSITE FOREIGN KEY (CONST_ID)
REFERENCES CONSTRUCTIN_SITE(CONST_ID));
- 근무
CREATE TABLE work(
CONST_ID NUMBER(4),
EMP_ID CHAR(3),
START_DAY DATE,
CONSTRAINT PK_WORK PRIMARY KEY(CONST_ID,EMP_ID),
CONSTRAINT FK_CONST_SITE_WORK FOREIGN KEY (CONST_ID)
REFERENCES CONSTRUCTIN_SITE(CONST_ID),
CONSTRAINT FK_EMP_WORK FOREIGN KEY (EMP_ID)
REFERENCES EMP(EMP_ID));
2) 테이블 삭제 명령
- DROP TABLE 명령 사용
- 관계로 연결되어 있는 경우 자식테이블 부터 삭제
- 관계가 맺어져있는 테이블은 부모테이블 삭제 불가 자식테이블부터 삭제해야 부모삭제가능
사용예) 테이블 EMPLOYEES와 DEPARTMENTS를 삭제하시오.
-- DROP TABLE DEPARTMENTS;
-- 오류 보고
-- ORA-02449: unique/primary keys in table referenced by foreign keys
-- 02449. 00000 - "unique/primary keys in table referenced by foreign keys"
-- 참조무결성으로 삭제 불가
DROP TABLE EMPLOYEES;
DROP TABLE DEPARTMENTS;
-- 지우면 완전 그냥 날라가는거 롤백 불가 서로의 관계도 지워졌어
-- EMPLOYEES에서 관계 설정이니까 끊었잖아 그래서 DEPARTMENTS 도 지워짐