SQL/SQL_์ด๋ก 

SQL ๊ธฐ๋ณธ

2์ฃผ๋…˜ 2023. 9. 8. 09:29
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ SQL ๊ธฐ๋ณธ์ด๋ก 

-- sql-developr ํˆด : DB ์ ‘์† ํˆด(== DB ํด๋ผ์ด์–ธํŠธ ํˆด)
-- oracle ์„ค์น˜     : DB ์„œ๋ฒ„
-- DB์„œ๋ฒ„ <- ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•ด์„œ ์‚ฌ์šฉํ•จ(๊ณ„์ •/์•”ํ˜ธ)
-- system ๊ณ„์ • : ๊ด€๋ฆฌ์ž( ๊ณ„์ •์ƒ์„ฑ, ๊ถŒํ•œ๊ด€๋ฆฌ ๋˜๋Š” DB ํ™˜๊ฒฝ๊ด€๋ฆฌ์šฉ์œผ๋กœ ์‚ฌ์šฉ)
-- scott ๊ณ„์ •  : ๊ฐœ๋ฐœ์ž(์‚ฌ์šฉ์ž) ๊ณ„์ • -> ๋ฒก์—”๋“œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•จ
-- sql-developer ํˆด ๋‹จ์ถ•ํ‚ค :
-- 1) ์ฃผ์„              : ctrl + /
-- 2) ์ปค์„œ ์œ„์น˜ ํ•œ์ค„ ์‹คํ–‰ : ctrl + enter (์•„์ด์ฝ˜ : ์‚ผ๊ฐํ˜•)
-- 3) ์—ฌ๋Ÿฌ ์ค„ ์‹คํ–‰       : f5           (์•„์ด์ฝ˜ : ๋ฌธ์„œ + ์‚ผ๊ฐํ˜•)
-- SQL ์งˆ์˜๋ฌธ(query)ํŠน์ง• : ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์Œ(์˜ค๋ผํด DB : ๋Œ€๋ฌธ์ž๊ฐ€ ์„ฑ๋Šฅ์ด ๋น ๋ฆ„)
-- DB(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) : ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ ๋˜๋Š” ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ๋‹จ์œ„ : ํ…Œ์ด๋ธ”
-- 1) SQL ๋ฌธ : ๊ฒ€์ƒ‰(์กฐํšŒ): SELECT ~ FROM ๋ฌธ
-- ์‚ฌ์šฉ๋ฒ•) SELECT ์ปฌ๋Ÿผ๋ช…, ์ปฌ๋Ÿผ๋ช…2... FROM ํ…Œ์ด๋ธ”๋ช…;
--                * : ๋ชจ๋“  ์ปฌ๋Ÿผ

DEPARTMENT

EMPLOYEE

๐Ÿ“Œ ์ „์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” *

 
SELECT * FROM DEPARTMENT; -- ์ „์ฒด๋ถ€์„œ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ฟผ๋ฆฌ(์งˆ์˜๋ฌธ)
 
 

-- ์˜ˆ์ œ 1) ์‚ฌ์›ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๋ณด๊ธฐ
SELECT * FROM EMPLOYEE;
 

๐Ÿ“Œ SELECT (์ปฌ๋Ÿผ๋ช…....) FROM ํ…Œ์ด๋ธ”๋ช… : ํ•ด๋‹น ํ…Œ์ด๋ธ”์—์„œ ํ•ด๋‹น ์ปฌ๋Ÿผ๋งŒ ์กฐํšŒ


-- ์˜ˆ์ œ 2) ์‚ฌ์›ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ค‘ ENO, ENAME ์ปฌ๋Ÿผ๋งŒ ์ •๋ณด๋ฅผ ๋ณด๊ธฐ
SELECT ENO, ENAME FROM EMPLOYEE;

-- ์˜ˆ์ œ 3) ๋ถ€์„œํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ค‘ DNO, LOC ์ปฌ๋Ÿผ๋งŒ ์กฐํšŒํ•˜๊ธฐ
SELECT DNO, LOC FROM DEPARTMENT;

-- ์˜ˆ์ œ 4) ํžŒํŠธ) ์ปฌ๋Ÿผ์— (/, +, -:) ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
-- ์‚ฌ์›ํ…Œ์ด๋ธ” : EMPLYOEE
-- ์›”๊ธ‰ : SALARY
-- ์‚ฌ์›๋ช… : ENAME
-- ์‚ฌ์› ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›๋ช…๊ณผ 1๋…„ ์—ฐ๋ด‰์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ด๋ณด์„ธ์š”
SELECT ENAME ,(SALARY*12) FROM EMPLOYEE;

