프로시저(Procedure)의 특징 개발자가 자주 실행해야하는 특정 작업을 필요할 때 호출하기위해 절차적인 언어를 이용하여 작성한 이름이 있는 프로그램 모듈(Block)을 의미한다. - 매개 변수를 받을 수 있는 PL/SQL BLOCK 이다. (PL/SQL 블록이란?)- 프로시저 내의 변수는 Scalar변수라고 해서 임시 데이터 1개만 저장할 수 있는 변수이며, 모든 형태의 데이터 유형 지정 가능.- PL/SQL의 대입연산자는 ‘ := ’이다. (↔ T-SQL은 일반적인 ‘ = ’이다)- PL/SQL에서 사용하는 프로시저 내의 SELECT문장은 반드시 결과 값이 있어야 하며, 그 결과는 반드시 1개여야 한다. 조회결과가 없거나 2개 이상인 경우에는 에러가 발생(T-SQL은 결과값없어도 상관없음)한다. 그..
Oracle 에서의 블록(Block) 구조 및프로시저(Procedure), 사용자 정의 함수(User Defined Function), 트리거(Trigger) 비교 총정리 PL/SQL(Oracle's Procedural Language extension to SQL, 절차형 SQL)이란??1) 응용 프로그램에서의 데이터베이스 처리 성능을 향상시키기 위해 SQL문장에서 변수정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR) 등을 지원하며, 오라클 자체에 내장되어 있는(오라클에서 지원하는) Procedure Language이다. 2) PL/SQL을 이용하여 다양한 저장 모듈(Stored Module)을 개발할 수 있다.※저장 모듈: PL/SQL문장을 데이터베이스 서버에 저장하여 사용자와 애플리..
'USERS'테이블스페이스에 대한 권한이 없습니다.ORA-01950: no privileges on tablespace 'USERS'위 에러 또는 "ORA-30041: 테이블스페이스에 할당량을 부여할 수 없습니다." 등의 에러가 발생하면서 'Tablespace'란 용어가 등장했다. 테이블 스페이스(Table Space)란??Oracle에서는 사용자 생성 후 테이블을 생성하고 INSERT 하려는 순간 (혹은 CREATE시에) “ORA-01950: 테이블스페이스 ‘USERS’에 대한 권한이 없습니다.” 와 같은 오류가 발생할 수 있다. 왜냐하면 Oracle은 새로운 사용자를 생성한 직후에 기본적으로 할당받는 테이블 스페이스인 ‘USERS’라는 이름의 ROLE을 부여함. 근데 이 ‘USERS’ Tablespa..
DCL(Data Control Language)과 유저(계정) DCL이란 한 마디로, 유저의 권한을 제어할 수 있는 명령어이다. 우리는 DB에 접속했다고 해서 바로 테이블, 뷰, 인덱스 등과 같은 오브젝트(Object)를 생성할 수 없다. 왜냐하면 Oracle에서의 사용자(유저, 계정)가 실행하는 모든 DDL(CREATE, ALTER, DROP, RENAME 등)문장은 그에 해당하는 권한이 있어야만 실행 가능하기 때문이다. 아래 표는 Oracle 설치 시 기본적으로 제공하는 유저이다.유저 역할 SCOTT Oracle 테스트용 샘플 유저, Default 패스워드: TIGER SYS DBA 역할을 부여받은 유저 SYSTEM DB의 모든 시스템 권한을 부여받은 DBA유저. Oracle설치 시에 패스워드 설정...
윈도우 함수(Window Function) 기본 문법 ① Oracle에서의 분석 & 순위 함수인 윈도우 함수는 크게 5가지 그룹으로 분류된다.② 윈도우 함수 사용 시 OVER문구가 키워드로 필수 포함된다.③ WINDOW 함수는 다른 함수와는 달리 중첩(NEST)해서 사용하지는 못하지만, 서브쿼리(Sub Query)에서는 사용할 수 있다. 1) Window Function SyntaxSELECT WINDOW_FUNCTION(argument) OVER( [partition by 칼럼] [order by 절] [window 절] )FROM 테이블명; 윈도우 함수(Window Function) 종류 1) 그룹 내 순위 관련 함수① RANK : 동일한 값에 대해서는 동일한 순위를 부여 예) 1 → 2 → 2 → ..
데이터 분석을 위한 3가지 함수 종류 요약 1) Group Function : ① 집계 함수를 제외한 함수를 포함(그룹 간의 소계를 계산하는 ROLLUP 함수, GROUP BY 항목들을 다차원적 소계로 계산하는 CUBE 함수, 특정 항목에 대한 소계를 계산하는 GROUPING SETS 함수)② ROLLUP, CUBE, GROUPING SETS 결과에 대한 정렬이 필요한 경우 ORDER BY절에 정렬 칼럼을 명시. 2) Window Function : ① 데이터 웨어하우스에서 발전한 기능으로, 분석 함수(Analytic Function)나 순위 함수(Rank Runction)라고 불림. → 중요 포인트는 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수라는 것.② group by구문과 병행하여 사용할 수는..
뷰(View)의 중요 포인트 10가지사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블(Virtual Table)이다. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. 1) Table은 실제 데이터를 가지고 있지만, View는 단지 ‘뷰 정의’만을 가지고 있다.2) 질의문에서 뷰를 사용하면 이 ‘뷰 정의’를 참조해서 DBMS내부적으로 질의를 재구성하여 질의를 수행한다. 따라서, View는 실제 데이터를 가지고 있지는 않지만 테이블이 수행하는 역할을 하기 때문에, 가상 테이블(Virtual Table) 이라고도 불리는 것.3) 뷰의 정의는 변경할 수 없다. (ALTER VIEW문을 사용할 수 없음, 필..
다중 행(Multi Row) 서브쿼리 IN과 EXISTS 실행 순서 및 특징 1) IN : 실제 존재(일치)하는 데이터들의 모든 값까지 확인.① SubQuery를 먼저 실행하여 출력되는 그에 대한 모든 row가져옴(따라서 사실 IN뒤의 괄호안에는 서브쿼리 이외에도 직접 요소 값을 적어줄 수 있음)② 이후에는 MainQuery에서 하나의 row를 가져옴.③ 그 row의 값이 ①에서 가져온 IN 이하의 요소들에 포함(일치)되어 있는지를 체크하고, SubQuery의 요소들 중 하나라도 일치한다면 그 row를 출력④ ②번~③번 과정 반복하면서 결과 출력. 2) EXISTS : 단지 해당 row가 존재하는지만 확인하고, 더 이상 수행되지 않음.① MainQuery를 먼저 실행하여 출력되는 상위 row가져옴.② 해..
서브쿼리(Sub Query) 개념 1) SQL문 내에 쓰인 SELECT 문을 의미하며, 이때 바깥에 있는 SQL문을 메인 쿼리(Main Query)라 부른다.2) MainQuery 안에 포함된 종속적인 관계이기 때문에 논리적인 실행순서는 항상 MainQuery에서 읽혀진 데이터에 대해 SubQuery에서 해당 조건이 만족하지를 확인하는 방식으로 수행되어야 한다. 그러나 실제 SubQuery의 실행순서는 상황에 따라 달라질 수 있음. → SubQuery의 검색된 결과 값이 MainQuery에 사용될 때의 SubQuery는 MainQuery 실행 전에 실행됨.서브쿼리 종류 설명 비연관(Un-Correlated) 서브쿼리 서브쿼리가 메인쿼리 칼럼을 가지고 있지 않는 형태의 서브쿼리를 의미한다. 메인쿼리에 값(..
- Total
- Today
- Yesterday
- 톰캣
- Index Scan
- pl/sql
- container
- 정규화
- Maven
- 비식별자
- 오라클
- DCL
- tcl
- 도커
- 기본키
- Database
- Block
- 식별자
- SQLD
- 서브쿼리
- Docker
- procedure
- 공부 방법
- 이클립스
- was
- Tomcat
- null
- Oracle
- PLSQL
- Eclipse
- 컨테이너
- Java
- sub query
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |