본문 바로가기

Oracle Database

(39)
[ORACLE] DB의 PROCEDURE(프로시져) 특별한 작업을 수행하는 이름이 있는 PL/SQL Block이다매개변수를 받고 반복적으로 수행 할 수 있는 Block이다.이클립스에서는 수행되지 않는다!!Procedure의 생성UPDATE SAL PROCEDURE의 생성사원번호를 입력받아 급여를 수정하는 프로시져CREATE OR REPLACE PROCEDURE update_sal(v_empno IN NUMBER) IS BEGIN UPDATE EMPLOYEES SET SALARY = SALARY*1.1 WHERE EMPLOYEE_ID=v_empno; COMMIT; END update_sal; / v_empno : NUMBER의 타입을 갖는 인자값을 나타낸다.Procedure의 실행EXECUTE update_sal(100); EXECUTE 실행 명령을 통해 ..
[ORACLE] DB의 PL/SQL Procedure Language Extension to SQL 의 약자이다.데이터 베이스 상에서 반복문( while, for ), 제어문( if )등을 지원한다.​ PL/SQL 의 구성선언부 (선택)실행부(필수)예외처리부(선택)DECLARE 정의문( 선언부 ) BEGIN 실행문( 실행부 ) EXCEPTION 예외 처리문( 예외 처리부 ) END; / PL/SQL 의 사용SET SERVEROUTPUT ON; -- 출력을 가능하도록 해준다. DECLARE -- 선언부 V_NAME VARCHAR2(30) := 'PL/SQL'; BEGIN -- 실행부 DBMS_OUTPUT.PUT_LINE('오라클과' || V_NAME); END; -- 종료 / -- 항상 이 문자를 마지막으로 해주어야 함 SET SERVERO..
SQL PL(2) /*SET VERIFY OFF;SQL명령어나 PL/SQL에서 &를 이용한 치환 변수등을 사용할 때 치환되기전후의 값을 보일 건지 여부를 결정하는 기능이다. 기본은 ON*/ SET SERVEROUTPUT ON;SET VERIFY OFF; ACCEPT p_name PROMPT '이름:';ACCEPT p_sal PROMPT '급여:';ACCEPT p_deptno PROMPT '부서번호:'; DECLARE v_name VARCHAR2(10) := UPPER('&p_name'); v_sal NUMBER(7, 2) := &p_sal; v_deptno NUMBER(2) := &p_deptno; BEGIN DBMS_OUTPUT.PUT_LINE('v_name : ' || v_name); DBMS_OUTPUT.PUT_LI..
SQL PL(1) SET VERIFY OFFSET SERVEROUTPUT ON -- 화면에 출력하고 싶을 때 사용 ACCEPT p_deptno PROMPT '부서번호를 입력하시오:' -- 입력 DECLARE -- 선언부 v_sal_total NUMBER; BEGIN -- 구현부 SELECT SUM(SALARY) INTO v_sal_total FROM EMPLOYEES WHERE DEPARTMENT_ID = &p_deptno; DBMS_OUTPUT.PUT_LINE(&p_deptno || '번 부서의 급여의 합' || LTRIM(TO_CHAR(v_sal_total, '$999,999,999')) ); END;/SET VERIFY ONSET SERVEROUTPUT OFF -- 선언부-- 실행부-- 예외처리부/*DECLARE -..
SQL index --index(색인)--index는 원하는 정보의 위치를 빠르고 정확하게 알아낼수 있는 방법-- 자동생성: primary, Unique-- 수동생성: Query /*생성해야 좋은 경우1. WHERE 절이나 JOIN조건안에 자주 사용되는 컬럼2. WHERE 절이나 JOIN조건안에 자주 사용되는 두개의 이상에 컬럼3. NULL값이 많은 포함되어 있는 컬럼 생성했을때 안좋은 경우1. 테이블이 작을(ROW) 경우(10000개 이하일 경우)2. 테이블이 자주 갱신될 떄 */ CREATE TABLE EMP_COPYASSELECT * FROM EMPLOYEES; ALTER TABLE EMP_COPYADDCONSTRAINT PK_EMP_01 PRIMARY KEY(EMPLOYEE_ID); --INDEX 확인 쿼리SELE..
SQL sequence --sequence : 유일한 값을 생성해 주는 오라클 오브젝트다-- 회원번호, 게시판 글번호 (1-> 2-> 3)++ 증가연산-- 시퀀스를 생성하면, primary key와 같이 순차적으로 증가하는 column을 자동적으로 생성할 수있다.-- 독립적-- 시퀀스는 초기화가 불가능 --sequence /*int count =1;count ++; */ --sequence 삭제DROP SEQUENCE TEST_SEQ; --sequence 사용CREATE SEQUENCE TEST_SEQINCREMENT BY 1 -- (++,1씩 증가)START WITH 10; -- 10부터 시작 -- CURRVAL --> 현재 시쿼스의 값 SELECT TEST_SEQ.CURRVALFROM DUAL; -- 다음값SELECT TE..
SQL 정리해라 SQL 정리 ☆TABLE CREATE TABLE : 문은 데이터베이스에 새 테이블을 만드는 데 사용됩니다. DROP : 문은 기존 SQL 데이터베이스를 삭제하는 데 사용됩니다.팁 : 데이터베이스를 삭제하기 전에 관리자 권한이 있어야합니다. 데이터베이스가 삭제되면 다음 SQL 명령을 사용하여 데이터베이스 목록에서 데이터베이스를 확인할 수 있습니다. SHOW DATABASES; ALTER : ALTER TABLE 문은 기존 테이블의 열을 추가, 삭제 또는 수정하는 데 사용됩니다. ADD : MODIFY : 때로는 열의 데이터 유형을 변경해야합니다. 이렇게하려면 ALTER TABLE Modify Column 명령을 사용합니다. Oracle 및 MySQL의 경우 ALTER TABLE Modify Column 에..
SQL UPDATE --UPDATECREATE TABLE TB_JOBS_BKASSELECT *FROM JOBS; UPDATE TB_JOBS_BK --어떠한 케이블을 업데이트를 할꺼냐SET MIN_SALARY = 0 -- 변경WHERE JOB_ID LIKE 'AD_%'; -- AD 이름에 MIN값을 0으로 넣어라 UPDATE TB_JOBS_BK --어떠한 케이블을 업데이트를 할꺼냐SET MAX_SALARY = 0 -- 변경WHERE JOB_ID LIKE 'AD_%'; -- AD 이름에 MAX값을 0으로 넣어라 UPDATE TB_JOBS_BKSET MIN_SALARY = NULL, MAX_SALARY = NULLWHERE JOB_ID LIKE 'AC_%'; SELECT * FROM TB_JOBS_BK; COMMIT; -- 확인..