DECODE 함수의 기본 형식 

SELECT DEPTNO , DECODE(DEPTNO, 10, 'A', 20, 'B', 'DEFAULT') FROM EMP ORDER BY DEPTNO;

SELECT ENAME, DEPTNO, DECODE(DEPTNO, 10, 'ACCOUNTING',

20, 'RESEARCH',

30, 'SALES',

40, 'OPERATIONS') AS DNAME FROM EMP;

CASE - 비교연산자를 조건으로 사용할수 있어 프로그래밍언어의 IF ELSE 와 유사한 구조

EX) SELECT ENAME, DEPTNO,

CASE WHEN DEPTNO = 10 THEN 'ACCOUNTING'

   WHEN DEPTNO = 20 THEN 'RESEARCH'

   WHEN DEPTNO = 30 THEN 'SALES'

  WHEN DEPTNO = 40 THEN 'OPERATIONS'

END AS DNAME

FROM EMP;

'Oracle' 카테고리의 다른 글

오라클 GROUP BY  (0) 2014.11.12
오라클 그룹함수  (0) 2014.11.12
오라클 NULL 값을 다른 값으로 변환하는 함수 NVL  (0) 2014.11.12
오라클 형변환 함수.  (0) 2014.11.12
오라클 날짜 함수 중요함수  (0) 2014.11.11
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

NVL - NULL값을 특정 값으로 바꿈 값이 있따면 변환 없음

EX) SELECT ENAME.NVL(COMM, 0) FROM DUAL;

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

오라클 형변환 함수.

Oracle 2014. 11. 12. 09:30

오라클 사용시 숫자 문자 날짜의 데이터형을 다른 데이터형으로 변환.

TO_CHAR - 날짜 혹은 숫자를 문자형으로.

TO_DATE - 문자를 날짜형으로

TO_NUMBER - 문자를 숫자형으로 

TO_CHAR - 날짜형을 문자형으로 

YYYY-년도 (4자리)

YY - 년도 (2자리)

MM - 월 

MON -월을 알파벳으로

DAY - 요일

DY - 요일의 약어

EX) SELECT SYSDATE, TO_CHAR(SYSDATE , 'YYYY-MM-DD') FROM DUAL;

EX) SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD DAY') FROM DUAL;

EX) SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD DY') FROM DUAL;

AM PM - 오전 오후 시각표시

A.M P.M - 오전 오후 시각 표시

HH,HH12 - 12시간으로 표현 (1~12)

HH24 - 24시간으로 표현(0~23)

MI - 분으로 표현

SS - 초 표현 

EX) SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD, HH24: MI : SS') FROM DUAL;

TO_CHAR - 숫자를 문자형으로 

0-자릿수를 나타내며 자릿수가 맞지 않을 경우 0으로 채움

9-자릿수를 나타내며 자릿수가 맞지 않아도 채우지 않음 

L-각 지역별 통화 기호를 앞에 표시

.-소숫점

,- 천단위 자리 구분

EX) SELECT ENAME , SAL, TO_CHAR (SAL, 'L999,999') FROM DUAL;

EX) SELECT TO_CHAR (123456, '000000000') FROM DUAL;


TO_DATE - 문자를 날짜형으로

EX) SELECT ENAME,HREDATE FROM WHERE HIREDATE=TO_DATE(19810220,'YYYYMMDD');

EX) SELECT TRUNC(SYSDATE - TO_DATE('2008/01/01', 'YYYY/MM/DD')) FROM DUAL;


TO_NUMBER - 문자를 숫자형으로

EX) SELECT TO_NUMBER('20,000', '99,999') - TO_NUMBER('10,000','99,9999') FROM DUAL;


블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

SYSDATE - 시스템에 저장된 현재 날짜 반환

EX) SELECT SYSDATE-1 어제 , SYSDATE 오늘,  SYSDATE+1 내일 FROM DUAL;

MONTHS_BETWEEN -두날짜 사이가 몇개월인지 반환

EX) SELECT MONTHS_BETWEEN(SYSDATE,HIREDATE) FROM EMP;//

ADD_MONTHS - 특정 날짜에 개월 수를 더함

NEXT_DAY - 특정 날짜에 최초로 도래하는 인자로 받은 요일의 날짜 반환

