오라클 DB 설치하면 C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib 이 경로에 ojdbc.jar가 있을 것이다.

필자는 현재 ojdbc6을 사용하고 있다.

 

이를 통해 자바와 연동을 하는 것이다.

 

연동하기 위해 먼저 이클립스에서 Project Explorer에 있는 프로젝트를 우클릭하고 아래에 Properties를 클릭한다

그러면 아래와 같이 창이 뜰것이다.

 

Java Build Path에서 Libraries탭으로 가면 우측에 Add External JARs... 버튼을 클릭한다 (현재 필자는 ojdbc6.jar가 들어가 있다.)

 

그리고 위에서 말한 경로로 들어가 해당 jar를 선택하고 Apply and Close 버튼을 누르면 해당 프로젝트는 오라클과 연동이 가능한 상태가 된다.

 

연동이 잘 되어있는지 확인하기 위해 해당 프로젝트의 Referenced Libraries를 확인한다.  Referenced Libraries 아래에 해당 jar 가 있으면 연동이 되어있는 상태이다. 

 

반응형

 

 

 

무결성 제약 조건

                         

NOT NULL

NULL을 허용하지 않는다.

UNIQUE

중복된 값을 허용하지 않는다. 항상 유일한 값을 갖도록 한다.

PRIMARY KEY

NULL을 허용하지 않고 중복된 값을 허용하지 않는다.

NOT NULL 조건과 UNIQUE 조건을 결합한 형태이다.

FOREIGN KEY

참조되는 테이블의 칼럼의 값이 존재하면 허용한다.

CHECK

저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만을 허용한다.

 

FOREIGN KEY

CREATE TABLE EMP03( 
EMPNO NUMBER(4),
ENAME VARCHAR2(10) CONSTRAINT EMP03_ENAME_NN NOT NULL, 
JOB VARCHAR2(9),
DEPTNO NUMBER(4),
CONSTRAINT EMP03_EMPNO_PK PRIMARY KEY(EMPNO),
CONSTRAINT EMP03_JOB_UK UNIQUE(JOB),
CONSTRAINT EMP03_DEPTNO_FK FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO)
); 

참조하기 위해서는 상위 테이블의 해당 컬림이 기본키로 지정되어 있어야 하위 테이블에서 외래키로 참조할 수 있음 

 

CHECK 제약조건 

CREATE TABLE EMP06( 
EMPNO NUMBER(4) PRIMARY KEY,
ENAME VARCHAR2(10) NOT NULL, 
GENDER VARCHAR2(1) CHECK (GENDER IN('M', 'F'))
); 

 

컬럼레벨 방식으로 제약조건 지정하기

CREATE TABLE EMP05( 
EMPNO NUMBER(4) CONSTRAINT EMP05_EMPNO_PK PRIMARY KEY,
ENAME VARCHAR2(10) CONSTRAINT EMP05_ENAME_NN NOT NULL, 
JOB VARCHAR2(9) CONSTRAINT EMP05_JOB_UK UNIQUE,
DEPTNO NUMBER(4) CONSTRAINT EMP05_DEPTNO_FK REFERENCES DEPT(DEPTNO)
); 

 

테이블 레벨 방식으로 제약조건 지정하기

(PRIMARY KEY 같은 경우 중복으로 지정할 수 있는데 이렇게 중복으로 정의하려면 테이블 레벨 방식으로 지정해야한다)

 

▶복합키 지정

CREATE TABLE MEMBER01( 
NAME VARCHAR2(10),
ADDRESS VARCHAR2(30),
HPHONE VARCHAR2(16),
CONSTRAINT MEMBER01_COMBO_PK PRIMARY KEY(NAME, HPHONE)
); 

▶ 컬럼 레벨과 테이블 레벨 방식 둘다 사용하여 제약조건 지정

CREATE TABLE EMP03( 
EMPNO NUMBER(4),
ENAME VARCHAR2(10) CONSTRAINT EMP03_ENAME_NN NOT NULL, 
JOB VARCHAR2(9),
DEPTNO NUMBER(4),
CONSTRAINT EMP03_EMPNO_PK PRIMARY KEY(EMPNO),
CONSTRAINT EMP03_JOB_UK UNIQUE(JOB),
CONSTRAINT EMP03_DEPTNO_FK FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO)
); 

NOT NULL 은 컬럼레벨만 가능한 것 같음..

 

제약조건 추가하는 방법

ALTER TABLE DEPT03
ADD CONSTRAINT DEPT03_DEPTNO_PK PRIMARY KEY (DEPTNO);
ALTER TABLE EMP01
ADD CONSTRAINT EMP01_DEPTNO_FK FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO);

 

제약조건 제거하는 방법

ALTER TABLE EMP05
DROP CONSTRAINT EMP05_EMPNO_PK;

 

제약조건 확인하기

SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION
FROM USER_CONSTRAINTS
WHERE TABLE_NAME='EMP03';


CONSTRAINT_NAME                                              CO
------------------------------------------------------------ --
TABLE_NAME
------------------------------------------------------------
SEARCH_CONDITION
--------------------------------------------------------------------------------
EMP03_ENAME_NN                                               C
EMP03
"ENAME" IS NOT NULL

EMP03_EMPNO_PK                                               P
EMP03


CONSTRAINT_NAME                                              CO
------------------------------------------------------------ --
TABLE_NAME
------------------------------------------------------------
SEARCH_CONDITION
--------------------------------------------------------------------------------

EMP03_JOB_UK                                                 U
EMP03


EMP03_DEPTNO_FK                                              R
EMP03

