๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“Certificate/Engineer Information Processing

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] SQL ์˜ˆ์ƒ๋ฌธ์ œ (1)

by Sun A 2024. 10. 14.

๋ฐ์ดํ„ฐ ์ •์˜์–ด

โ–ถ CREATE INDEX

CREATE INDEX ์ธ๋ฑ์Šค๋ช…
ON ํ…Œ์ด๋ธ”๋ช…(์นผ๋Ÿผ๋ช…1, ์นผ๋Ÿผ๋ช…2, ...)

 

๊ด€๋ จ ๋ฌธ์ œ 1

์‚ฌ์› ํ…Œ์ด๋ธ”์˜ '์‚ฌ๋ฒˆ' ์นผ๋Ÿผ์— ๋Œ€ํ•ด '์‚ฌ๋ฒˆ์ธ๋ฑ์Šค'๋ผ๋Š” ์ธ๋ฑ์Šค ๋ช…์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค. ์•Œ๋งž์€ ์ฟผ๋ฆฌ๋ฅผ ์“ฐ์‹œ์˜ค.

CREATE INDEX ์‚ฌ๋ฒˆ์ธ๋ฑ์Šค
ON ์‚ฌ์›(์‚ฌ๋ฒˆ);

 

โ–ถ CREATE TABLE

CREATE TABLE ํ…Œ์ด๋ธ”๋ช…
(
	์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… PRIMARY KEY,
    ์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… FOREIGN KEY REFERENCES ์ฐธ์กฐํ…Œ์ด๋ธ”,
    ์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… UNIQUE,
    ์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… NOT NULL,
    ์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… CHECK(์กฐ๊ฑด์‹),
    ์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… DEFAULT ๊ฐ’
);

๊ด€๋ จ ๋ฌธ์ œ 2

๋‹ค์Œ์€ ์‚ฌ๋žŒ์ด๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์‚ฌ๋žŒ์ด๋ผ๋Š” ํ…Œ์ด๋ธ”์—๋Š” ์ด๋ฆ„, ์„ฑ๋ณ„์ด๋ผ๋Š” ์ปฌ๋Ÿผ์ด ์žˆ๋Š”๋ฐ, ์ด๋ฆ„์€ VARCHAR(10) ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ , ์„ฑ๋ณ„์€ CHAR(1) ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์„ฑ๋ณ„์€ ์ถ”๊ฐ€๋กœ 'M'๊ณผ 'F' ๊ฐ’๋งŒ ์งˆ ์ˆ˜ ์žˆ๋„๋ก ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ฑธ๊ณ ์ž ํ•œ๋‹ค. ์•Œ๋งž์€ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. 

CREATE TABLE ์‚ฌ๋žŒ
(
์ด๋ฆ„ VARCHAR(10),
์„ฑ๋ณ„ CHAR(1) CHECK(์„ฑ๋ณ„ = 'M' OR ์„ฑ๋ณ„ = 'F')
);

 

โ–ถ CREATE VIEW

CREATE VIEW ํ…Œ์ด๋ธ”๋ช…
AS ๋ทฐ๋ช…
์กฐํšŒ์ฟผ๋ฆฌ;

๊ด€๋ จ ๋ฌธ์ œ 3

์‚ฌ์› ํ…Œ์ด๋ธ”์— ์‚ฌ๋ฒˆ, ์—…๋ฌด, ์ด๋ฆ„, ์ƒ๋…„์›”์ผ, ์„ฑ๋ณ„, ์ž…์‚ฌ์ผ์ด๋ผ๋Š” ์ปฌ๋Ÿผ์ด ์žˆ์„ ๋•Œ ์‚ฌ์› ํ…Œ์ด๋ธ”์—์„œ ์„ฑ๋ณ„ ๊ฐ’์ด 'M'์„ ๊ฐ€์ง„ ์‚ฌ๋ฒˆ, ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋œ '์‚ฌ์›๋ทฐ'๋ผ๋Š” ์ด๋ฆ„์˜ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

CREATE VIEW ์‚ฌ์› AS ์‚ฌ์›๋ทฐ
SELECT ์‚ฌ๋ฒˆ, ์ด๋ฆ„
WHERE ์„ฑ๋ณ„ = 'M';

 

โ–ถ ALTER ADD (์นผ๋Ÿผ ์ถ”๊ฐ€)

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… 
ADD ์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž… [์ œ์•ฝ์กฐ๊ฑด];

๊ด€๋ จ ๋ฌธ์ œ 4

์‚ฌ์› ํ…Œ์ด๋ธ”์— VARCHAR(11) ํƒ€์ž…์œผ๋กœ ์ „ํ™”๋ฒˆํ˜ธ๋ผ๋Š” ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์•Œ๋งž์€ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

ALTER ADD ์‚ฌ์›
ADD ์ „ํ™”๋ฒˆํ˜ธ VARCHAR(11)

 

๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด 

โ–ถ SELECT FROM

SELECT 
FROM ํ…Œ์ด๋ธ”๋ช…
[WEHERE ์กฐ๊ฑด];

๊ด€๋ จ ๋ฌธ์ œ 1

