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;
'๐ป > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB] ๋กํน(Locking) ๋จ์ , ๋กํน๊ณผ ๋ณํ์ฑ, DB ๋กํน ๊ธฐ๋ฒ (0) | 2025.02.26 |
---|---|
[DB/OracleDB] Oracle DB ์ญ์ ํ ๋ฐ์ดํฐ ๋ณต๊ตฌํ๊ธฐ (TIMESTAMP) (0) | 2025.01.23 |
[DB] MyBatis vs. JPA (2) | 2024.10.16 |
[DB/OracleDB] Oracle Cloud , DBeaver ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ (2) | 2024.09.08 |