CONSTRAINT_NAME                                              CO
------------------------------------------------------------ --
TABLE_NAME
------------------------------------------------------------
SEARCH_CONDITION
--------------------------------------------------------------------------------

C -> NOT NULL이나 CHECK 제약이 걸려있음 (DESC 테이블명으로 구조파악 하면 NULL 여부가 나오므로 구분 가능 )

P -> PRIMARY KEY

U -> UNIQUE

R -> REFERENCES

(SELECT 문에 R_CONSTRAINT_NAME 를 추가하면 참조관계 확인 가능)

 

CASCADE

DROP TABLE DEPT01 CASCADE CONSTRAINTS;

CASCADE를 이용해서 참조(REFERENCES)받는(상위 테이블) 테이블이어도 제거 가능

(하위테이블은 DROP으로 바로 제거 가능)

 

 

반응형

INSERT - 데이터 삽입

INSERT INTO DEPT01 (DEPTNO, DNAME, LOC)
VALUES(10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT01
VALUES (40, 'OPERATIONS', NULL);

명령에 컬럼을 생략하고 데이터를 삽입하려면 해당 테이블의 구조 즉, 컬럼의 순서에 따라 정확한 VALUES 값을 입력해야함

(컬럼명을 생략하는 것이 좋은 습관이 아니므로 생략하지 않도록 하자)

 

 

emp테이블의 스키마를 복사한 emp01 테이블을 생성 후 다음과 같이 데이터를 저장

 

create table emp01
as select * from emp where 0 = 1;

insert into emp01 values (7369,'SMITH','CLEARK' ,7836,'80/12/17', 800, null,20);
insert into emp01 values (7499,'ALLEN','CLEARK' ,7836,'80/12/17', 1600, 300,20);
insert into emp01 values (7839,'KING','PRESIDENT' ,NULL,NULL,5000,NULL,NULL);

 

부서테이블의 부서번호와 부서이름을 입력하고 나머지는 NULL을 입력

INSERT INTO department( deptno, dname)
VALUES (300,'lifetech'); 

 

교수 테이블에서 입사일을 2005년 1월 1일로 입력하여라.

'YY/MM/DD'형식입력 :

INSERT INTO professor(profno,name,position, hiredate,deptno)
VALUES(9920,'choi','assist','05/01/01',102);

'YYYY-MM-DD' 형식 입력 :

INSERT INTO professor(profno,name,position, hiredate,deptno)
VALUES(9920,'choi','assist', TO_DATE('2005/01/01','YYYY/MM/DD'), 102);

 

 

▶모든 컬럼의 데이터를 복사해서 삽입

insert all into emp01
select * from emp;

(구조가 동일해야함)  (all 생략 가능)

 

▶조건에 해당되는 데이터 모두 복사하기

insert into emp01
select * from emp
where sal > 2000;

 

▶여러개의 테이블에 복사하기

INSERT ALL
INTO EMP01 VALUES (EMPNO, ENAME, SAL)
INTO EMP03 VALUES (EMPNO, ENAME)
SELECT EMPNO, ENAME, SAL FROM EMP
WHERE DEPTNO >= 20;

(emp01에는 empno, ename, sal 컬럼 3개만 가지고 있어야함

emp03에는 empno, ename 컬럼 2개만 가지고 있어야함)

 

 

 

 

 

 

 

UPDATE - 데이터 수정

UPDATE EMP04
SET SAL = SAL * 1.1
WHERE SAL >= 3000;
UPDATE EMP04
SET DEPTNO = 20, JOB = 'MANAGER'
WHERE ENAME = 'SCOTT';

 

학번이 10201인 학생의 학년과 학과 번호를 10103학번 학생의 학년과 학과번호 와 동일하게 수정

UPDATE student
SET (grade, deptno) = (SELECT grade, deptno FROM student WHERE studno = 10103)
WHERE studno = 10201;

 

 

 

 

DELETE - 데이터 삭제

DELETE FROM EMP04
WHERE DEPTNO = 30;
DELETE FROM EMP04
WHERE HIREDATE >= '85/01/01';

 

반응형

오라클 XE를 설치해보겠다.

 

www.oracle.com/kr/database/technologies/xe-downloads.html 로 들어간다.

 최근버전 말고 이전 버전을 설치하기 위해서는 하단에 Prior Release Archive 클릭

 

 

 

Oracle Database Express Edition (XE) Release 11.2.0.2.0 (11gR2)

11.2 버전 유념해두기(11그램 릴리즈2)

Oracle Database 11gR2 Express Edition for Windows x64 클릭

 

 

▶ 동의하고 다운로드실행

 

▶ 이후 로그인 화면 뜨고 로그인 하면 바로 다운로드 실행 

 

압축해제

폴더안에 있는 setup파일 실행

bd 같은 경우는 c드라이브에 깔아야 좋음

패스워드 1234
Port for 'Oracle Database Listener': 1521
Port for 'Oracle HTTP Listener': 8080
포트번호 1521, 8080 반드시 기억하기

 

 

명령프롬프트로 oracle 설치가 잘 됐는지 확인

Microsoft Windows [Version 10.0.19042.928]
(c) Microsoft Corporation. All rights reserved.

C:\Users\tenac>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on 금 4월 23 15:01:34 2021

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> show user;
USER is "SYS"
SQL> exit
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

C:\Users\tenac>exit

(SQL> 라고 나오면 잘 설치 된 것임)

(USER is "SYS" 라고 뜨는건 SYS라는 최고관리자가 사용하고 있다는 것임)

반응형

+ Recent posts