Mac Oracle v Mac Docker Docker https hub
Mac 에서의 Oracle 설치 v Mac ü Docker 회원 가입 후 Docker 설치 : https: //hub. docker. com/
Mac 에서의 Oracle 설치 v Mac - Oracle 11 g Express Edition 설치 ü 오라클 11 g 이미지 확인 > docker search oracle-xe-11 g ü 이미지 다운로드 및 설치 > docker pull jaspeen/oracle-xe-11 g ü 도커 이미지 실행 > docker run –name oracle 11 g –d –p 8080: 8080 –p 1521: 1521 jaspeen/oracle-xe-11 g ü 설치 확인 > sid는 xe 계정은 system 비밀번호는 oracle로 접속 확인
Mac 에서의 Oracle 설치 v Mac - Oracle 18 c Express Edition 설치 ü 오라클 18 c Express Edition 리눅스 버전 다운로드 https: //www. oracle. com/database/technologies/xe-downloads. html ü 오라클의 git 에 접속해서 아래 디렉토리의 파일들만 특정 디렉토리에 복사 https: //github. com/oracle/dockerimages/tree/master/Oracle. Database/Single. Instance/dockerfiles/18. 4. 0
Mac 에서의 Oracle 설치 v Mac - Oracle 18 c Express Edition 설치 ü 오라클 18 c Express Edition 리눅스 버전 다운로드 https: //www. oracle. com/database/technologies/xe-downloads. html ü 오라클의 git 에 접속해서 아래 디렉토리의 파일들만 특정 디렉토리에 복사 https: //github. com/oracle/dockerimages/tree/master/Oracle. Database/Single. Instance/dockerfiles/18. 4. 0 ü Download 받은 rpm 파일을 위에서 생성한 디렉토리에 복사 ü 이미지 생성 – 터미널에서 위의 디렉토리로 현재 디렉토리를 옮긴 후 아래 명령 수행 docker build -t oracle/database: 18. 4. 0 -xe -f Dockerfile. xe. ü 이미지 확인 docker images
Mac 에서의 Oracle 설치 v Mac - Oracle 18 c Express Edition 실행 https: //github. com/oracle/dockerimages/tree/master/Oracle. Database/Single. Instance#running-oracle-database-18 cexpress-edition-in-a-docker-container docker run --name <container name> -p <host port>: 1521 -p <host port>: 5500 -e ORACLE_PWD=<your database passwords> -e ORACLE_CHARACTERSET=<your character set> -v [<host mount point>: ]/opt/oracle/oradata oracle/database: 18. 4. 0 -xe ü 샘플 docker run --name myoracle -p 1521: 1521 -p 5500: 5500 -e ORACLE_PWD=wnddkd -v $PWD/mount/data: /opt/oracle/oradata oracle/database: 18. 4. 0 -xe
Mac 에서의 Oracle 설치 v Mac - Oracle 18 c Express Edition 실행
Mac 에서의 Oracle 설치 v Oracle 18 c Express Edition 접속 ü 접속 위치는 localhost ü 포트번호는 1521 ü SID는 XE ü 계정은 system ü 비밀번호는 wnddkd v Docker에서 sqlplus를 이용해서 접속 ü docker exec -it myoracle sqlplus sys/wnddkd@//localhost: 1521/XE as sysdba
오라클 접속 v Oracle 11 g에서 SCOTT이 접속이 안되는 경우 ü 관리자(system) 계정으로 접속해서 아래 명령을 수행 alter user scott identified by tiger account unlock; l GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO scott IDENTIFIED BY tiger; l ALTER USER SCOTT DEFAULT TABLESPACE USERS; l ALTER USER SCOTT TEMPORARY TABLESPACE TEMP;
오라클 접속 v Oracle 12 g 이상의 경우 관리자(system) 계정으로 접속해서 아래 명령을 수행 ü alter session set "_ORACLE_SCRIPT"=true; ü CREATE USER scott IDENTIFIED BY tiger; ü ALTER USER scott DEFAULT TABLESPACE USERS; ü ALTER USER scott TEMPORARY TABLESPACE TEMP; ü grant connect, dba, resource to scott;
오라클 접속 v HR계정이나 SCOTT 계정으로 로그인 시 아래 에러가 발생하는 경우 v HR 계정과 SCOTT 계정 사용할 수 있도록 계정 lock 해제 ü system으로 로그인 한 후 작업 alter user scott identified by tiger account unlock; alter user hr identified by hr account unlock;
데이터베이스 개체 구분 형식 Anonymous Procedure 자주 사용하는 DML 문장을 하나로 묶은 개체 Declare ~ Begin ~ Exception ~ End; Stored Procedure Create or Replace Procedure [프로시저명] Begin Exception End; Stored Function Package Trigger 연산의 결과를 반환하는 개체 Create or Replace Function [함수명] Return Begin Exception End; 같이 사용되는 함수나 프로시저를 묶은 개체 Create or Replace Package [패키지명] Begin ~ End; Create or Replace Package Body Begin ~ End; DML 문장을 수행하기 전이나 후에 수행되는 문장 Create or Replace Trigger [트리거명] AFTER [BEFORE] [조건] Begin End;
SQL 구분 DQL (Data Query Language) DML (Data Manipulation Language) DDL (Data Definition Language) TCL (Transaction Control Language) DCL (Data Control Language) 형식 비고 SELECT column-1, column-2, …. FROM table명 WHERE 조건절 ; 검색시 사용 UPDATE table명 ……. ; INSERT INTO table명 ……. ; DELETE table명 ……. ; 변경시 사용 CREATE TABLE table명 ……. ; DROP TABLE table명 ……. ; ALTER TABLE table명 ……. ; Object의 생 성과 변경 시 COMMIT; ROLLBACK; SAVEPOINT; Transaction 종료 및 취소 GRANT …. ; REVOKE ……; 권한 부여 및 취소
샘플 데이터베이스 생성 v 샘플 데이터 생성 - scott. sql 실행 DROP TABLE DEPT; CREATE TABLE DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR 2(14) , LOC VARCHAR 2(13) ) ;
샘플 데이터베이스 생성 DROP TABLE EMP; CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR 2(10), JOB VARCHAR 2(9), MGR NUMBER(4), HIREDATE, SAL NUMBER(7, 2), COMM NUMBER(7, 2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT); INSERT INTO DEPT VALUES(10, 'ACCOUNTING', 'NEW YORK'); VALUES (20, 'RESEARCH', 'DALLAS'); VALUES(30, 'SALES', 'CHICAGO'); VALUES(40, 'OPERATIONS', 'BOSTON');
샘플 데이터베이스 생성 INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, to_date('17 -12 -1980', 'dd-mm-yyyy'), 800, NULL, 20); INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20 -2 -1981', 'dd-mm-yyyy'), 1600, 30); INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, to_date('22 -2 -1981', 'dd-mm-yyyy'), 1250, 500, 30); INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, to_date('2 -4 -1981', 'dd-mm-yyyy'), 2975, NULL, 20); INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28 -9 -1981', 'dd-mm-yyyy'), 1250, 1400, 30); INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839, to_date('1 -5 -1981', 'dd-mm-yyyy'), 2850, NULL, 30); INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839, to_date('9 -6 -1981', 'dd-mm-yyyy'), 2450, NULL, 10); INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566, to_date('13 -7 -1987', 'dd-mm-yyyy')-85, 3000, NULL, 20); INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL, to_date('17 -11 -1981', 'dd-mm-yyyy'), 5000, NULL, 10);
샘플 데이터베이스 생성 INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698, to_date('8 -9 -1981', 'dd-mm-yyyy'), 1500, 0, 30); INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788, to_date('13 -7 -1987', 'dd-mm-yyyy'), 1100, NULL, 20); INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698, to_date('3 -12 -1981', 'dd-mm-yyyy'), 950, NULL, 30); INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566, to_date('3 -12 -1981', 'dd-mm-yyyy'), 3000, NULL, 20); INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782, to_date('23 -1 -1982', 'dd-mm-yyyy'), 1300, NULL, 10);
샘플 데이터베이스 생성 DROP TABLE BONUS; CREATE TABLE BONUS ( ENAME VARCHAR 2(10) JOB VARCHAR 2(9) , SAL NUMBER, COMM NUMBER ); DROP TABLE SALGRADE; CREATE TABLE SALGRADE ( GRADE NUMBER, LOSAL NUMBER, HISAL NUMBER ); INSERT INTO SALGRADE VALUES INSERT INTO SALGRADE VALUES COMMIT; , (1, 700, 1200); (2, 1201, 1400); (3, 1401, 2000); (4, 2001, 3000); (5, 3001, 9999);
샘플 데이터베이스 생성 SELECT * * FROM DEPT; EMP; BONUS; SALGRADE;
User Table v select * from user_objects; - user가 가진 오브젝트 보기 v select object_name from user_objects where object_type = 'TABLE'; - user가 가진 테이블 만 보기 v select * from tab; - 테이블의 형태만 보기 v select * from user_tables; - 테이블의 구조까지 보기 v desc 테이블명; - 테이블 구조 보기 v show user; - 현재 사용자 확인
- Slides: 41