์ „๊ณต์ด๋ผ๋Š” ์นผ๋Ÿผ์ด ์žˆ๋Š” ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ์ „๊ณต๋งŒ ์ถœ๋ ฅํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์“ฐ์‹œ์˜ค. ๋‹จ, ์ „๊ณต๋ช…์€ ์ค‘๋ณต๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

SELECT DISTICT ์ „๊ณต
FROM ํ•™์ƒ

 

โ–ถ WHERE ํŒจํ„ด ์ด์šฉํ•˜๋Š” ์ ˆ ์ž‘์„ฑ ํ•  ๋•Œ LIKE ํ‚ค์›Œ๋“œ

๊ด€๋ จ ๋ฌธ์ œ 2

ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ '์ด'์”จ ์„ฑ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์˜ ํ•™๋ฒˆ์„ ์ถœ๋ ฅํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

SELECT ํ•™๋ฒˆ
FROM ํ•™์ƒ
WHERE ์ด๋ฆ„ LIKE '์ด%';

 

๊ด€๋ จ ๋ฌธ์ œ 3

๊ณ ๊ฐ ํ…Œ์ด๋ธ”์—์„œ ๋‚˜์ด๊ฐ€ 50์‚ด ์ด์ƒ์ด๋ฉด์„œ 59์‚ด ์ดํ•˜์ด๊ณ , ์„ฑ๋ณ„์ด ๋‚จ์ž์ธ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. (๋‹จ, BETWEEN ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.)

SELECT ์ด๋ฆ„
FROM ๊ณ ๊ฐ
WHERE ๋‚˜์ด BETWEEN 50 AND 59 AND ์„ฑ๋ณ„ = '๋‚จ์ž';

 

โ–ถ INSERT ์‚ฝ์ž…๋ฌธ

INSERT INTO ํ…Œ์ด๋ธ”๋ช…(์นผ๋Ÿผ๋ช…)
VALUES ๋ฐ์ดํ„ฐ;

๊ด€๋ จ ๋ฌธ์ œ 4

๋‹ค์Œ์€ ํ…Œ์ด๋ธ” ๋ฐ ์นผ๋Ÿผ๋ช…์— ๋Œ€ํ•œ ๋ช…์„ธ์ด๋‹ค. ์‚ฌ์›๋ช…์ด ํ™๊ธธ๋™, ๋‚˜์ด๊ฐ€ 24, ๊ธ‰์—ฌ๊ฐ€ 300์ธ ์ง์›์„ ์ง์› ํ…Œ์ด๋ธ”์— ์‚ฝ์ž…ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

- ํ…Œ์ด๋ธ”๋ช…: EMPLOYEE(์ง์› ํ…Œ์ด๋ธ”)
- ์ปฌ๋Ÿผ๋ช…: NAME(์‚ฌ์›๋ช…), AGE(๋‚˜์ด), SALARY(๊ธ‰์—ฌ)
INSERT INTO EMPLOYEE(NAME, AGE, SALARY)
VALUES ('ํ™๊ธธ๋™', 24, 300);

 

โ–ถ UPDATE ๋ณ€๊ฒฝ๋ฌธ

UPDATE ํ…Œ์ด๋ธ”๋ช…
SET ์†์„ฑ๋ช…1 = ๋ฐ์ดํ„ฐ1, ์†์„ฑ๋ช…2 = ๋ฐ์ดํ„ฐ2, .... 
WHERE ์กฐ๊ฑด;

๊ด€๋ จ ๋ฌธ์ œ 5

๋‹ค์Œ [ํšŒ์›] ํ…Œ์ด๋ธ”์—์„œ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ N4์ธ ํŠœํ”Œ์˜ ์ „ํ™”๋ฒˆํ˜ธ '010-14'๋กœ ์ˆ˜์ •ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์™„์„ฑํ•˜์‹œ์˜ค.

ํšŒ์›๋ฒˆํ˜ธ ์ด๋ฆ„ ์„ฑ๋ณ„ ์ „ํ™”๋ฒˆํ˜ธ
A1 ํ™๊ธธ๋™ F 010-11
N4  ์ž„๊บฝ์ • M 010-12
UPDATE ํšŒ์›
SET ์ „ํ™”๋ฒˆํ˜ธ = '010-14'
WHERE ํšŒ์›๋ฒˆํ˜ธ = 'N4';

 

๋ฐ์ดํ„ฐ์ œ์–ด์–ด 

โ–ถ GRANT

GRANT ๊ถŒํ•œ ON ํ…Œ์ด๋ธ” TO ์‚ฌ์šฉ์ž;

๊ด€๋ จ ๋ฌธ์ œ 1

๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์žฅ๊ธธ์‚ฐ์—๊ฒŒ 'ํ•™์ƒ' ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด UPDATE ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

GRANT UPDATE ON ํ•™์ƒ TO ์žฅ๊ธธ์‚ฐ;

 

โ–ถ REVOKE

REVOKE ๊ถŒํ•œ ๋ฆฌ์ŠคํŠธ ON ๊ฐœ์ฒด FROM ์‚ฌ์šฉ์ž

๊ด€๋ จ ๋ฌธ์ œ 2

๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์žฅ๊ธธ์‚ฐ์—๊ฒŒ 'ํ•™์ƒ' ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด UPDATE ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ทจ์†Œํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

REVOKE UPDATE ON ํ•™์ƒ FROM ์žฅ๊ธธ์‚ฐ;