LAST_DAY - 해당 달이 마지막 날짜를 반환

ROUND - 인자로 받은 날짜를 특정 기준으로 반올림

TRUNC - 인자로 받은 날짜를 특정 기준으로 버림 

EX) SELECT HIREDATE,TRUNC(HIREDATE,'MONTH') FROM EMP;


'Oracle' 카테고리의 다른 글

오라클 NULL 값을 다른 값으로 변환하는 함수 NVL  (0) 2014.11.12
오라클 형변환 함수.  (0) 2014.11.12
SQL 주요함수  (0) 2014.11.11
오라클 SELECT 문 논리조건 BETWEEN AND  (0) 2014.11.11
오라클 SQL PLUS 시스템.  (0) 2014.11.11
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

SQL 주요함수

Oracle 2014. 11. 11. 18:45

DUAL - DB없이 결과값을 알고 싶을때 산술연산관련 

EX) SELECT 24*60 FROM DUAL 

EX) SELECT SYSDATE FROM DUAL //현재 날짜. 

숫자 관련 함수 

ABS - 절댓값을 구합니다. 음수도 양수로 표현

EX) SELECT -10 , ABS(-10) FROM DUAL;

FLOOR - 소숫점 아래를 버립니다.

EX) SELECT 2.345 , FLOOR(2.345) FROM DUAL;

ROUND - 특정 자리수에서 반올림

EX)SELECT 2.345, ROUND(2.345) FROM DUAL;//결과 2.345 와 2 두개가나옴

EX) SELECT 2.345, ROUND(2.345,2) FROM DUAL ;//결과 2.345와 2.35 2개가 나옴 

EX)SELECT 34,345, ROUND(34.345,-1) FROM DUAL;//겨로가 34.345와 30 2개가 나옴.

 MOD - 나머지 구함

EX) SELECT MOD (27,2), MOD(27,5),MOD(27,7) FROM DUAL;//결과 1, 2, 6 나옴. 

문자 관련 함수

LOWER - 소문자로 변환

SELECT LOWER('ABC') FROM DUAL;// abc로 출력됨

UPPER - 대문자로 변환

SELECT UPPER('abc') FROM DUAL;// ABC로 출력됨 

INITCAP - 이니셜만 대문자로. 

SELECT INITCAP('WELCOME TO ORACLE') FROM DUAL;// Welcome To Oracle 출력

LENGTH - 문자길이 함수

SELECT LENGTH('ORACLE'),LENGTH('오라클') FROM DUAL;//6 과 3 한글은 3자리..

LENGTHB - 바이트의 수를 알려줌

SELECT LENGTHB('ORACLE'),LENGTHB('오라클') FROM DUAL;//6과 6이 나옴. 

SUBSTR,SUBSTRB - 문자열 일부만 추출

SELECT SUBSTR('Welcome to Oracle' , 4,3) from dual //대상문자열의 앞에서4번째부터 3글자('com') 추출

SELECT SUBSTR('Welcome to Oracle' , -4,3) from dual //대상문자열의 뒤에서 4번째부터 3글자('acl') 추출

SELECT SUBSTR(HIREDATE, 1, 2) 년도 , SUBSTR(HIREDATE, 4, 2)달 FROM EMP;

SELECT * FREOM EMP WHERE SUBSTR(HIREDATE, 4, 2) ='09';

SUBSTRB  - 바이트 기준임.

SELECT SUBSTRB ('Welcome to Oracle' , 4,3) from dual //대상문자열의 앞에서4번째부터 3글자('com') 추출

INSTR-특정문자 위치를 구함

SELECT INSTR('WELCOME TO ORACLE', 'O') FROM DUAL // 5가 나옴. 

INSTRB - 바이트수를 기준으로 문자의 위치를 구하는 INSTRB함수 

SELECT INSTRB('데이터베이스','이',3,1),INSTRB('데이터베이스','이',3,1) FROM DUAL; ////5와 3이 나옴.. 

LPAD/RPAD - 특정기호로 채우는 함수

SELECT LPAD('ORACLE',20,'#') FROM DUAL //#######ORACLE출력

SELECT RPAD('ORACLE',20,'#') FROM DUAL //ORACLE#####출력 

