OracleDB/OracleDB 국비지원 수업 정리 14

OracleDB 12일차 수업내용(PL/SQL 2 - 조건문, 제어문)

상수(CONSTANT) 선언 문법과 예시 --상수명 CONSTANT DATATYPE:=초기값; CONST1 CONSTANT NUMBER:=5; 난수(RANDOM) 선언 문법과 예시 --변수명 :=DBMS_RANDOM.value(변수최소, 변수최대); random_number := DBMS_RANDOM.value(1, 100); 제어문 IF(조건문) 문법 IF condition THEN -- 조건이 참일 경우 실행되는 코드 statement1; statement2; ... ELSE -- 조건이 거짓일 경우 실행되는 코드 statement3; statement4; ... END IF; IF condition1 THEN -- 조건1이 참일 경우 실행되는 코드 statement1; statement2; ... ..

OracleDB 11일차 수업내용(PL/SQL)

PL/SQL 정의 Oracle’s Procedural Language extension to SQL 의 약자 이다. SQL내에서도 자바에서 했던 것 처럼 변수정의(INT, STRING, ...) , 조건처리(IF), 반복처리(FOR, WHILE, ....) 등등을 지원하는 자체내장 Procedural Language이다. ※장점 BLOCK구조로 이루어져있어 다수의 SQL문을 한번에 DB로 보내 처리하므로 속도가 빠르다. BLOCK 구조를 통해 블록들을 모듈화 하여 사용할 수 있다. 테이블의 COLUMN에 준하여 동적 변수를 선언 할 수 있다. 에러가 발생할 경우 EXCEPTION 처리가 가능하다. 구조 선언부 : 변수 상수, 커서, USER_DEFINE EXCEPTION 등을 선언한다. 실행부 : BEG..

OracleDB 10일차 수업내용

