[오라클] 여러함수들
본문 바로가기
IT. 컴퓨터

[오라클] 여러함수들

by 솔기잇 2020. 4. 26.

SELECT LPAD('*', 10, '*'),

            LPAD('', 10, ''),

            LPAD('', 10, ''),

            RPAD('', 10, '')

FROM DUAL;

SELECT 'ORACLEARRROCLEARKOREA',

            LTRIM('ORACLEARRROCLEARKOREA','RALEOC'),

            RTRIM('ORACLEARRROCLEARKOREA','RALEOC')

FROM DUAL;

 

SELECT LENGTH('KH정보교육원'), -- 글자 길이

       LENGTHB('KH정보교육원') -- 바이트

FROM DUAL;

 

SELECT '02-2638-0101', -- 하나하나 대칭이 된다.

        TRANSLATE('02-2638-0101'

                 ,'0123456789'

                 ,'영일이삼사오육칠팔구')

FROM DUAL;

 

SELECT 'ORACLE SQL/PLSQL MSSQL SERVER',

        REPLACE('ORACLE SQL/PLSQL MSSQL SERVER'

                ,'SQL'

                ,'sql')

        ,REPLACE('ORACLE SQL/PLSQL MSSQL SERVER'

                ,'SQL'

                ,'에스큐엘')  

FROM DUAL;

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME ='이영애'; 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE '이영애';

-- LIKE 함께 사용하는 % _ Wild 문자라고 부른다.

-- 뜻은 아래와 같다.

-- % 그자가 있든지 없든지 관계없이 모든 것을 뜻한다.

-- _ 반드시 글자갯수가 1개가 와야 하는데 값은 아무 것을

-- 뜻한다.

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE'%'; -- 이씨성만 가진 사람만

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE JUBUN LIKE '7%'; -- '7' 가진 사람만

 

<퀴즈>

-- FROM TBL_NEWSAWON 테이블에서 성이 '' 씨인

-- 직원들의 성을 ''씨로 변경하세요

 

 <>

UPDATE TBL_NEWSAWON

       SET NAME = ''|| SUBSTR(NAME,2)

 WHERE NAME LIKE '%'; -- 이씨만 메모리에 올려라

 

<>

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE'%'; -- ‘ 시작하는 사람

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE'%';  --‘ 끝나는 사람

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE'%%'; -- ‘ 한개이상 나오면 출력

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE '%석규'; -- % 성이 있던지 없던지 석규만 오면 된다.

 

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE '_석규';  -- _ 글자 한개가 아무거나 오고 석규가 오면 된다.

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE '__';  --가운데 글자가 '' 사람

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE NAME LIKE '_%';  -- 성은 아무거나 가운데가 '' 사람

 

 

 

SELECT *

  FROM TBL_NEWSAWON

 WHERE JUBUN LIKE '______1%'  --남자만 추출(1,3으로 시작이 되면 남자)

       OR                      

       JUBUN LIKE '______3%';

 

 

<<우편번호 쿼리문 구성>> 

SELECT *

  FROM 우편테이블

 WHERE 동이름 LIKE '%신흥%' –테이블생성

 

 

 

<테이블 생성>

CREATE TABLE TBL_WATCH

       (   NO     NUMBER(1) ,

          NAME   VARCHAR2(10) ,

          BIGO   VARCHAR2(500)

       );

< 넣기>

INSERT INTO TBL_WATCH

VALUES ( 1, '금시계', '순금 99.99% 고급 금시계'  ) ; 

 

INSERT  INTO TBL_WATCH

VALUES (2, '은시계',  '고객만족도 99.99 획득한 고급 은시계' ) ;

 

 

<<BIGO 란에 99.99% 라는 글자가 들어 있는 행만 추출하세요.  >>

--3가지 같은

SELECT *

  FROM TBL_WATCH

 WHERE BIGO LIKE '%%99.992%%'ESCAPE'2'; -- 2 글자 다음 와일드(%) 소멸시킨다. 

 

SELECT *

  FROM TBL_WATCH

 WHERE BIGO LIKE '%%99.99A%%'ESCAPE'A'; 

 

SELECT *

  FROM TBL_WATCH

 WHERE BIGO LIKE '%%99.99\%%'ESCAPE'\'; -- 대부분 특수기호 \ 많이 쓴다.

 

 

-- ** 숫자 함수 ** -- 

 

SELECT 5+2,

       5-2,

       5*2,

       5/2

  FROM DUAL;

--> 7     3           10         2.5 

 

--MOD

SELECT MOD(5,2) -- 5/2 나누었을 때의 나머지 1

  FROM DUAL;

--> 1 

 

-- ROUND

SELECT 58.647,

       ROUND(58.647), -- 반올림하고 없에 주는

       ROUND(58.647,0),

       ROUND(58.647,1),

       ROUND(58.647,2),

       ROUND(58.647,-1),

       ROUND(58.647,-2)

  FROM DUAL;

--> 58.647        59         59         58.6      58.65   60         100 

 

-- TRUNC

SELECT 58.647,

       TRUNC(58.647), -- 절삭

       TRUNC(58.647,0),

       TRUNC(58.647,1),

       TRUNC(58.647,2),

       TRUNC(58.647,-1),

       TRUNC(58.647,-2)

  FROM DUAL;

--> 58.647        58         58         58.6      58.64   50         0 

 

SELECT 5/2,

       TRUNC(5/2),

       MOD(5,2)

  FROM DUAL;

--> 2.5 2          1 

 

-- SIGN

SELECT SIGN(5-2),

       SIGN(5-5),

       SIGN(2-5) --양수는 1, 음수는 0

  FROM DUAL;

--> 1     0           -1 

 

SELECT LOG(10, 100)

  FROM DUAL;

--> 2 

 

SELECT POWER(3,2)

  FROM DUAL;

--> 9 

 

SELECT SQRT(9),

       SQRT(2),

       SQRT(3)

  FROM DUAL;

--> 3     1.41421...         1.73205... 

 

SELECT SIN(90),

       COS(90),

       TAN(90),

       ASIN(0.05),

       ACOS(0.05),

       ATAN(0.05)

  FROM DUAL;

--> 0.893996   -0.448073        -1.9952004      0.05002085

--          1.520775          0.049958395

 


close