PL/SQL 구분자 구분자(Delimiter) PL/SQL 프로그램을 가장 작은 단위소로 나누었을 때 가장 많은 수를 차지하는 것은 아마 구분자일 것이다. 구분자는 PL/SQL에서 특별한 의미를 가지는 문자 또는 문자의 조합을 말한다. -구분자 목록 구분자 의미 + 덧셈 연산자 - 뺄셈 또는 음수 연산자 * 곱셈 연산자 / 나눗셈 연산자 ** 거듭제곱 연산자 := 오른쪽 값을 왼쪽 식별자에 할당하는 연산자 => 저장 서브프로그램의 매개변수명을 값과 연관시키는 연산자 % 속성 지시자(커서 상태 변수에 사용) 또는 앵커 타입 지시자 " 큰따옴표를 사용한 식별자 구분자 ' 문자열의 시작과 끝을 나타내는 구분자 . 하위 요소를 나타내기 위한 구분자 || 연결 연산자 ( 표현식 또는 목록의 시작 구분자 ) 표현식 또는 목록의 끝 구..
PL/SQL 개념 PL/SQL은 'Procedural Language/Structured Query Language'의 약어로 오라클 관계형 데이터베이스의 SQL을 확장하여 절차적인 처리 기능성을 제공하기 위한 언어이다. 절차적인 처리가 가능하다는 건 프로그래머가 데이터 처리를 위한 상세한 방법을 지정할 수 있다는 걸 의미한다. 대부분의 DBMS는 오라클의 PL/SQL과 유사한 절차적 처리 언어를 제공한다. RDB에서 데이터 처리를 위해 지원하는 표준언어인 SQL은 절차적 언어가 아니다. SQL로는 데이터의 처리 결과 집합만을 기술할 수 있으며 어떤 기법과 절차를 거쳐 해당 데이터 집합을 얻어야 하는지에 대해서는 기술할 방법을 전혀 제공하지 않는다. SQL을 사용하여 데이터를 처리하는 경우 데이터의 처리 절차는 사용자에게..
익명 PL/SQL 예제 익명 PL/SQL이란 이름을 가지지 않은 PL/SQL프로그램으로 서버에 저장되지 않고, 일회성으로 실행되는 유형의 PL/SQL프로그램을 말하는 것이다. 앞의 글에서 생성한 scott 계정의 테이블 emp를 사용해 다음과 같은 사항을 처리하는 PL/SQL 프로그램을 생각해보자. -요구 사항 : (사번, 사원명, 업무)가 값 (v_empno, v_ename, v_job)으로 주어졌을 때, 1. 사번 v_empno가 테이블 emp에 존재한다면, 테이블의 해당 로우의 (사원명,업무)를 (v_ename, v_job)으로 변경 2. 존재하지 않으면, -해당 정보를 테이블 emp에 등록 -등록 시 부서 코드 값은 20을 기본값으로 사용 DECLARE --상수 c_default_deptno CONSTANT NUMBER..
오라클 scott 예제 스키마 오라클을 설치 시 scott 예제 스키마가 설치되어 있고 그 계정에는 emp, dept, bonus, salgrade라는 네 개의 테이블이 들어있다. 만약 scott 계정이 설치되지 않았다면 다음의 스크립트를 실행하여 계정 scott를 생성하라. 스크립트는 사용자 생성 권한이 있는 DBA 계정으로 접속해서 실행해야 한다. -scott 계정 생성 % sqlplus / as sysdba REM scott 계정 생성 CREATE USER scott IDENTIFIED BY tiger; ALTER USER scott DEFAULT TABLESPACE USERS; ALTER USER scott QUOTA UNLIMITED ON USERS; GRANT RESOURCE, CONNECT TO scott; 다음은 예제 ..
썸네일 윈도우 10에서 Oracle 11g 설치(express버젼) 1. oracle 공식 사이트에서 oracle 설치파일을 다운받는다.(로그인 필요) www.oracle.com/database/technologies/oracle-database-software-downloads.html 2. 설치 파일 다운로드 후 압축을 풀고 setup을 실행 3. 설치를 진행한다. 4. 설치 완료 후 설치됐는지 확인-> sqlplue에서 sys as sysdba 실행 필자는 앞으로 sql Developer를 사용할 것입니다.
SQL 서브쿼리 예제 --서브쿼리 (sub Query : 부 쿼리) --이문세의 부서명 select deptno from emp where ename = '이문세'; -- 10 select dname from dept where deptno = 10; --위 두 문장을 한번에 실행 select dname from dept where deptno = (select deptno from emp where ename = '이문세'); --평균 급여보다 많은 급여를 받는 사원 : sal > avg(sal) select avg(sal) from emp; select * from emp where sal > 463.57; select * from emp where sal > (select avg(sal) from emp);
SQL 조인(JOIN) --Join(조인) -- 테이블을 2개 이상 합쳐서 작업 -- 각 테이블 마다 레코드(행) 수가 다르다. select * from emp; select * from dept; -- 사원명, 부서명 select ename, dname from emp, dept where emp.deptno = dept.deptno -- join 조건(Equi Join) order by emp.deptno; --테이블이 조인 되면 조인조건이 필요함 -> 조인한 테이블 갯수 = 1개 --컬럼 모호성 --사원명, 부서명, 부서번호 select ename, dname, deptno -- deptno 컬럼이 emp에도 존재하고, dept에도 존재함(모호) from emp, dept where emp.deptno = dept.dep..
SQL 숫자함수, 그룹함수 정리 --dual(더미 테이블) --출력 결과가 1개일 경우 사용되는 테이블 --1일이 몇분인가? select 60 * 24 from dept; select * from dept; select 60 * 24 from dual; -- 숫자함수 --절대값(absolute) select -10, abs(-10) from dual; --버림(floor) select 34.7894, floor(34.7894) from dual; --반올림(5이상이면 올림, 5미만 버림) - round select 34.5678, round(34.5678) from dual; select 12.3456, round(12.3456) from dual; --자릿수 포함 select 34.5678, round(34.5678, 2) -- 소숫..