-- ์˜ˆ์ œ 5) ์‚ฌ์›ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›์ด๋ฆ„๊ณผ ์ปค๋ฏธ์…˜์„ ๋”ํ•œ ์—ฐ๋ด‰ ๊ตฌํ•˜๊ธฐ
SELECT ENAME,(SALARY*12)+COMMISSION FROM EMPLOYEE;

-- ์˜ˆ์ œ 5-2) ์œ„์˜ ๋ฐ์ดํ„ฐ ๊ฐ’ ๋ณด์ •ํ•˜๊ธฐ
-- NULL ํŠน์ง• : NULL๊ณผ ์‚ฐ์ˆ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์—†์Œ (๊ฒฐ๊ณผ : NULL)
-- ํ•จ์ˆ˜ : ์‚ฌ์šฉ๋ฒ• : NVL(NULL ๊ฐ’์ด ์žˆ๋Š” ์ปฌ๋Ÿผ, ๋ณ€๊ฒฝ๋  ๊ฐ’)
SELECT ENAME,(SALARY*12)+NVL(COMMISSION, 0) FROM EMPLOYEE;

๐Ÿ“Œ alias : ์ปฌ๋Ÿผ์— ๋ณ„์นญ ๋ถ™์ด๊ธฐ


-- ์˜ˆ์ œ 6) ์ปฌ๋Ÿผ์— ๋ณ„๋ช…(๋ณ„์นญ) ๋ถ™์ด๊ธฐ
-- ์‚ฌ์šฉ๋ฒ•) SELECT ์ปฌ๋Ÿผ๋ช… AS ๋ณ„๋ช… FROM ํ…Œ์ด๋ธ”๋ช…;
SELECT ENAME,(SALARY*12)+NVL(COMMISSION, 0) AS ์—ฐ๋ด‰ FROM EMPLOYEE;

-- ์˜ˆ์ œ 6-2) ๋ณ„๋ช…์— ๊ณต๋ฐฑ์„ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ : ""(์Œ๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ)
SELECT ENAME,(SALARY*12)+NVL(COMMISSION, 0) AS "์—ฐ        ๋ด‰" FROM EMPLOYEE;

๐Ÿ“Œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” DISTINCT


-- ์˜ˆ์ œ 7) ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์”ฉ๋งŒ ์ถœ๋ ฅํ•˜๊ฒŒ ํ•˜๋Š” ์˜ˆ์ œ
-- ์‚ฌ์šฉ๋ฒ•) SELECT DISTINCT ์ค‘๋ณต์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช…;
-- ์‚ฌ์›ํ…Œ์ด๋ธ”์— ๋ถ€์„œ๋ฒˆํ˜ธ(DNO)๋ฅผ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์„œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ธฐ
SELECT DISTINCT DNO FROM EMPLOYEE;

-- ๋น„๊ต) ์›๋ณธ DNO ์งˆ์˜๋ฌธ
SELECT DNO FROM EMPLOYEE;

๐Ÿ“Œ ํ…Œ์ŠคํŠธ ํ…Œ์ด๋ธ” DUAL


-- ์˜ˆ์ œ 8) ๊ฐ„๋‹จํ•œ ์‚ฐ์ˆ ์—ฐ์‚ฐ ๋ฐ ํ…Œ์ŠคํŠธ ์šฉ๋„ ํ…Œ์ด๋ธ” ์†Œ๊ฐœ
-- DUAL ํ…Œ์ด๋ธ” : ํ…Œ์ŠคํŠธ์šฉ ํ…Œ์ด๋ธ”
SELECT * FROM DUAL;

-- ํ™œ์šฉ๋„)
SELECT 4*5+1 FROM DUAL;
-- SQL ๋ฌธ์˜ ๋ฌธ์ž์—ด : '๋ฌธ์ž์—ด' : ํ™‘๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ
SELECT 'ํ™๊ธธ๋™' FROM DUAL;
-- ์˜ค๋Š˜ ๋‚ ์งœ : SYSDATE ์†์„ฑ
SELECT SYSDATE FROM DUAL;
๋ฐ˜์‘ํ˜•