Tiny Bunny
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/DB

[DB/OracleDB] SQL๋ฌธ ์กฐํšŒ, ํ•จ์ˆ˜ ์ •๋ฆฌ

by soonybutter 2024. 9. 9.
728x90

 



SELECT *
FROM EMPLOYEE;
--๋ชจ๋“ ํ–‰ ํ–‰(WHERE ์ดํ•˜ ์กฐ๊ฑด์ด ์—†์œผ๋ฏ€๋กœ) ๊ณผ ๋ชจ๋“  ์ปฌ๋Ÿผ์กฐํšŒ

 
 
· ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž AND, OR ๋Š” ' &&์™€ || ' ๊ฐ€ ์•„๋‹Œ AND, OR๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

-- ๋ถ€์„œ์ฝ”๋“œ๊ฐ€ 'D6'์ด๋ฉด์„œ, ์ด๋ฆ„์ด '์œ ์žฌ์‹'์ธ ์‚ฌ์›์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ
SELECT *
FROM EMPLOYEE
WHERE DEPT_CODE = 'D6' AND EMP_NAME = '์œ ์žฌ์‹';

 
· ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์˜ ๊ฒฐ๊ณผ๋‚˜ ๊ฐ’์„ 'ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ'์œผ๋กœ ๋ฌถ์„๋•Œ ' || ' ์‚ฌ์šฉํ•œ๋‹ค.

SELECT EMP_ID || EMP_NAME  || '์‚ฌ์›' 
FROM EMPLOYEE;

 
· ๋น„๊ต์—ฐ์‚ฐ์ž ์ค‘ '๊ฐ™์ง€์•Š๋‹ค' : != , ^=, <> 
 
 
 

· LIKE ์—ฐ์‚ฐ์ž

: ์ž…๋ ฅํ•œ ์ˆซ์ž, ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ์ •๋ณด๋ฅผ ์กฐํšŒํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž

   1) '_' : ์ž„์˜์˜ ํ•œ ๋ฌธ์ž
   2) '%': ๋ช‡์ž๋ฆฌ ๋ฌธ์ž๋“  ๊ด€๊ณ„์—†์ด

SELECT *
FROM EMPLOYEE
WHERE EMP_NAME LIKE '_์ค‘_'; --์‚ฌ์›์˜ ์ด๋ฆ„์˜ ๊ฐ€์šด๋ฐ์— '์ค‘'์ด ๋“ค์–ด๊ฐ€๋Š” ์ด๋“ค์˜ ๋ชจ๋“  ์นผ๋Ÿผ ์ถœ๋ ฅ
--์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ๊ธฐ์ค€ ์—ฌ์„ฑ์‚ฌ์›์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜์ž.
SELECT *
FORM EMPLOYEE
WHERE ENP_NO LIKE '%-2%'; ๋˜๋Š” WHERE EMP_NO LIKE'______-2______';
--์ด๋ฉ”์ผ ์•„์ด๋””๊ฐ€ 5๊ธ€์ž๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์‚ฌ์›์˜ ์‚ฌ์›๋ช…, ์‚ฌ๋ฒˆ, ์ด๋ฉ”์ผ ์กฐํšŒํ•˜์ž.
SELECT EMP_NAME ์‚ฌ์›๋ช…, EMP_NO ์‚ฌ๋ฒˆ, EMAIL ์ด๋ฉ”์ผ
FROM EMPLOYEE
WHERE EMAIL LIKE '_____%@%';

 
 
 
 

· IN ์—ฐ์‚ฐ์ž

: In(๊ฐ’1, ๊ฐ’2, ๊ฐ’3, ...)
๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ, (์‚ด์ง OR๋Š๋‚Œ ์žˆ์Œ..(?)) ํ•ด๋‹นํ•˜๋Š” ํ–‰์„ ์กฐํšŒํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž

-- ๋ถ€์„œ ์ฝ”๋“œ๊ฐ€ D1 ์ด๊ฑฐ๋‚˜ D6์ธ ๋ถ€์„œ ์ง์› ์ •๋ณด ์กฐํšŒ
SELECT *
FROM EMPLOYEE
--WHERE DEPT_CODE = 'D1' OR DEPT_CODE = 'D6';
WHERE DEPT_CODE IN('D1', 'D2');

 