LTRIM와 RTRIM함수

문자의 공백을 제거.. 예제는 따로 추가하지 않음. 

TRIM - 특정 문자를 잘라냄

SELECT TRIM('A' FROM 'AAAAORCLEAAAA') FROM DUAL//결과값 ORCLE





'Oracle' 카테고리의 다른 글

오라클 형변환 함수.  (0) 2014.11.12
오라클 날짜 함수 중요함수  (0) 2014.11.11
오라클 SELECT 문 논리조건 BETWEEN AND  (0) 2014.11.11
오라클 SQL PLUS 시스템.  (0) 2014.11.11
오라클 SQL *PLUS SQLPLUS 음.  (0) 2014.11.11
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

WHERE - 조건과 비교연산

EX) SELECT * FROM EMP WHERE SAL >= 3000; 

=같다

> 보다 크다

< 보다 작다

>= 보다 크거나 같다.

<= 보다 작거나 같다.

<>,!=,^= 다르다.

 문자데이터 쿼리

EX) SELECT * FROM EMP WHERE ENAME='FORD'

날짜 데이터 쿼리

EX) SELECT * FROM EMP WHERE HIREDATE <= '1981/01/01';

논리연산자

AND

EX) SELECT * FROM EMP WHER DEPTNO = 10 AND JOB='MANAGER';

OR

EX) SELECT * FROM EMP WHERE DEPTNO = 10  OR JOB ='MANAGER';

NOT 

EX)SELECT * FROM EMP WHERE NOT DEPTNO =10;

BETWEEN AND 연산자 (특정범위내 값)

EX) SELECT * FROM EMP WHERE SAL BETWEEN 2000 AND 3000;

NOT연산자와 사용시 특정범위내를 제외한 값

EX) SELECT * FROM EMP WHERE SAL NOT BETWEEN 2000 AND 3000;

날짜역시 가능

EX) SELECT * FROM EMP WHERE HIREDATE BETWEEN '1987/01/01' AND '1987/12/31';

IN 연산자. 

여러개의 조건을 만족해야할때 하나의 컬럼에 그럴때 사용

EX) SELECT FROM EMP WHERE COMM IN(300,500,1400); //COMM값이 300이거나 500이거나 1400인 결과를 구함

EX) SELECT FROM EMP WHERE COMM NOT IN(300,100,50); //COMM값이 300혹은 100,혹은 50인 값을 제외하고  조회됨.. 

LIKE 연산자- 특정문자가포함된 값을 구하고 싶을때

EX) SELECT * FROM EMP WHERE ENAME LIKE '%F';

EX)SELECT *FROM EMP WHERE ENAME LIKE '%D %d

_ 와일드카드(_) 사용 - 

EX) SELECT * FROM EMP WHERE ENAME LIKE '___A%';

ESCAPE 옵션 0 와이드카드 문자를 와이드 카드가 아닌 문자 그대로 이시하도록 합니다.

EX) SELECT EMPNO , ENAME FROM EMP WHERE ENAME LIKE '%\%%' ESCAPE '\';

IS NULL  과 IS NOT NULL

EX)SELECT * FROM COMM IS NULL ;

EX)SELECT * FROM WHERE COMM IS NOT NULL;


정렬을 위한 ORDER BY절

EX) SELECT * FROM EMP ORDER BY SAL ASC;

EX) SELECT * FROM EMP ORDER BY SAL DESC;

EX) SELECT * FROM EMP ORDER BY SAL DESC, ENAME ASC;


'Oracle' 카테고리의 다른 글

오라클 날짜 함수 중요함수  (0) 2014.11.11
SQL 주요함수  (0) 2014.11.11
오라클 SQL PLUS 시스템.  (0) 2014.11.11
오라클 SQL *PLUS SQLPLUS 음.  (0) 2014.11.11
오라클 CONCATENATION ,DISTINCT (중복금지)  (0) 2014.11.11
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

HEADING(HEA) - 컬럼 제목의 출력 여부를 결정하는 HEADING(HEA) 변수

EX) SET HEADING OFF - 제목 오프

EX) SET HEADING ON - 제목 보임.

LINESIZE - 라인당 출력할 문자의 수

EX) SET LINESIZE 100;

