๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ORACLE/SQL

[Oracle] ์˜ค๋ผํด '&' ๋ฌธ์ž ์น˜ํ™˜๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ :: ๋งˆ์ด์ž๋ชฝ

by ๐ŸŒปโ™š 2020. 3. 16.

๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ™•์ธํ•˜๊ณ ... ๊ฐ™์€ ์ฟผ๋ฆฌ๋‚ด์—์„œ ํŠน์ • ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์„๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๋‚˜์š”?

์˜ˆ๋ฅผ๋“ค์–ด ํŠน์ • ๋ถ€์„œ์— ์–ด๋–ค ์ง์›๋“ค์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์€๋ฐ... ์˜์—…๋ถ€์„œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ธ์‚ฌ๋ถ€์„œ์˜ ์ง์›๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด WHERE์ ˆ์˜ Value๊ฐ’์„ ๊ณ„์† ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ํ™•์ธํ•˜์‹œ๋‚˜์š”? ํ•œ ๋‘๊ฐœ๋ฉด ๋ชฐ๋ผ๋„... ๋ถ€์„œ๊ฐ€ 20๊ฐœ์”ฉ ์žˆ๊ณ  ์ด๋Ÿฌ๋ฉด ์ผ์ผํžˆ ์ฟผ๋ฆฌ๋‚ด์šฉ ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ํ™•์ธํ•˜๊ธฐ ํž˜๋“ค์ž–์•„์š”? ๊ทธ๋Ÿด๋•Œ ์น˜ํ™˜๋ณ€์ˆ˜ '&'๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์น˜ํ™˜๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด Oracle์˜ scott ๊ณ„์ •์•ˆ์— ์žˆ๋Š” EMP ํ…Œ์ด๋ธ”์„ ๊ฐ–๊ณ  ์‹ค์Šตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์˜ค๋ผํด ์น˜ํ™˜๋ณ€์ˆ˜

์˜ค๋ผํด '&' ๋ฌธ์ž

1
SELECT * FROM EMP WHERE SAL >= 1000;

EMP ํ…Œ์ด๋ธ”์—์„œ ์›”๊ธ‰์ด 1000์ด์ƒ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 2000์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋„ ๋ณด๊ณ  ์‹ถ๊ณ  3000์ด์ƒ๋งŒ์˜ ๋ฐ์ดํ„ฐ๋„ ๋ณด๊ณ ์‹ถ๊ณ ... ์œ„ ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ณ„์† ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ๋ณด๊ณ ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋„ค์š”. ์ด๋Ÿด๋•Œ '&' ๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด์„œ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์ค๋‹ˆ๋‹ค.

 

 

์ˆซ์žํ˜• ์น˜ํ™˜๋ณ€์ˆ˜

1
SELECT * FROM EMP WHERE SAL >= &SALARY;

'&' ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์น˜ํ™˜๋ณ€์ˆ˜๋ช…์„ ์ง€์ •ํ•ด์ฃผ๊ณ  ์ฟผ๋ฆฌ ์‹คํ–‰์„ ํ•˜๋ฉด ์œˆ๋„์šฐ์—์„œ๋Š” ์ž…๋ ฅ์ฐฝ์ด ๋„์›Œ์ง‘๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ž…๋ ฅ๋ž€์— ์›ํ•˜๋Š” ๊ฐ’์„ ๋„ฃ๊ณ  ํ™•์ธ์„ ์„ ํƒํ•ด์ฃผ๋ฉด ํ•ด๋‹น ์น˜ํ™˜๋ณ€์ˆ˜์˜ ๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฟŒ๋ ค์ค๋‹ˆ๋‹ค.

 

๋ฌธ์žํ˜• ์น˜ํ™˜๋ณ€์ˆ˜

1
SELECT * FROM EMP WHERE JOB = &JOB_NAME;

๋ฌธ์žํ˜•์œผ๋กœ๋œ ๋ฐ์ดํ„ฐ๋„ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์‹ถ์—ˆ์—ˆ๋Š”๋ฐ... ๋ถ€์ ํ•ฉํ•œ ์‹๋ณ„์ž๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ๋ฌธ์žํ˜•์ด ์•„๋‹Œ ์นผ๋Ÿผ๋ช…์œผ๋กœ ์ธ์‹ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

1
SELECT * FROM EMP WHERE JOB = '&JOB_NAME';

์ž‘์€ ๋”ฐ์˜ดํ‘œ ' ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‘˜๋Ÿฌ์ฃผ๋ฉด ํ•ด๋‹น ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ๋ฌธ์žํ˜•์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

 

์น˜ํ™˜๋ณ€์ˆ˜ ์นผ๋Ÿผ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

๋ฌธ์žํ˜•์œผ๋กœ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์ด๋Š” ๋ฌธ์žํ˜•์ด ์•„๋‹Œ ์นผ๋Ÿผ๋ช…์œผ๋กœ ์ธ์‹ํ–ˆ๊ธฐ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ์„ ์นผ๋Ÿผ์„ ์œ ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ” ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ• ๊นŒ์š”?

 

1
SELECT EMPNO, ENAME, &COL_NAME FROM EMP;