※DEFAULT와 CHECK 제약과 NULL 값의 관계 CREATE TABLE PIUBOARD( PIU_BNO NUMBER(8) CONSTRAINT PIU_PK PRIMARY KEY , PIU_BTITLE VARCHAR2(100) CONSTRAINT PIU_BT_NN NOT NULL CONSTRAINT PIU_NT_UNQ UNIQUE , PIU_BCONTENT VARCHAR2(4000) CONSTRAINT PIU_BC_NN NOT NULL , PIU_WRITER VARCHAR2(20) CONSTRAINT PIU_BWR_NN NOT NULL , PIU_WRITEDATE DATE DEFAULT SYSDATE , PIU_HITS NUMBER(10) CONSTRAINT PIU_HITS_OVER0 CHECK(PI..

OracleDB 9일차 수업내용

다중테이블 INSERT(조건에 따른 테이블마다 데이터 삽입) 문법 INSERT [ALL | FIRST] [WHEN 조건1 THEN] INTO 테이블명[(컬럼명1..)] VALUES(값1) INTO 테이블명[(컬럼명2..)] VALUES(값2) INTO 테이블명[(컬럼명3..)] VALUES(값3) [WHEN 조건2 THEN] INTO 테이블명[(컬럼명1..)] VALUES(값1) INTO 테이블명[(컬럼명2..)] VALUES(값2) INTO 테이블명[(컬럼명3..)] VALUES(값3) ... [WHEN 조건N THEN] INTO 테이블명[(컬럼명1..)] VALUES(값1) INTO 테이블명[(컬럼명2..)] VALUES(값2) INTO 테이블명[(컬럼명3..)] VALUES(값3) [ELSE] IN..

OracleDB 8일차 수업내용 (조인과 서브쿼리)

조인(Join) 동등 조인(equal join) ※서로 다른 두 테이블에 같은 PK를 가지고 있을때 사용하기로하자. SELECT a.EMPNO, a.ENAME, a.DEPTNO, b.DNAME FROM EMP a, DEPT b where a.deptno = b.deptno; where 절에 조건을 명시하여 서로 같은 절을 명시하면 두 테이블을 하나의 테이블 처럼 사용 할 수 있게 되고, SQL이 같은 이름의 테이블 deptno가 있더라도 오류 없이 정확하게 원하는 column을 가져올 수 있게 된다. ※동등 조인은 동등을 언급할때 순서가 상관이 없다. 내추럴 조인(Natural Join) equal join과 크게 다르지 않다. 오라클이 직접 엮어줄 COLUMN을 스스로 찾아야하기때문에 성능상으로 좋지 ..

MERGE (제대로 본 기억이 없어서 적는 개념)

MERGE란? CRUD에 사용되는 함수의 일종으로서 조건에 맞는 데이터가 없으면 INSERT / 조건에 맞는 데이터가 있으면 UPDATE를 수행하는 문장이다. MERGE INTO 테이블명 USING (UPDATE나 INSERT될 원천데이터) ON (UPDATE될 조건) WHEN MATCHED THEN --위의 조건에 일치할 경우 SET 컬럼1 = 데이터1, 컬럼2 = 데이터2,... (수정할 데이터) WHEN NOT MATCHED THEN -- 조건에 맞지 않을 경우 INSERT (컬럼명1, 컬럼명2, ...) VALUES (데이터1, 데이터2, ...) WHERE INSERT 조건; 이와같이 테이블 2개(서브쿼리 이용)를 사용하여 진행하는 방식이므로 개략적인 구성은 알아두자.

OracleDB 7일차 수업내용

OracleDB 의 함수들 ※배우기에 앞서 알아야할 것 FROM 절 뒤에 DUAL 이라는 테이블이 등장 할 예정이다. DUAL은 데이터를 저장하지않는 가상의 테이블이며, 결과를 출력하기 위한 임시테이블이다. 따로 저장되지않으므로 지나가면 사라지는 값이라고 생각하자. 1. 숫자함수 ABS(N) 절댓값이다. SELECT ABS(10), ABS(-10), ABS(-10.123) FROM DUAL; CEIL(N) 과 FLOOR(N) CEIL은 올림 FLOOR은 버림 SELECT CEIL(1), CEIL(1.1), FLOOR(2), FLOOR(3.1) FROM DUAL; ROUND(N,I) 와 TRUNC (N1,N2) ROUND는 N을 소수점 I+1번째자리에서 반올림하여 I자리만 남긴다. 양수인경우 N을 반올림하..

DAO, DTO, MAIN, SERVICE 분업하여 만들기 과제

DTO package mystudy1; import java.util.Date; public class EMPDTO { private int empno ; private String ename ; private String job ; private int mgr ; private Date hiredate; private int sal ; private int comm ; private int deptno ; public EMPDTO(int empno, String ename, String job, int mgr, Date hiredate, int sal, int comm, int deptno) { this.empno = empno; this.ename = ename; this.job = job; this..

OracleDB 5~6일차 수업내용 (※ DTO / DAO / Service / Main 분업화)

Service를 통해 Main을 다양한 DB테이블과 접목시키자! 지금까지의 내용은 1. Main 내에 모든 메서드를 작성하여 DB의 작업을 실행한다. 2. Main에 담긴 메서드를 DML 클래스를 생성하여 편하게 불러오도록 만든다. 이었다. 여기에 이어서 할 일은 이제 DML을 DAO와 DTO로 나누어 객체의 필드를 가진것과 실행부로 구분하고, 그것의 실행부인 Main과 그 실행부를 받아 정리해주는 Service부분을 나누어 생성하려고 한다. 이러한 구조를 통해 구현한다면 우리는 Main에서 하나의 테이블에 대한 DTO DAO만을 다룰 수 있는것이 아닌 여러가지 테이블을 service에 구현되어있는 메서드를 통해 접근할 수 있게 되어 객체로 만들어진 DTO내의 테이블의 데이터들을 편하게 이용 할 수 있다..

학원 유제문제 풀이

1) emp 테이블에서 사원번호, 사원이름, 급여를 출력하시오. 2) emp 테이블에서 사원이름과 급여을 출력하는데 컬럼명은 이름, 급여로 변경하여 출력하시오. 3) emp 테이블에서 사원번호,사원이름,급여,연봉을 구하고 각각 컬럼명을 사원번호, 사원이름, 급여로 변경하여 출력하시오. *연봉=급여*13 4) emp 테이블에서 업무(job)를 중복되지 않게 표시하시오. 5) emp Table의 사원명과 업무로 연결 해서 표시하고 컬러명은 Employee and Job로 표시하시오. ※ 띄어쓰기가 들어간 COLUMN명은 "COLUMN명" 의 꼴을 이용하자! 6) emp 테이블에서 사원번호가 7698 인 사원의 이름, 업무, 급여를 출력하시오. 7) emp 테이블에서 사원이름이 SMITH인 사람의 이름과 급여..