본문 바로가기

DB24

[SQL] PL/SQL – PROCEDURE & FUNCTION o PROCEDURE & FUNCTION은 PL/SQL 구문을 저장하여 다음에 사용할 수 있도록 한다. PROCEDURE : 반환값이 없다. 매개변수가 있다. (in/out) FUNCTION : 반환값이 있다. 매개변수가 있다. (in/out) PROCEDURE o PL/SQL문을 저장하는 객체로 필요할 때마다 복잡한 구문을 다시 입력할 필요 없이 간단하게 호출해서 실행 결과를 얻을 수 있다. CREATE TABLE PRO_TEST AS SELECT * FROM EMPLOYEE; SELECT * FROM PRO_TEST; -- 데이터를 삭제하는 프로시져 만들기 CREATE OR REPLACE PROCEDURE DEL_DATA IS BEGIN -- DECLARE없이 지역변수 선언 DELETE FROM PR.. 2021. 3. 29.
[SQL] PL/SQL – 반복문(LOOP,FOR,WHILE) 반복문(LOOP, FOR, WHILE) BASIC LOOP o 특정 조건까지만 반복문을 수행하며 EXIT 예약어에 반복을 중지할 수 있는 조건을 작성한다. o EXIT는 실행하는반복문을 빠져나오는 예약어로 EXIT가 없을 경우 무한 루프에 빠질 수 있다. o 사용형식 LOOP 실행할 구문 EXIT 조건문 END LOOP 1~10까지 출력하기 DECLARE I NUMBER :=1; BEGIN LOOP DBMS_OUTPUT.PUT_LINE(I); I:=I+1; -- IF I>10 THEN EXIT; -- IF문을 활용한 EXIT 실행 -- END IF; -- IF문 또는 EXIT WHEN I>10; EXIT WHEN I>10; END LOOP; END; / FOR o FOR문은 FOR EACH문과 비슷하게 .. 2021. 3. 25.
[SQL] PL/SQL – 조건문(IF, ELSE, ELSIF, CASE) 조건문 (IF, ELSE, ELSIF, CASE) IF ~ THEN ~ END IF o 조건문은 IF명령어를 사용하여 조건에 일치하면 THEN 이후 문장을 실행한다. o 사용 형식 IF 조건문 THEN 실행할 구문 END IF; DECLARE V_EMPNAME EMPLOYEE.EMP_NAME%TYPE; BEGIN SELECT EMP_NAME INTO V_EMPNAME FROM EMPLOYEE WHERE EMP_ID='&사번'; IF V_EMPNAME='선동일' -- V_EMPNAME이 선동일이면 ‘대표!’를 출력하는 조건문 THEN DBMS_OUTPUT.PUT_LINE('대표!'); END IF; END; / IF ~ THEN ~ ELSE ~ END IF o ELSE 문은 IF문에서 해당하는 조건이 없는.. 2021. 3. 25.
[SQL] PL/SQL – 타입 변수 선언, SELECT, INSERT문 처리 PL/SQLo Procedural Language extension to SQL의 약자로 오라클 자체에 내장되어 있는 절차적 언어이다.o SQL의 단점을 보완하여 SQL문장 내에서 변수의 정의, 조건 처리, 반복 처리 등 지원한다.o PL/SQL 유형에는 2가지 유형이 있다.익명블록 : 이름이 없어 사용 후 재호출이 불가능한 PL/SQL구문PROCEDURE & FUNCTION : 이름이 있어 사용 후 재호출이 가능한 PL/SQL구문 o 구조구조(익명블록) DECLARE -- 선언부 변수선언BEGIN -- 실행부 제어문, 반복문, 함수 등EXCEPTION -- 예외처리부END;/ o SET SERVEROUTPUT O.. 2021. 3. 23.
[SQL] OBJECT SEQUENCE - 순차적 번호 생성 OBJECT SEQUENCE o 순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 한다. o 옵션을 지정하지 않아도 호출 시 자동으로 1씩 증가한다. o 표현식 CREATE SEQUENCE 시퀀스명[옵션] o 시퀀스작동 예약어 시퀀스.NEXTVAL, 시퀀스.CURRVAL를 사용하여 생성한 시퀀스를 사용할 수 있다. o NEXTVAL, CURRVAL - 동일한 세션에서 CURRVAL를 출력하려면 NEXTVAL을 출력하고 실행해야 한다. o NEXTVAL/CURRVAL 사용 가능 여부 o 시퀀스 생성하기 -- 1부터 실행, 실행 시 마다 1씩 증가 -- 장점 : 자동으로 증가하기에 중복값을 체크하지 않아도된다. CREATE SEQUENCE SEQ_BASIC; SELECT SEQ_BASI.. 2021. 3. 23.
[SQL] VIEW – 인라인 뷰, 스토어드 뷰, VIEW 옵션 인라인 뷰(INLINE-VIEW) o 일반적으로 FROM절에 사용된 서브쿼리의 결과에 별칭을 붙인 것을 말함 o FROM절에 서브쿼리를 작성하며 서브 쿼리의 결과를 테이블로 사용하는 것이다. o FROM절에 서브쿼리를 직접 사용해도 되고 따로 뷰를 생성 후 FROM절에 생성한 뷰를 사용해도 됨 o 테이블은 실제 물리적 테이블에 있는 값이 아닌 가상의 테이블 값이다. -> 실제 테이블에서 추출한 가상의 테이블(실제 DB에 저장되어 있지 않은 테이블) o 1번만 사용할 수 있는 테이블로 쓰이는 서브 쿼리 문 -> 자바의 익명 클래스와 같은 개념 SELECT ROWNUM, EMP_NAME, SALARY FROM EMPLOYEE WHERE ROWNUM 2021. 3. 22.
[SQL] VIEW – 구조, 특징, 조작 불가능한 경우 VIEWo SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블 실제 테이블과는 다르게 실질적 데이터를 저장하고 있진 않지만 사용자는 테이블을 사용하는 것과 동일하게 사용 가능 o 가상의 테이블, SELECT문을 이용해서 실제 테이블에서 데이터를 가져와 사용한다.o VIEW도 하나의 ORACLE OBJECT이기 때문에 DDL로 생성, 수정, 삭제가 가능하다.o VIEW에 대한 생성권한이 있어야 생성할 수 있다. 사용 형식 : GRANT CREATE VIEW TO 계정명;CREATE VIEW VIEW이름 AS SELECT문 작성CREATE VIEW V_EMPALL AS SELECT * FROM EMPLOYEE JOIN DEPARTMENT ON DEPT_CODE=DEPT_ID.. 2021. 3. 22.
[SQL] DCL(Data Control Language) – GRANT, REVOKE, TRANSACTION DCL(Data Control Language) o DATA에 대한 접근권한 설정, 권한을 회수하는 기능/트랜젝션 처리를 담당한다. o 권한부여/회수 : GRANT, REVOKE GRANT o 계정에 권한을 부여하는 명령어이다. o 세부적인 내용(특정 사용자의 특정테이블)에 대해 권한 부여할 때 사용한다. o 사용 형식 : GRANT 권한명||ROLE명령,권한명,권한명...TO 사용자명 : GRANT ON 테이블 / 다른 소유의 테이블도 접근이 가능하게 만들 수 있다. CREATE USER QWER IDENTIFIED BY QWER; -- 유저 계정 생싱 GRANT CREATE SESSION TO QWER; -- 접속 권한 부여 GRANT CREATE TABLE TO QWER; -- 테이블 생성 권한 부.. 2021. 3. 20.
[SQL] DML - INSERT, INSERT ALL, UPDATE, MERGE, DELETE DML(Data Multipulation Language) o 데이터 조작 언어로 테이블에 값을 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 구문을 말한다. o DML은 커밋하기 전이면 ROLLBACK 명령어로 수행 명령을 되돌릴 수 있다. INSERT INTO EMPLOYEE VALUES(1, ‘홍길동’, ‘820114-1010101’, ‘hong_kd@kh.or.kr’, ‘01099998888’, ‘D5’, ‘J2’, ‘S4’, 3800000, NULL, ‘200’, SYSDATE, NULL, DEFAULT); UPDATE EMPLOYEE SET EMP_ID = 290 WHERE EMP_NAME = ‘홍길동’; DELTE FROM EMPLOYEE WHERE EMP_NAME = ‘.. 2021. 3. 19.