COL_NAME์ด๋ผ๋Š” ์น˜ํ™˜๋ณ€์ˆ˜๋ฅด ์นผ๋Ÿผ๋ช…์œผ๋กœ ์‚ฌ์šฉํ•ด๋ดค์Šต๋‹ˆ๋‹ค. SAL ์นผ๋Ÿผ์˜ ์ •๋ณด๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ์ฐฝ์— SAL์„ ์ž…๋ ฅํ–ˆ๋”๋‹ˆ ์ด์ƒ์—†์ด ํ•ด๋‹น ์—ด์˜ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์นผ๋Ÿผ์„ ์น˜ํ™˜๋ณ€์ˆ˜์— ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‚ด์šฉ์„ ์•Œ๊ฒŒ๋˜๊ณ ๋‚˜์„œ ๋”ฑ ํ•œ๊ฐ€์ง€๊ฐ€ ๋จธ๋ฆฌ์†์œผ๋กœ ๋– ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋ณต์žกํ•˜๊ณ  ๊ธด ์ฟผ๋ฆฌ์—์„œ ์นผ๋Ÿผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์น˜ํ™˜๋ณ€์ˆ˜์— ๋„ฃ์–ด์„œ ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ๋ณด๋ฉด ์ง„์งœ ํŽธํ•˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ....

 

1
SELECT EMPNO, ENAME, &COL_NAME FROM EMP ORDER BY &COL_NAME;

๊ทธ๋ž˜์„œ ํ•ด๋‹น ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋Š˜๋ ค์„œ ์ž‘๋™์ด ๊ฐ€๋Šฅํ•œ์ง€.. ํ™•์ธํ•ด๋ดค๋Š”๋ฐ... ์ง€์ •ํ•œ ์น˜ํ™˜๋ณ€์ˆ˜๋งˆ๋‹ค ์ž…๋ ฅ์ฐฝ์ด ๋„์›Œ์ง€๋ฉด์„œ ๋ชจ๋‘ ์ž…๋ ฅํ–ˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ๋งŒ ๋˜๋”๋ผ๋„ ์—…๋ฌด๊ฐ€ ๋งŽ์ด ํŽธํ•ด์ง€๊ธด ํ–ˆ๋Š”๋ฐ... ์ผ์ผํžˆ ๋˜ ์ž…๋ ฅํ•ด์ฃผ๋Š” ๊ท€์ฐฎ์€ ์—…๋ฌด๊ฐ€ ๋˜ ์ƒ๊ฒจ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ํ•œ๋ฒˆ ์„ ์–ธํ•˜๋ฉด ํ•ด๋‹น ์„ธ์…˜์—์„œ ๊ณ„์† ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ค๋ผํด '&&'  ๋ฌธ์ž

1
SELECT EMPNO, ENAME, &&COL_NAME FROM EMP ORDER BY &COL_NAME;

๊ฐ€์žฅ ์ฒ˜์Œ์— ์˜ค๋Š” ์น˜ํ™˜๋ณ€์ˆ˜์— '&' ๋ฌธ์ž๋ฅผ 2๊ฐœ ์‚ฌ์šฉํ•˜์—ฌ '&&' ๋ฌธ์ž๋กœ ๋งŒ๋“ค์–ด์ค˜์„œ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ๋ฒˆ์˜ ์ž…๋ ฅ์ฐฝ์—์„œ ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น ์„ธ์…˜์—์„œ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์—ฌ๋Ÿฌ ์กฐ๊ฑด์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋ณผ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๋ฌธ๋“ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ... ํ•ด๋‹น ์„ธ์…˜์—์„œ ์น˜ํ™˜๋ณ€์ˆ˜๊ฐ€ ๊ณ„์† ์ €์žฅ๋˜๋ฉด... ๋‹ค์‹œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ด์„œ ๋‹ค๋ฅธ ํ–‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ์‹ถ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ๋ ค๋ฉด ์น˜ํ™˜๋ณ€์ˆ˜๋ช…์„ ๊ณ„์† ๋ฐ”๊ฟ”์ค˜์•ผํ•˜๋‚˜??? ์•„๋‹ˆ๋ฉด ์„ธ์…˜์„ ๊ณ„์† ๋Š์—ˆ๋‹ค๊ฐ€ ์ ‘์†ํ•ด์•ผํ•˜๋‚˜?? ๋ญ”๊ฐ€ ๋ถˆํŽธํ•  ๊ฒƒ๊ฐ™์€ ์ƒ๊ฐ์ด ๋“ค์–ด ์ฐพ์•„๋ดค๋Š”๋ฐ ์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์€ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์น˜ํ™˜๋ณ€์ˆ˜ ์„ ์–ธ  DEFINE

1
2
DEFINE COL_NAME = "SAL";
SELECT EMPNO, ENAME, &COL_NAME FROM EMP ORDER BY &COL_NAME;

DEFINE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์น˜ํ™˜๋ณ€์ˆ˜ ํ•ด์ œ UNDEFINE

1
UNDEFINE COL_NAME = "SAL";

DEFINEํ•œ ์น˜ํ™˜๋ณ€์ˆ˜๋ฅผ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ UNDEFINE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์‹œ ์ƒˆ๋กญ๊ฒŒ ๊ฐ™์€ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€