<<우편번호 쿼리문 구성>>
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
--*** 날짜 함수 ** --
SELECT SYSDATE,
CURRENT_DATE,
LOCALTIMESTAMP,
CURRENT_TIMESTAMP
FROM DUAL;
--2010-11-25 오전 9:15:19 2010-11-25 오전 9:15:20
--2010-11-25 오전 9:15:20 2010-11-25 오전 9:15:19
<명령프론프트에서>
SQL>
SELECT SYSDATE, CURRENT_DATE FROM DUAL;
SYSDATE CURRENT_ -------- --------
10/11/24 10/11/24
SQL>
SELECT LOCALTIMESTAMP, CURRENT_TIMESTAMP
2 FROM DUAL;
LOCALTIMESTAMP ----------------------------------------------
CURRENT_TIMESTAMP ----------------------------------------------
===============================================================
--SYSDATE
SELECT LAST_DAY(SYSDATE),
NEXT_DAY(SYSDATE,'금'), --돌아오는 금요일
NEXT_DAY(SYSDATE,'수') --돌아오는 수요일
FROM DUAL;
--> 2010-11-30 오후 12:07:40, 2010-11-26 오후 12:07:40,
-- 2010-12-01 오후 12:07:40
SELECT SYSDATE + 1, SYSDATE -1 --하루 전과 후
FROM DUAL;
--> 2010-11-25 오후 12:06:53, 2010-11-23 오후 12:06:53
SELECT ADD_MONTHS(SYSDATE,2),
ADD_MONTHS(SYSDATE,-2)
FROM DUAL;
--> 2011-01-24 오후 12:08:53, 2010-09-24 오후 12:08:53
SELECT (SYSDATE +3) - SYSDATE
FROM DUAL;
--> 3 (일수)
SELECT SYSDATE - 80,
SYSDATE -- 일수
FROM DUAL;
--> 2010-09-05 오후 12:10:55, 2010-11-24 오후 12:10:55
SELECT MONTHS_BETWEEN(SYSDATE, SYSDATE - 80) -- 개월차이
FROM DUAL;
--> 2.61(개월)
“93784” 는 하루의 초값
SELECT TRUNC(TRUNC(TRUNC(93784 / 60) /60 ) /24) AS "일",
TRUNC(TRUNC(93784 / 60) /60 ) AS "시간",
MOD(TRUNC(93784 / 60),60) AS "분",
MOD(93784,60) AS "초"
FROM DUAL;
밑에다가 붙이기
SELECT SYSDATE AS "현재시각",
TO_DATE('2011-04-12 18:00:00'
, 'YYYY-MM-DD HH24:MI:SS') AS "수료일자",
TRUNC(TRUNC(TRUNC(TRUNC(
( TO_DATE('2011-04-12 18:00:00',
'YYYY-MM-DD-HH24:MI:SS')
- SYSDATE) * (24*60*60)
) / 60) /60 ) /24) AS "일",
TRUNC(TRUNC(TRUNC(
( TO_DATE('2011-04-12 18:00:00',
'YYYY-MM-DD-HH24:MI:SS')
- SYSDATE) * (24*60*60)
) / 60) /60 ) AS "시간",
MOD(TRUNC(TRUNC(
( TO_DATE('2011-04-12 18:00:00',
'YYYY-MM-DD-HH24:MI:SS')
- SYSDATE) * (24*60*60)
) / 60),60) AS "분",
MOD(TRUNC(
( TO_DATE('2011-04-12 18:00:00',
'YYYY-MM-DD-HH24:MI:SS')
- SYSDATE) * (24*60*60)
),60) AS "초 남았습니다."
FROM DUAL;
--> 수요일을 구할 때에는 먼저 하루의 초를 먼저 구하고
--> 거꾸로 올라가서 구하면 된다.
SELECT 5.7,
-5.7
FLOOR(5.7), FLOOR(-5.7), --5.7보다 작은 최소의 정수
TRUNC(5.7),CEIL(5.7), --5.7보다 큰 최소의 정수
DEIL(5.7),CEIL(5.7)
FROM DUAL;
--> 수요일까지의 일수를 구할 때는 TRUNC 을 사용해야지
-- FLOOR 를 쓰면 안된다. 왜냐면 -5.7 일 경우 값이 -6 이 나오게 된다.
'IT. 컴퓨터' 카테고리의 다른 글
[오라클] 날짜함수, 변환함수 (0) | 2020.06.18 |
---|---|
[오라클] 옥션 테이블 생성 및 메시지 (0) | 2020.06.16 |
[오라클] LPAD, RPAD, LENGTH, TRANSLATE, LIKE (0) | 2020.06.11 |
[오라클] 단일행함수 - 문자함수, 숫자함수 날짜함수 (0) | 2020.06.09 |
[오라클] null 은 연산 안됨, 문자, 날짜, 연산자, 정렬함수 (0) | 2020.06.06 |