SELECT 문은 가장 기본이면서 가장 중요한 구문이다.


SELECT문이란 데이터베이스 내의 테이블에서 원하는 정보를 추출하는 명령


WITH <Sub Query>

SELECT select_list

FROM table_source WHERE search_condition

GROUP BY group_by_expression

HAVING search_condition

ORDER BY order_expression ASC : DESC


SELECT 열이름

FROM 테이블이름

WHERE 조건



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
32
33
34
35
36
37
38
39
40
41
SELECT CHR(75FROM DUAL;
-- 숫자를 문자값으로 변환 (K)
 
SELECT CONCAT('TEST''_NAME'FROM DUAL;
-- 2개의 문자값을 결합 (TEST_NAME)
 
SELECT INITCAP('MANAGER CHECK'FROM DUAL;
-- 첫번째 문자만 대문자로 변환 (Manager Check)
 
SELECT LOWER('MANAGER CHECK'FROM DUAL;
-- 소문자로 변환 (manager check)
 
SELECT LPAD('GRAYPASTEL'20'*'FROM DUAL;
-- 20-GRAYPASTEL을 지정한 문자로 채움 (**********GRAYPASTEL)
 
SELECT RPAD('GRAYPASTEL'20'#'FROM DUAL;
-- GRAYPASTEL##########
 
SELECT LTRIM('xyXYYYLATxy','xy'FROM DUAL;
-- 왼쪽부터 지정된 문자가 발견되면 제거 (XYYYLATxy)
 
SELECT RTRIM('xyXYYYLATxy','xy'FROM DUAL;
-- 왼쪽부터 지정된 문자가 발견되면 제거 (xyXYYYLAT)
 
SELECT REPLACE('CHECK' , 'C''R'FROM DUAL;
-- 두번째 정의된 값을 세번째 정의된 값으로 변경 (RHERK)
 
SELECT SUBSTR('ABCDEFGAAABBA',2,4FROM DUAL;
-- 2번째 문자부터 4개의 문자만 출력 (BCDE)
 
SELECT ASCII('P'FROM DUAL;
-- ASCII코드로 변환
 
SELECT LENGTH('CANDIDE'FROM DUAL;
-- 정의된 문자의 길이를 구해줌 (7)
 
SELECT NVL(COMM, 0FROM EMP;
-- 정의된 컬럼이 NULL이면 지정한 값으로 대체
 
SELECT NVL2(COMM, 50FROM EMP;
-- 해당 컬럼이 NULL이면 세번째 아니면 두번째 값으로 대체
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT ABS(-15FROM DUAL;
-- 절대값으로 변환 (15)
 
SELECT CEIL (15.2FROM DUAL;
-- 정의된 값을 올림값으로 변환 (16)
 
SELECT FLOOR(15.2FROM DUAL;
-- 정의된 값을 내림값으로 변환 (15)
 
SELECT LOG(6100FROM DUAL;
-- 뒤의 수가 앞의 수의 몇승인지 나타남
 
SELECT POWER(3,4FROM DUAL;
-- 3의 4승을 값
 
SELECT ROUND(15.295,2FROM DUAL;
-- 첫번째 수의 소수점 자리수를 두번째 값에서 정하고 반올림한다. (15.3)
 
SELECT SIGN(3FROM DUAL;
-- 정의된 값이 음수이면 -1, 0이면 0, 양수이면 1을 리턴
 
SELECT TRUNC(15.7962FROM DUAL;
-- 정의된 수의 출력할 소수점 자리수를 정한다. (15.79)
cs


기본개념)

 - 자신을 호출한 곳으로 리턴 해주는 값은 없고 호출되어 실행만 된다.

 - 실행환경과 Stored Program 사이에 값을 전달하기 위해 파라미터를 사용한다.

 - 파라미터 종류

1. IN : 호출하는 곳에서 함수 or 프로시저로 값을 전달

2. OUT : 함수 or 프로시저에서 호출한 곳으로 값을 전달 // 빈 깡통을 생각하면 쉽다. 비어이는 깡통에 결과값이 담긴다.

3. IN OUT : 호출하는 곳에서 함수 or 프로시저로 값을 전달하고 동시에 함수 or 프로시저에서 호출한 곳으로 값을 전달하는 변수

 - 프로시저 Hearder의 끝에는 IS[AS]가 와야하고 IS와 BEGIN사이에 BEGIN~END에서 사용할 변수를 선언

 - 자신의 스키마에서 프로시저를 만들기 위해서는 CREATE PROCEDURE 시스템권한이 있어야 하며,

   다른 스키마 계정에서 프로시저를 만들기 위해서는 CREATE ANY PROCEDURE 시스템 권한이 있어야 한다.


기본형식)

CREATE [OR REPLACE] PROCEDURE procedure_name[parameters]

IS[AS]

선언부

BEGIN

도입부

EXCEPTION

예외처리

END;


예제)

CREATE OR REPLACE PROCEDURE ojc3 (p_empno IN NUMBER, p_new_sal IN NUMBER) // 외부에서 값을 넣어주어야 한다.

IS 

BEGIN

UPDATE emp

SET sal = p_new_sal

WHERE empno = p_empno;


COMMIT;

END ojc3;


SELECT empnp, ename, sal FROM emp WHERE empno = 7369;


EMPNO  ENAME  SAL

7369      smith    800


호출)

exec ojc3(7369, 4500);


SELECT empnp, ename, sal FROM emp WHERE empno = 7369;


EMPNO  ENAME  SAL

7369      smith    4500



'Database' 카테고리의 다른 글

[ORACLE] SELECT문 알아보기  (0) 2018.02.28
[ORACLE] 오라클 기초 단일행 함수  (0) 2018.02.28
[ORACLE] 오라클 함수(Function)를 알아보자  (0) 2018.02.27

+ Recent posts