-- ๋ถ€์„œ ์ฝ”๋“œ๊ฐ€ D1๋„ ์•„๋‹ˆ๊ณ  D6๋„ ์•„๋‹Œ ๋ถ€์„œ์˜ ์ง์› ์กฐํšŒ
SELECT *
FROM EMPLOYEE
WHERE DEPT_CODE NOT IN('D1,'D6');

 
 
 
 

· BETWEEN  A  AND  B

: ๊ฐ’์˜ ๋ฒ”์œ„ ์„ค์ •์‹œ ์‚ฌ์šฉ

SELECT *
FROM EMPLOYEE
WHERE SALARY BETWEEN 3500000 AND 5500000;

 
 
 

 
 
 
 


 

ํ•จ์ˆ˜

 
-DUAL : ์ž„์‹œ ํ…Œ์ด๋ธ”(๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”) , SELECT ๋ฌธ์—์„œ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ํ•  ๋•Œ ์ž„์‹œ ์‚ฌ์šฉ
 
 

· LENGTH() , LENGTHB() ํ•จ์ˆ˜

: LENGTHB() : BYTE ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•ด์ค€๋‹ค.
์˜ค๋ผํด์—์„œ ์˜์–ด ์ด์™ธ์˜ ๋‹ค๋ฅธ์–ธ์–ด๋Š” 3 BYTE. (10๋ฒ„์ „ ์ด์ „์—๋Š” 2BYTE ์ดํ›„์—๋Š” 3BYTE)
 

SELECT LENGTH(EMAIL), EMAIL

FROM EMPLOYEE;

 

 

· INSTR() ํ•จ์ˆ˜

: ์ฃผ์–ด์ง„ ๊ฐ’์—์„œ ์›ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ๋ช‡๋ฒˆ์งธ์ธ์ง€ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ (์ˆซ์ž ๋ฐ˜ํ™˜)

-- INSTR(): ์ฃผ์–ด์ง„ ๊ฐ’์—์„œ ์›ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ๋ช‡๋ฒˆ์งธ์ธ์ง€ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

SELECT INSTR('ABCDE', 'A'), INSTR('ABCDE','C'), INSTR('ABCDE','BC'), INSTR('ABCDE','Z')

FROM DUAL;

--

 
 

· SUBSTR() ํ•จ์ˆ˜

: ์ฃผ์–ด์ง„ ๊ฐ’์—์„œ ํŠน์ •๋ถ€๋ถ„๋งŒ ๊บผ๋‚ด์˜ค๋Š” ํ•จ์ˆ˜

SELECT 'Hello World',

SUBSTR('Hello World', 3, 5), --3๋ฒˆ์งธ์—์„œ 5๋ฒˆ์งธ๋งŒ ๊บผ๋‚ด์˜ด :llo W

SUBSTR('Hello World',4) --4๋ฒˆ์งธ๋ถ€ํ„ฐ ์ญ‰ ๊บผ๋‚ด์˜ด :lo World

FROM DUAL;

 

 
 

· LPAD() / RPAD() ํ•จ์ˆ˜

: ๋นˆ์นธ์„ ์ง€์ •ํ•œ ๋ฌธ์ž๋กœ ์ฑ„์šฐ๋Š” ํ•จ์ˆ˜

SELECT LPAD(EMAIL, 30, '#')

FROM EMPLOYEE; -- 30์œผ๋กœ ํฌ๊ธฐ ์ง€์ •ํ•œ ์นธ์˜ ๋น„๋Š” ์•ž ๋ถ€๋ถ„์„ #์œผ๋กœ ๋‹ค ์ฑ„์›€.

 

SELECT RPAD(EMAIL, 20, '-')

FROM EMPLOYEE; -- 20ํฌ๊ธฐ๋กœ ์ง€์ •ํ•œ ์นธ์˜ ๋น„๋Š” ๋’ท ๋ถ€๋ถ„์„ -์œผ๋กœ ์ฑ„์›€

 

SELECT LPAD(EMAIL, LENGTH(EMAIL)+1 ,'*')

FROM EMPLOYEE; --EMAILํฌ๊ธฐ๋ณด๋‹ค ํ•˜๋‚˜ ํฌ๊ฒŒ ํฌ๊ธฐ ์ง€์ •, ์™ผ์ชฝ์— *์ถ”๊ฐ€

 
 
 

· LTRIM() / RTRIM() ํ•จ์ˆ˜

: ํŠน์ • ์ปฌ๋Ÿผ๊ฐ’, ๊ฐ’์œผ๋กœ๋ถ€ํ„ฐ ํŠน์ • ๋ฌธ์ž๋ฅผ ์ฐพ์•„ ์ง€์›Œ์ฃผ๋Š” ํ•จ์ˆ˜

-- ์ฐพ์„ ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ -> ๊ณต๋ฐฑ(๋นˆ์นธ)์„ ์ง€์šด๋‹ค.

SELECT ' Hello', LTRIM('        Hello'), RTRIM('          Hello'), RTRIM('Hello         ')

FROM DUAL;

 

-- ์ฐพ์„ ๋ฌธ์ž๋ฅผ ์ง€์ •ํ–ˆ์„ ๊ฒฝ์šฐ ->

SELECT LTRIM('012345', '0'), LTRIM('11112345','1'), LTRIM('01111345','1')

FROM DUAL; --๊ฐ๊ฐ 1์ด ์‚ญ์ œ๋œ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋จ

 
 
 
 

· TRIM() ํ•จ์ˆ˜

-- TRIM() : ์–‘๋์„ ๊ธฐ์ค€์œผ๋กœ ํŠน์ •๋ฌธ์ž๋ฅผ ์ฐพ์•„ ์ง€์›Œ์ฃผ๋Š” ํ•จ์ˆ˜

 

-- ๊ธฐ๋ณธํ˜•ํƒœ : ๊ณต๋ฐฑ์ œ๊ฑฐ

SELECT TRIM(' ์˜ค๋ผํด ')

FROM DUAL;

-- ์–‘ ๋์˜ ํŠน์ •๊ฐ’์„ ์ง€์šฐ๊ณ ์ž ํ• ๋•Œ

SELECT TRIM('0' FROM '000123000')

FROM DUAL;

SELECT TRIM(LEADING '0' FROM '000123000') --LTRIM() = LEADING

FROM DUAL;

SELECT TRIM(TRAILING '0' FROM '000123000') --RTRIM() = TRAILING

FROM DUAL;

SELECT TRIM(BOTH '0' FROM '000123000') --=TRIM()

FROM DUAL;

--

 
 
 
 

· LOWER() ํ•จ์ˆ˜ / UPPER() ํ•จ์ˆ˜ / INITCAP() ํ•จ์ˆ˜

:์†Œ๋ฌธ์ž/ ๋Œ€๋ฌธ์ž/ ์•ž๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜
 

SELECT LOWER('NICE TO MEET YOU'), UPPER('nice to meet you'), INITCAP('nice to meet you')

FROM DUAL;   --nice to meet you , NICE TO MEET YOU, Nice To Meet You

 
 
 

· CONCAT() ํ•จ์ˆ˜

:ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์น˜๋Š” ํ•จ์ˆ˜

SELECT CONCAT('์˜ค๋ผํด','๋„ˆ๋ฌด์žฌ๋ฐŒ๋‹ค')

FROM DUAL;

 

SELECT CONCAT(EMP_NAME,'๋‹˜') ์ด๋ฆ„

FROM EMPLOYEE;

 
 
 

· REPLACE() ํ•จ์ˆ˜

:ํŠน์ • ๋ฌธ์ž์—ด์„ ์ฐพ์•„ ๋ณ€๊ฒฝ

SELECT REPLACE('HELLO WORLD', 'HELLO', 'BYE')

FROM DUAL;

 
 
 
 

728x90

TOP

Designed by ํ‹ฐ์Šคํ† ๋ฆฌ