PAGESIZE - 페이지당 출력할 라인의 수

EX) SET PAGESIZE 10

문자 형식의 칼럼 출력시 컬럼 길이 조정

EX) COLUMN ENAME FORMAT A25 - 출력형식만 바뀜 화면상

EX) COLUMN SAL FORMAT 9,999,999 

EX) COLUMN COMM FORMAT 0,000,000


블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,


SQL 문 

SQL*PLUS 명령문 

 관계형 데이터베이스의 미국표준협회(ANSI)표준 언어

 SQL문을 실행할 수 있는 오라클의 툴

 여러 줄 실행

 한 줄 실행

 종결 문자(;) 필요

 종결 문자 불요

 연결문자 불필요

 연결 문자(-) 필요

 키워드 단축 불가

 키워드 단축 가능

 버퍼에 마지막 명령문 저장

 버퍼 저장하지 않음


LIST(L) - 명령어 버퍼의 내용을 나타냄 

/ - SQL버퍼에 저장된 쿼리문 사용

RUN(R) - SQL 버퍼 내의 내용을 보여주고 실행


SQL PLUS 파일명령어

EDIT-파일의 내용을 에딕터로 읽어 편집할수 있음

EX) ED 파일명

HOST - 오라클을 종료하지 않고 OS명령을 수행 OS프롬프트로 잠시나가지고 복귀때는 EXIT 를 입력하면 복귀

SAVE -SQL 버퍼내의 현재내용을 저장

EX) SAVE 파일명 

존재하는 파일을 새로운 내용저장으로 할땐 

EX)SAVE 파일명 REPLACE;

이미존재하는 파일에 새로운 내용 추가할땐

EX)SAVE 파일명 APPEND;

@ - SQL 파일에 저장된 내용 실행

EX) @ 파일명;

SPOOL - 오라클 화면을 갈무리하여 파일저장

EX) SPOOL 파일명;

SPOOL OFF; 를 해줘야 화면 갈무리 중단됨.

GET - 파일의 내용을 SQL 버퍼로 읽어들입니다.

EX) GET 파일명 

EXIT - 오라클을 종료합니다.



블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

여러개의 컬럼을 연결할때 사용하는데 연산자료 || 이것을 사용

EX)SELECT ENAME || 'IS A ' || JOB FROM EMP;


DISTINCT는 쿼리 결과값중에서 중복되는 값을 줄여야할때 결과값이 다른것들의 한가지만 구할때 사용합니다. 

EX) SELECT DISTINCT DEPTNO FROM EMP;


'Oracle' 카테고리의 다른 글

오라클 SQL PLUS 시스템.  (0) 2014.11.11
오라클 SQL *PLUS SQLPLUS 음.  (0) 2014.11.11
오라클 산술연산자. NULL 값 AS 연산자  (0) 2014.11.11
오라클의 데이터형 ORACLE 데이터  (0) 2014.11.11
데이터 딕셔너리  (0) 2014.11.11
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

여러개의 산술 연산자를 한꺼번에 사용하는 경우 곱하기나 나누기가 더하기나 빼기보다 우선순위가 높다. 

ex) select ename, sal, sal*12 from emp;

//sal이 급여이고 sal*12 는 sal에 12를 곱한수를 구하기위해서이다. 

 NULL값이 들어가있다면 아무런 값도 출력되지 않습니다. 

그래서 NVL(칼럼명,들어갈값)으로 0을 넣어줍니다 

NVL(SAL,0);



컬럼이름이 다른걸로 변경하고 싶을땐 AS명령어를 사용합니다.

EX)SELECT ENAME, SAL*12+NVL(COMM.0) AS ANNSAL ;

이러면 두번쨰 SAL*12+....가 ANNSAL로 출력이 됩니다. 

AS는 생략이 가능하며 한글역시 가능합니다. 

'Oracle' 카테고리의 다른 글

오라클 SQL *PLUS SQLPLUS 음.  (0) 2014.11.11
오라클 CONCATENATION ,DISTINCT (중복금지)  (0) 2014.11.11
오라클의 데이터형 ORACLE 데이터  (0) 2014.11.11
데이터 딕셔너리  (0) 2014.11.11
SQL 계정생성 복구  (0) 2014.11.11
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,