yeony._.
๐Ÿข์ฝฉ๋ถ€๐Ÿข
yeony._.
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (99)
    • ๐Ÿ’ปProgramming (91)
      • โ˜•๏ธJava (19)
      • ๐Ÿ’ฝOracle (21)
      • ๐Ÿ‘ฉ‍๐ŸŽจHTML&CSS (12)
      • ๐ŸŽจ ์‹ค์Šต (4)
      • ๐Ÿƒ‍โ™€๏ธJavaScript (25)
      • JSP (8)
      • ๐ŸƒSpring (0)
      • ๐Ÿฅงpython (0)
      • API (0)
      • ๐Ÿ˜ˆGit (1)
    • ๐ŸคซPrivate (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • ๐Ÿ˜ŽProject (4)
      • ๐Ÿ—“๏ธwbs ํ”„๋กœ์ ํŠธ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • HTML #CSS #HTML์ด๋ฏธ์ง€ #HTML์ด๋ฏธ์ง€์—๊ธ€์”จ #HTML์ด๋ฏธ์ง€์—์ด๋ฏธ์ง€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
yeony._.

๐Ÿข์ฝฉ๋ถ€๐Ÿข

[ORACLE] SQL ํ•จ์ˆ˜ - ๋‹จ์ผํ–‰ ํ•จ์ˆ˜
๐Ÿ’ปProgramming/๐Ÿ’ฝOracle

[ORACLE] SQL ํ•จ์ˆ˜ - ๋‹จ์ผํ–‰ ํ•จ์ˆ˜

2022. 8. 5. 00:29

1. ๋‹จ์ผํ–‰ ์ˆซ์ž ํ•จ์ˆ˜

๋‹จ์ผํ–‰ ํ•จ์ˆ˜๋Š” ์ฟผ๋ฆฌ ๋œ ํ…Œ์ด๋ธ” ๋˜๋Š” ๋ทฐ์˜ ๋ชจ๋“  ํ–‰์— ๋Œ€ํ•ด ๋‹จ์ผ ๊ฒฐ๊ณผํ–‰์„ ๋ฐ˜ํ™˜

์ˆซ์ž ํ•จ์ˆ˜ ์ข…๋ฅ˜

์ˆ˜์‹ ์—ฐ์‚ฐ์„ ํ•˜๋Š” ํ•จ์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜๋‚˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ๋Œ€๋ถ€๋ถ„ ์ˆซ์ž ํ˜•ํƒœ


ABS(n)  ์ ˆ๋Œ€๊ฐ’

SELECT ABS(20), ABS(-20) FROM dual; -- 20 -20

 

SIGN(n)  ๋ถ€ํ˜ธ

 SELECT SIGN(20), SIGN(-20), SIGN(0) FROM dual; -- 1 -1 0

 

MOD(n2, n1) 

n2๋ฅผ n1์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ n1์ด 0์ด๋ฉด n2๋ฅผ ๋ฐ˜ํ™˜ 

๋‚ด๋ถ€ ์—ฐ์‚ฐ ๋ฐฉ์‹ : n2 - n1 * FLOOR(n2/n1)

SELECT MOD(11, 4) FROM dual;  -- 3
SELECT MOD(13, 5) FROM dual;  -- 3

 

REMAINDER(n2, n1)

n2๋ฅผ n1์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜

๋‚ด๋ถ€ ์—ฐ์‚ฐ ๋ฐฉ์‹ : n2 - n1 * ROUND(n2/n1)

SELECT REMAINDER(13, 5) FROM dual; -- -2
SELECT REMAINDER(13, 6) FROM dual; -- 1


CEIL(n)

n๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜

SELECT CEIL(20.5), CEIL(-20.5), CEIL(20) FROM dual;  -- 21  -20  20

 

FLOOR(n)

n ์ดํ•˜์˜ ๊ฐ€์žฅ ํฐ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ 

SELECT 13/5 FROM dual; -- 2.6

SELECT 13 - 5 * FLOOR(13/5) FROM dual; --3
SELECT FLOOR(20.5), FLOOR(-20.5), FLOOR(20) FROM dual;  -- 20 -21 20

  
ROUND(n [, integer ]) ๋ฐ˜์˜ฌ๋ฆผ

n์„ ์†Œ์ˆ˜์  ์˜ค๋ฅธ์ชฝ์˜ ์ •์ˆ˜ ์ž๋ฆฌ๋กœ ๋ฐ˜์˜ฌ๋ฆผ 

SELECT ROUND(13/5) FROM dual; -- 3
SELECT 13 - 5 * ROUND(13/5) FROM dual; -- -2 
SELECT ROUND(15.683) FROM dual;  -- 16 : ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ ๋ฐ˜์˜ฌ๋ฆผ
SELECT ROUND(15.683, 0) FROM dual;  -- 16
SELECT ROUND(15.683, 1) FROM dual;  -- 15.7  : ์†Œ์ˆ˜์  ๋‘˜์งธ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•ด์„œ ์†Œ์ˆ˜์  ํ•œ์ž๋ฆฌ ํ‘œํ˜„
SELECT ROUND(15.683, 2) FROM dual;  -- 15.68
SELECT ROUND(15.683, -1) FROM dual;  -- 20. ์Œ์ˆ˜์ด๋ฉด ์†Œ์ˆ˜์  ์™ผ์ชฝ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ

 

TRUNC(n1 [, n2 ])  ์ ˆ์‚ญ

SELECT TRUNC(15.683) FROM dual;  -- 15
SELECT TRUNC(15.683, 1) FROM dual;  -- 15.6
SELECT TRUNC(15.683, 2) FROM dual;  -- 15.68
SELECT TRUNC(15.683, -1) FROM dual;  -- 10

 

-- emp : name, sal, sal์˜ 5๋งŒ์›๊ถŒ ๋งค์ˆ˜, sal 1๋งŒ์›๊ถŒ ๋งค์ˆ˜, ๋‚˜๋จธ์ง€ ๊ธˆ์•ก ์ถœ๋ ฅ
-- ์ถœ๋ ฅ ์ปฌ๋Ÿผ๋ช… : ์ด๋ฆ„ ๊ธ‰์—ฌ 5๋งŒ์›๊ถŒ 1๋งŒ์›๊ถŒ ๊ธฐํƒ€ ๊ธˆ์•ก
-- ์ปฌ๋Ÿผ๋ช…(๋ณ„๋ช…)์€ ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๊ณ  ๊ณต๋ฐฑ๋„ ๋ถˆ๊ฐ€๋Šฅ.

-- ๊ณต๋ฐฑ์ด ์žˆ๊ฑฐ๋‚˜ ๋˜๋Š” ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” "์นผ๋Ÿผ๋ช…"์ฒ˜๋Ÿผ " ์•ˆ์— ๊ธฐ์ˆ 

SELECT name ์ด๋ฆ„, sal ๊ธ‰์—ฌ, 
	TRUNC(sal/50000) "5๋งŒ์›๊ถŒ์ˆ˜", 
	TRUNC(MOD(sal,50000)/10000) AS "1๋งŒ์›๊ถŒ",
	MOD(sal, 10000) ๋‚˜๋จธ์ง€	
FROM emp;

 

SIN(n), COS(n), TAN(n)

์‚ผ๊ฐ ํ•จ์ˆซ๊ฐ’์„ ๋ฐ˜ํ™˜ 

SELECT SIN(30/180*3.14592), 
	COS(30/180*3.14592),
	TAN(30/180*3.14592)
FROM dual;

 

 

EXP(n), POWER(n2, n1), SQRT(n), LOG(n2, n1), LN(n) ๋“ฑ

SELECT POWER(2, 10), SQRT(2) FROM dual;

 

2. ๋‹จ์ผํ–‰ ๋ฌธ์ž ํ•จ์ˆ˜

๋ฌธ์ž ํ•จ์ˆ˜ ์ข…๋ฅ˜
LOWER(char) ์†Œ๋ฌธ์ž

SELECT LOWER('Seoul'), LOWER('KOREA') FROM dual;
SELECT * FROM col WHERE tname = 'emp'; -- ์ถœ๋ ฅ๋˜๋Š” ํ–‰์ด ์—†์Œ
SELECT * FROM col WHERE tname = 'EMP';
-- ์˜ค๋ผํด์€ ๋”•์…”๋„ˆ๋ฆฌ์— ํ…Œ์ด๋ธ”๋ช…(๊ฐ์ฒด๋ช…), ์ปฌ๋Ÿผ๋ช…๋“ฑ์€ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ์ €์žฅ๋œ๋‹ค.
SELECT * FROM col WHERE LOWER(tname) = 'emp';

 

 

UPPER(char) ๋Œ€๋ฌธ์ž

SELECT UPPER('Seoul'), UPPER('korea') FROM dual;
SELECT * FROM col WHERE tname = UPPER('emp');


INITCAP(char) ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์†Œ๋ฌธ์ž๋กœ

SELECT INITCAP('KOREA seoul') FROM dual;   -- Korea Seoul

       
CHR(n [ USING NCHAR_CS ])  ascii ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž

SELECT CHR(75) || CHR(79) FROM dual; --KO

 

ASCII(char)  ์ฒซ ๋ฌธ์ž์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฌธ์ž ์„ธํŠธ์—์„œ 10์ง„์ˆ˜ ์ฝ”๋“œ๊ฐ’

SELECT ASCII('ABC') FROM dual;  -- 65


ASCIISTR(char)  ์˜๋ฌธ์ž์™€ ์ˆซ์ž๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๊ณ  ๋‚˜๋จธ์ง€ non-ascii ๋ฌธ์ž๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ์ถœ๋ ฅ

SELECT ASCIISTR('korea 123'), ASCIISTR('๋Œ€ํ•œ') FROM dual;



SUBSTR(char, position [, substring_length ]) : ํŠน์ • ์œ„์น˜์˜ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
         -- ์ธ๋ฑ์Šค๋Š” 1๋ถ€ํ„ฐ

SELECT SUBSTR('Seoul Korea', 7, 3) FROM dual;  -- Kor
SELECT SUBSTR('Seoul Korea', -5, 3) FROM dual; -- Kor
SELECT SUBSTR('Seoul Korea', 7) FROM dual; -- Korea


 -- emp : 1900~1999๋…„ ์„œ์šธ ์‚ฌ๋žŒ. name, rrn, city, sal

SELECT name, rrn, city,sal
FROM emp
WHERE SUBSTR(rrn,8,1) IN(1,2,5,6) AND city='์„œ์šธ';



-- emp : 2000~ ๋…„๋Œ€ ์‚ฌ๋žŒ. name, rrn, city, sal

SELECT name, rrn, city,sal
FROM emp
WHERE SUBSTR(rrn,8,1) IN(3,4,7,8);


-- emp : 78 ~ 82 ๋…„์ƒ. name, rrn, city, sal

SELECT name, rrn, city, sal
FROM emp
WHERE SUBSTR(rrn,1,2)>='78' AND SUBSTR(rrn,1,2)<='82';


-- emp : ์„œ์šธ์‚ฌ๋žŒ ์ด๋ฉด์„œ ๊น€ ์”จ. name, rrn, city, sal

SELECT name, rrn, city, sal
FROM emp
WHERE city='์„œ์šธ' AND SUBSTR(name,1,1) = '๊น€';

 

-- emp : 80~89 ๋…„์ƒ. name, rrn, city, sal

SELECT name, rrn, city, sal
FROM emp
WHERE SUBSTR(rrn, 1, 1) = '8';

      
-- emp : ๊น€ ์”จ, ์ด ์”จ, ์ตœ ์”จ ์ถœ๋ ฅ. name, rrn, city, sal

SELECT name, rrn, city, sal
FROM emp
WHERE SUBSTR(name,1,1) IN ('๊น€','์ด','์ตœ');

            
-- emp : ํ™€์ˆ˜๋‹ฌ์— ํƒœ์–ด๋‚œ ์‚ฌ๋žŒ ์ค‘ sal ๋‚ด๋ฆผ์ฐจ์ˆœ. name, rrn, city, sal

SELECT name, rrn, city, sal
FROM emp
WHERE MOD(SUBSTR(rrn, 4, 1), 2) = 1
ORDER BY sal DESC;


- INSTR(string , substring [, position [, occurrence ] ])  ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜. ์—†์œผ๋ฉด 0

SELECT INSTR('korea seoul', 'e') FROM dual;  -- 4
-- ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฐ€์žฅ ์ฒ˜์Œ ๋งŒ๋‚˜๋Š” ์œ„์น˜

SELECT INSTR('korea seoul', 'abc') FROM dual;  -- 0
-- ์—†์œผ๋ฉด 0

SELECT INSTR('korea seoul', 'e', 7) FROM dual; -- 8
-- 7๋ฒˆ์งธ ์œ„์น˜(seoul)๋ถ€ํ„ฐ ๊ฒ€์ƒ‰

SELECT INSTR('korea seoul', 'e', 1, 2) FROM dual; -- 8
-- ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋‘๋ฒˆ์งธ ๋‚˜์˜ค๋Š” ์œ„์น˜


-- emp : ์ด๋ฆ„์— '์ด'๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ์‚ฌ๋žŒ. name, tel, sal

SELECT name, tel, sal 
FROM emp 
WHERE INSTR(name,'์ด') > 0;


-- emp : name, tel, tel ์„œ๋ฒ„์Šค๋ฒˆํ˜ธ, tel ๊ตญ๋ฒˆ, tel ๋ฒˆํ˜ธ
-- ์ด๋Ÿฐ ๋ฌธ์ œ๋Š” ์ž๋ฐ”์— ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ 

SELECT name, tel, SUBSTR(tel, 1, INSTR(tel, '-') - 1) ์„œ๋น„์Šค,
	SUBSTR(tel, INSTR(tel, '-') + 1, 
		INSTR(tel, '-', 1, 2) - INSTR(tel, '-') - 1) ๊ตญ๋ฒˆ,
	SUBSTR(tel, INSTR(tel, '-', 1, 2) + 1) ๋ฒˆํ˜ธ
FROM emp;


- LENGTH(char) ๋ฌธ์ž์—ด์˜ ๊ธธ์ด. ํ•œ๊ธ€๋„ 1์ž์”ฉ ์ถœ๋ ฅ

SELECT LENGTH('๋Œ€ํ•œ๋ฏผ๊ตญ') FROM dual; -- 4
SELECT LENGTHB('๋Œ€ํ•œ๋ฏผ๊ตญ') FROM dual;  -- 12. byte ์ˆ˜ ์ถœ๋ ฅ. ํ•œ๊ธ€์€ UTF-8 ๋กœ ์ €์žฅ๋จ

 

- REPLACE(char, search_string [, replacement_string])

SELECT REPLACE('seoul korea', 'seoul', 'busan') FROM dual; -- busan korea
SELECT REPLACE('123455245853', '5') FROM dual; -- ๋ชจ๋“  5 ์ œ๊ฑฐ(12342483)

-- emp ํ…Œ์ด๋ธ”์—์„œ tel์˜ - ์ œ๊ฑฐ

SELECT name, tel, REPLACE(tel, '-') FROM emp;


-- emp ํ…Œ์ด๋ธ”์—์„œ tel์˜ -์„ #์œผ๋กœ ๋ณ€๊ฒฝ

SELECT name, tel, REPLACE(tel, '-', '#') FROM emp;


- CONCAT(char1, char2)  ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ

SELECT '์„œ์šธ' || '๋ถ€์‚ฐ' FROM dual; --์„œ์šธ๋ถ€์‚ฐ
SELECT CONCAT('์„œ์šธ', '๋ถ€์‚ฐ') FROM dual; --์„œ์šธ๋ถ€์‚ฐ


- LPAD(expr1, n [, expr2]) : ๋‚จ๋Š” ์™ผ์ชฝ ๊ณต๊ฐ„์— expr2๋กœ ์ฑ„์›€
- RPAD(expr1, n [, expr2])

SELECT LPAD('korea', 12, '*') FROM dual;  -- *******korea
SELECT RPAD('korea', 12, '*') FROM dual;  -- korea*******

SELECT LPAD('korea', 3, '*') FROM dual;  -- kor
SELECT LPAD('korea', 0, '*') FROM dual;  -- null
SELECT LPAD('๋Œ€ํ•œ', 6, '*') FROM dual;  -- **๋Œ€ํ•œ. LPAD๋Š” ํ•œ๊ธ€์€ 2์นธ์œผ๋กœ ์ฒ˜๋ฆฌ

 

 

-- emp : name, rrn, rrn(์„ฑ๋ณ„ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” * ๋กœ)

SELECT name, rrn, SUBSTR(rrn,1,8) || '******' ์ฃผ๋ฏผ๋ฒˆํ˜ธ
FROM emp;

SELECT name, rrn, RPAD(SUBSTR(rrn,1,8), 14, '*') ์ฃผ๋ฏผ๋ฒˆํ˜ธ
FROM emp;

 

-- emp : name, tel. ๋‹จ ์ „ํ™”๋ฒˆํ˜ธ ๋’ค 3์ž๋ฆฌ๋Š” *๋กœ ์ถœ๋ ฅ. ์ „๋ฒˆ ๊ธธ์ด๋Š” 12, 13 ์ผ์ˆ˜ ์žˆ๋‹ค.

SELECT name, RPAD(SUBSTR(tel,1,LENGTH(tel)-3), LENGTH(tel), '*') tel
FROM emp;


-- last_name์„ 9์ž๋ฆฌ๋กœ ์ถœ๋ ฅํ•˜๋ฉฐ ๋‚จ๋Š” ์ž๋ฆฌ๋Š” ํ•ด๋‹น ์ž๋ฆฟ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋กœ ์ถœ๋ ฅ

WITH tb AS (
	SELECT 'seoul' last_name FROM dual
    	UNION ALL
	SELECT 'haha' last_name FROM dual
		UNION ALL
	SELECT 'no' last_name FROM dual
    ) 
    SELECT RPAD(last_name, 9, SUBSTR('123456789', LENGTH(last_name)+1)) last_name
    FROM tb;

 

SELECT name, sal, LPAD('*', TRUNC(sal/100000), '*')  -- ๊ทธ๋ž˜ํ”„
FROM emp;


      -- ์ด๋ฆ„ ๋งˆํ‚น
         ๊น€ํ˜ธ -> ๊น€*ํ˜ธ, ๋‚˜๊ฐ€๋‹ค -> ๋‚˜*๋‹ค, ํ˜ธ๊ฐ€๋‚˜๋‹ค -> ํ˜ธ**๋‹ค
       
         

'๐Ÿ’ปProgramming > ๐Ÿ’ฝOracle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Oracle] ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ(Data Dictionary)  (0) 2022.08.10
[ORACLE] ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ธ์–ด(DML)  (0) 2022.08.09
[ORACLE] ๋ฐ์ดํ„ฐ ์ •์˜์–ธ์–ด (DDL)  (0) 2022.08.09
[Oracle] ๊ธฐ๋ณธ์ ์ธ SQL  (0) 2022.08.04
[Oracle] DQL - Select  (0) 2022.08.04
    '๐Ÿ’ปProgramming/๐Ÿ’ฝOracle' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ORACLE] ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ธ์–ด(DML)
    • [ORACLE] ๋ฐ์ดํ„ฐ ์ •์˜์–ธ์–ด (DDL)
    • [Oracle] ๊ธฐ๋ณธ์ ์ธ SQL
    • [Oracle] DQL - Select
    yeony._.
    yeony._.
    ํž˜ ์„ธ์ง€๋Š” ์•Œ์•ฝ๐Ÿ’Š๐Ÿ’Š๐Ÿ’Š

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”