๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT์ž๊ฒฉ์ฆ ๊ณต๋ถ€/์ •๋ณด์ฒ˜๋ฆฌ์‚ฐ์—…๊ธฐ์‚ฌ ํ•„๊ธฐ

[์ •๋ณด์ฒ˜๋ฆฌ์‚ฐ์—…๊ธฐ์‚ฌ ๊ณผ์ •ํ‰๊ฐ€ํ˜• - ํ•„๊ธฐ] SQL ํ™œ์šฉ

by yunamom 2022. 6. 13.
๋ฐ˜์‘ํ˜•

โœจ๊ธฐ๋ณธ SQL ์ž‘์„ฑํ•˜๊ธฐ 

๊ฐ€. DDL(๋ฐ์ดํ„ฐ ์ •์˜์–ด)

: DDL(Data Definition Language)์€ `๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๋Š” ์–ธ์–ด'๋กœ์„œ BMS์—์„œ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ผ๊ณ  ํ•œ๋‹ค.

(๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡(ํ…Œ์ด๋ธ”)์„ ์ •์˜ํ•˜๋Š” ์–ธ์–ด)

โ€‹

1) DDL ๊ด€๋ จ ์šฉ์–ด

๊ฐ€) ์Šคํ‚ค๋งˆ(Schema) : DBMS ํŠน์„ฑ๊ณผ ๊ตฌํ˜„ ํ™˜๊ฒฝ์„ ๊ฐ์•ˆํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

๋‚˜) ๋„๋ฉ”์ธ(Domain) : ­์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„

๋‹ค) ํ…Œ์ด๋ธ”(Table) : ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณต๊ฐ„

๋ผ) ๋ทฐ(View) : ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌผ๋ฆฌ ํ…Œ์ด๋ธ”์—์„œ ์œ ๋„๋˜๋Š” ๊ฐ€์ƒ์˜ ๋…ผ๋ฆฌ ํ…Œ์ด๋ธ”

๋งˆ) ์ธ๋ฑ์Šค(Index) : ๊ฒ€์ƒ‰์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

โ€‹

2) DDL ๋ช…๋ น์–ด

๊ฐ€) CREATE : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ

๋‚˜) ALTER : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ธŒ์ ํŠธ ๋ณ€๊ฒฝ

๋‹ค) DROP : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ธŒ์ ํŠธ ์‚ญ์ œ

 

3) DDL ํ™œ์šฉ ์˜ˆ์ œ

 
CREATE TABLE ๊ณ ๊ฐ (
    ๊ณ ๊ฐID int NOT NULL,
    ๊ณ ๊ฐ๋ช… varchar(10),
    ์ ๋ฆฝ๊ธˆ varchar(10),
    PRIMARY KEY (๊ณ ๊ฐID)
);

CREATE TABLE ๊ตฌ๋งค (
    ๊ณ ๊ฐID int NOT NULL,
    ๊ตฌ๋งค์ผ์ž varchar(10),
    ๊ฒฐ์žฌ๋ฐฉ์‹ varchar(10),
    ISBN varchar(10),
    PRIMARY KEY (๊ณ ๊ฐID),
    FOREIGN KEY (๊ณ ๊ฐID) REFERENCES ๊ณ ๊ฐ(๊ณ ๊ฐID) ON DELETE CASCADE
);

โ€ป ๋ชจ๋“  ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰ : SELECT * FROM tab;
โ€ป ํ…Œ์ด๋ธ” ํ•„๋“œ/์†์„ฑ ํ™•์ธ(์˜ค๋ผํด) : DESC ํ…Œ์ด๋ธ”๋ช…;
โ€ป  ์ž๋™ ์ฆ๊ฐ€ : AUTO_INCREMENT
โ€ป  ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ™•์ธ  : DESC ๊ณ ๊ฐ

โ€ป  ์ œ์•ฝ์กฐ๊ฑด ( CONSTRAINT ) : ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ์ œํ•œ๋œ ์กฐ๊ฑด์„ ์˜๋ฏธํ•จ.
  ex) CONSTRAINT ๊ณ ๊ฐ_๊ตฌ๋งค_fk FOREIGN KEY (๊ณ ๊ฐID) REFERENCES ๊ณ ๊ฐ(๊ณ ๊ฐID) 
   - NOT NULL : NULL๊ฐ‘์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
   - UNIQUE : ์ค‘๋ณต๋œ ๊ฐ’์„ ๊ฐ€์งˆ์ˆ˜ ์—†๋Š” ์œ ์ผํ•œ ๊ฐ’์ด๋‹ค.
   - CHECK : ์กฐ๊ฑด์— ๋งž๋Š” data๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.
   - PRIMARY KEY : ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ด์•ผํ•˜๋ฉฐ, ์œ ์ผํ•œ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค.
   - FOREIGN KEY : ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ํ‚ค๊ฐ’์„ ์ฐธ์กฐํ•œ๋‹ค.
   - DEFAULT : ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.


ALTER TABLE ๊ณ ๊ฐ ADD ๋ฉ”์ผ varchar(255);
ALTER TABLE ๊ณ ๊ฐ DROP COLUMN ๋ฉ”์ผ;


DROP TABLE ๊ณ ๊ฐ;

๋‚˜. DML (๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด)

: ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ DML(Data Manipulation Language)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์กฐ์ž‘์€ ๋ฐ์ดํ„ฐ ๊ด€์ ์—์„œ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค

โ€‹

1) DML ๋ช…๋ น์–ด

๊ฐ€) INSERT : ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ์‚ฝ์ž…

๋‚˜) SELECT : ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ์กฐํšŒ

๋‹ค) UPDATE : ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝ

๋ผ) DELETE : ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ์‚ญ์ œ

 

2) DML ํ™œ์šฉ ์˜ˆ์ œ

INSERT INTO ๊ณ ๊ฐ (๊ณ ๊ฐID, ๊ณ ๊ฐ๋ช…, ์ ๋ฆฝ๊ธˆ)
VALUES ('1', 'ํ™๊ธธ๋™', '100');

โ€ป ์‹œํ€€์Šค(custno_seq)๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ
INSERT INTO ๊ณ ๊ฐ VALUES (custno_seq.nextval, 'ํ™๊ธธ๋™', '200');


SELECT * FROM ๊ณ ๊ฐ;

SELECT ๊ณ ๊ฐ๋ช…, ์ ๋ฆฝ๊ธˆ FROM ๊ณ ๊ฐ
WHERE ๊ณ ๊ฐID=1;

โ€ป ๋ชจ๋“  ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰ : SELECT * FROM tab;


UPDATE ๊ณ ๊ฐ
SET ๊ณ ๊ฐ๋ช…= '์žฅ๋ฐœ์žฅ', ์ ๋ฆฝ๊ธˆ= '1000'
WHERE ๊ณ ๊ฐID = 1;

โ€‹
DELETE FROM ๊ณ ๊ฐ WHERE ๊ณ ๊ฐID=1;

๋‹ค. DCL (๋ฐ์ดํ„ฐ ์ œ์–ด์–ด)

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ด์™ธ์˜ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ์กฐ์ž‘ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” SQL ๋ช…๋ น์„ DCL(Data Control Language)์ด๋ผ๊ณ  ํ•œ๋‹ค.

โ€‹

1) DCL ์ œ์–ด ๋Œ€์ƒ

๊ฐ€) ์‚ฌ์šฉ์ž ๊ถŒํ•œ : ์‚ฌ์šฉ์ž๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒ๋ฆฌ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ์ž‘์—…

๋‚˜) ํŠธ๋žœ์žญ์…˜ : ์•ˆ์ „ํ•œ ๊ฑฐ๋ž˜ ๋ณด์žฅ์œผ๋กœ ๋™์‹œ์— ๋‹ค์ˆ˜์˜ ์ž‘์—…์„ ๋…๋ฆฝ์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ƒํ˜ธ ์ž‘์šฉ ๋‹จ์œ„

โ€‹

2) DCL ๋ช…๋ น์–ด

๊ฐ€) GRANT : ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ถ€์—ฌ

๋‚˜) REVOKE : ์‚ฌ์šฉ์ž ๊ถŒํ•œ ํšŒ์ˆ˜

๋‹ค) COMMIT : ํŠธ๋žœ์žญ์…˜ ํ™•์ •

๋ผ) ROLLBACK : ํŠธ๋žœ์žญ์…˜ ์ทจ์†Œ

โ€‹

3) DCL ํ™œ์šฉ ์˜ˆ์ œ

โ€ป ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ณ„์ •(์•„์ด๋””)์„ ๋งŒ๋“ฌ : test
  - CONNECT system/1234;
  - CREATE USER test IDENTIFIED BY 1234;


  - GRANT CREATE SESSION TO test;
  - GRANT CREATE TABLE TO test;
  - GRANT SELECT ANY TABLE TO test;
โ€‹
โ€ป ๋ชจ๋“  ๊ถŒํ•œ ๋ถ€์—ฌ : GRANT CONNECT, RESOURCE, DBA TO test;


 - REVOKE CREATE SESSION FROM test;


  - INSERT INTO ๊ณ ๊ฐ VALUE ('2', 'ํ™๊ธธ๋™', '100');
    COMMIT;
  - SELECT * FROM ๊ณ ๊ฐ;


  - DELETE FROM ๊ณ ๊ฐ WHERE ๊ณ ๊ฐ๋ช…='ํ™๊ธธ๋™' ;
    ROLLBACK;
  - SELECT * FROM ๊ณ ๊ฐ;

โ€‹

โ€‹

๋ผ. ๋ฐ์ดํ„ฐ ์‚ฌ์ „

: ๋ฐ์ดํ„ฐ ์‚ฌ์ „(Data Dictionary)์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ์‚ฌ์ „์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ถŒํ•œ์€ ์‹œ์Šคํ…œ์ด ๊ฐ€์ง€๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ฝ๊ธฐ ์ „์šฉ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋ฏ€๋กœ ๋‹จ์ˆœ ์กฐํšŒ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

โ€‹

1) ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ๋‚ด์šฉ

๊ฐ€) ์‚ฌ์šฉ์ž ์ •๋ณด(์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ ๋ฐ ๊ถŒํ•œ ๋“ฑ)

๋‚˜) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ์ •๋ณด(ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค ๋“ฑ)

๋‹ค) ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์ •๋ณด

๋ผ) ํ•จ์ˆ˜, ํ”„๋กœ์‹œ์ € ๋ฐ ํŠธ๋ฆฌ๊ฑฐ ๋“ฑ

โ€‹

2) ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ์˜์—ญ

๊ฐ€) DBA : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ๊ฐ์ฒด ์กฐํšŒ ๊ฐ€๋Šฅ (DBA_๋Š” ์‹œ์Šคํ…œ ์ ‘๊ทผ ๊ถŒํ•œ ์˜๋ฏธ)

๋‚˜) ALL : ์ž์‹ ์˜ ๊ณ„์ •์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์™€ ํƒ€ ๊ณ„์ •์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๋ชจ๋“  ๊ฐ์ฒด ์กฐํšŒ ๊ฐ€๋Šฅ

๋‹ค) USER : ํ˜„์žฌ ์ž์‹ ์˜ ๊ณ„์ •์ด ์†Œ์œ ํ•œ ๊ฐ์ฒด ์กฐํšŒ ๊ฐ€๋Šฅ

โ€‹

3) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜

๊ฐ€) ์ €์žฅ ๋ฐ์ดํ„ฐ : ์ปดํ“จํ„ฐ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ €์žฅ ๋งค์ฒด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ

๋‚˜) ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ : ์ค‘๋ณต์ด ์ตœ์†Œํ™”๋œ ๋ฐ์ดํ„ฐ

๋‹ค) ๊ณต์œ  ๋ฐ์ดํ„ฐ : ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ

๋ผ) ์šด์˜ ๋ฐ์ดํ„ฐ : ์กฐ์ง์˜ ๋ชฉ์ ์„ ์œ„ํ•ด ์กด์žฌ ๊ฐ€์น˜๊ฐ€ ํ™•์‹คํ•˜๊ณ  ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ

 

โ€‹

โœจ๊ณ ๊ธ‰ SQL ์ž‘์„ฑํ•˜๊ธฐ 

๊ฐ€. ์ธ๋ฑ์Šค

: ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์œผ๋กœ์„œ, ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์กฐํšŒ ์†๋„๋ฅผ ๋†’์—ฌ ์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ผ์ปซ๋Š”๋‹ค. ์„ธ๋ถ€์ ์œผ๋กœ ์ •๊ทœํ™”๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์—์„œ ํ•„์š”ํ•œ ์†์„ฑ(์ปฌ๋Ÿผ)๋ถ€๋ถ„๋งŒ ๋จผ์ € ์ถ”์ถœ ํ•˜๊ณ ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. SELECT๋ฌธ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ DDL๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์‹ค์ œ๋กœ ๋งŒ๋“ค์–ด, ์‚ญ์ œํ•œ๋‹ค.

โ€‹

1) ์ธํ…์Šค ์ƒ์„ฑ

CREATE INDEX <index_name> ON <table_name> (<column(s)>);

2) ์ธํ…์Šค ์‚ญ์ œ

DROP INDEX <index name>;

3) ์ธํ…์Šค ๋ณ€๊ฒฝ

ALTER INDEX <index name> ON <table name> (<column(s)>);

โ€‹

๋‚˜. ๋ทฐ(View)

: ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๊ณจ๋ผ์„œ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋งŒ๋“  ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•œ๋‹ค.

โ€‹

1) ๋ทฐ์˜ ์žฅ์  ( ๊ผญ ์•Œ์•„๋‘๊ธฐ )

๊ฐ€) ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ ์ œ๊ณต

: ๋…ผ๋ฆฌ(๊ฐ€์ƒ) ํ…Œ์ด๋ธ”๋กœ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„ ๋จ.

๋‚˜) ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์šฉ์ด

: ๋ณต์ˆ˜ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋‹จ์ˆœํ•œ ์งˆ์˜์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ

๋‹ค) ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ์šฉ์ด

: ์ค‘์š” ๋ณด์•ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ์ค‘์ธ ํ…Œ์ด๋ธ”์—๋Š” ์ ‘๊ทผ ๋ถˆํ—ˆํ•˜๊ณ , ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€ ์ •๋ณด๋งŒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ทฐ์—๋Š” ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณด์•ˆ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ์–ด ๊ฐ€๋Šฅ

โ€‹

2) ๋ทฐ์˜ ๋‹จ์ 

๊ฐ€) ๋ทฐ ์ž์ฒด ์ธ๋ฑ์Šค ๋ถˆ๊ฐ€

: ์ธ๋ฑ์Šค๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ธฐ์— ๋…ผ๋ฆฌ์  ๊ตฌ์„ฑ์ธ ๋ทฐ ์ž์ฒด๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€์ง€ ๋ชปํ•จ.

๋‚˜) ๋ทฐ ์ •์˜ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€

: ๋ทฐ์˜ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋ทฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์žฌ์ƒ์„ฑํ•˜์—ฌ์•ผ ํ•จ.

๋‹ค) ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ œ์•ฝ ์กด์žฌ

: ๋ทฐ์˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์‚ฝ์ž…, ์‚ญ์ œ, ๋ณ€๊ฒฝ ์ œ์•ฝ์ด ์žˆ์Œ.

โ€‹

3) ๋ทฐ ์‚ฌ์šฉ ์˜ˆ์‹œ

CREATE VIEW <๋ทฐ์ด๋ฆ„> AS select * from <ํ…Œ์ด๋ธ”๋ช…>; 
SELECT * FROM <๋ทฐ์ด๋ฆ„>; 
DROP VIEW <๋ทฐ์ด๋ฆ„>;

โ€‹

๋‹ค. ๋‹ค์ค‘ ํ…Œ์ด๋ธ” ๊ฒ€์ƒ‰

: ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ •๊ทœํ™” ๊ธฐ๋ฒ•์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ํ†ตํ•ฉํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ ๋‹ค์ค‘ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์ด ์‚ฌ์šฉ๋œ๋‹ค.

โ€‹

1) ๋‹ค์ค‘ ํ…Œ์ด๋ธ” ์‚ฌ์šฉ ๊ธฐ๋ฒ•

๊ฐ€) ์กฐ์ธ : ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ธฐ๋ฒ•

๋‚˜) ์„œ๋ธŒ์ฟผ๋ฆฌ : SQL๋ฌธ ์•ˆ์— ํฌํ•จ๋œ SQL๋ฌธ ํ˜•ํƒœ์˜ ์‚ฌ์šฉ ๊ธฐ๋ฒ•

๋‹ค) ์ง‘ํ•ฉ์—ฐ์‚ฐ : ํ…Œ์ด๋ธ”์„ ์ง‘ํ•ฉ ๊ฐœ๋…์œผ๋กœ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋ฒ•

โ€‹

2) ์กฐ์ธ

๊ฐ€) ๋‚ด๋ถ€์กฐ์ธ(INNER JOIN)

- ์ •์˜ : ๋‘ ํ…Œ์ด๋ธ”์— ๊ณตํ†ต์œผ๋กœ ์กด์žฌํ•˜๋Š” ํ•„๋“œ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€‹

(1) ๋‚ด๋ถ€์กฐ์ธ(INNER JOIN) : ์กฐ๊ฑด(WHRER)๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ•ฉํ•œ๋‹ค.

[ ๋ช…์‹œ์  ํ‘œํ˜„๋ฒ• ]

SELECT *
FROM ๊ณ ๊ฐ
  INNER JOIN ๊ตฌ๋งค
    ON ๊ณ ๊ฐ.๊ณ ๊ฐ์•„์ด๋”” = ๊ตฌ๋งค.๊ณ ๊ฐ์•„์ด๋””;


[ ์•”๋ฌต์  ํ‘œํ˜„๋ฒ• ]     --->> ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

SELECT *
FROM ๊ณ ๊ฐ, ๊ตฌ๋งค
WHERE ๊ณ ๊ฐ.๊ณ ๊ฐ์•„์ด๋”” = ๊ตฌ๋งค.๊ณ ๊ฐ์•„์ด๋””;
 

โ€ป ํŠน์ง• : ๊ณตํ†ต์˜ ๊ฐ’์„ ๊ฐ€์ง„ ์†์„ฑ(ํ•„๋“œ)์ด ๋‘๋ฒˆ ์ถœ๋ ฅ๋จ. ex) ๊ณ ๊ฐ์•„์ด๋””, ๊ณ ๊ฐ์•„์ด๋””

 

(2) ์ž์—ฐ์กฐ์ธ(NATURAL JOIN) : ๋‚ด๋ถ€์กฐ์ธ์—์„œ ์ค‘๋ณต๋œ ์†์„ฑ์„ ํ•˜๋‚˜๋กœ ์ถœ๋ ฅ (์ค‘๋ณต์ œ๊ฑฐ)

[ NATURAL JOIN ] 
SELECT * FROM ๊ณ ๊ฐ NATURAL JOIN ๊ตฌ๋งค;
 

๋‚˜) ์™ธ๋ถ€์กฐ์ธ(OUTER JOIN)

- ์ •์˜ : ๊ณตํ†ต์˜ ์กด์žฌํ•˜๋Š” ํ•„๋“œ๊ฐ’์ด ์—†์–ด๋„ null ๊ฐ’์œผ๋กœ ๋‘ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋กœ ํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€‹

(1) ์™ผ์ชฝ ์™ธ๋ถ€์กฐ์ธ(LEFT OUTER JOIN)

: ๋‚ด๋ถ€์กฐ์ธ์—์„œ ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๊ธฐ์ค€์œผ๋กœ ๊ณตํ†ต์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋”๋ผ๋„ null๊ฐ’์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.โ€‹

[ LEFT OUTER JOIN ] 
SELECT * FROM ๊ณ ๊ฐ 
	LEFT OUTER JOIN ๊ตฌ๋งค 
ON ๊ณ ๊ฐ.๊ณ ๊ฐ์•„์ด๋”” = ๊ตฌ๋งค.๊ณ ๊ฐ์•„์ด๋””;

 

(2) ์˜ค๋ฅธ์ชฝ ์™ธ๋ถ€์กฐ์ธ(RIGHT OUTER JOIN)

: ๋‚ด๋ถ€์กฐ์ธ์—์„œ ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๊ธฐ์ค€์œผ๋กœ ๊ณตํ†ต์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋”๋ผ๋„ null๊ฐ’์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.โ€‹

[ RIGHT OUTER JOIN ] 
SELECT * FROM ๊ณ ๊ฐ 
	RIGHT OUTER JOIN ๊ตฌ๋งค 
ON ๊ณ ๊ฐ.๊ณ ๊ฐ์•„์ด๋”” = ๊ตฌ๋งค.๊ณ ๊ฐ์•„์ด๋””;

 

3) ์„œ๋ธŒ์ฟผ๋ฆฌ

๊ฐ€) GROUP BY ๋ฅผ ์ด์šฉํ•œ ๊ทธ๋ฃนํ™”

- ์ •์˜ : ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์†์„ฑ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ง‘๊ณ„ํ•ฉ์ˆ˜(sum, avg, count ๋“ฑ)๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ์ดํ„ฐ๋ฅผ ๊ณ„์‚ฐํ•จ.

[ ์ ๋ฆฝ๊ธˆ์— ๋”ฐ๋ฅธ ๊ณ ๊ฐ์ˆ˜ ]

SELECT ์ ๋ฆฝ๊ธˆ, COUNT(*) AS ๊ณ ๊ฐ์ˆ˜
FROM ๊ณ ๊ฐ
GROUP BY ์ ๋ฆฝ๊ธˆ;


[ ์ ๋ฆฝ๊ธˆ์— ๋”ฐ๋ฅธ ๊ณ ๊ฐ์ˆ˜๊ฐ€ 2๋ช…์ด์ƒ์ธ ๊ณ ๊ฐ์ˆ˜

SELECT ์ ๋ฆฝ๊ธˆ, COUNT(*) AS ๊ณ ๊ฐ์ˆ˜
FROM ๊ณ ๊ฐ
WHERE ๊ณ ๊ฐID > 10            // WHERE ์ ˆ์€ ํŠน๋ณ„ํ•œ ์กฐ๊ฑด์ด ์—†์„ ๊ฒฝ์šฐ ์ƒ๋žต๊ฐ€๋Šฅ
GROUP BY ์ ๋ฆฝ๊ธˆ
HAVING COUNT(*) >= 2;     // ๋ฐ˜๋“œ์‹œ GROUP BY์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ทธ๋ฃน์˜ ์กฐ๊ฑด์„ ๋ช…์‹œ(๊ณ ๊ฐ์ˆ˜ ์กฐ๊ฑด)

๋‚˜) SQL ๋‹ค์ค‘์ฒ˜๋ฆฌ๋ฌธ(์„œ๋ธŒ์ฟผ๋ฆฌ)์„ ์ด์šฉํ•œ ๊ทธ๋ฃนํ™”

- ์ •์˜ : ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์†์„ฑ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ง‘๊ณ„ํ•ฉ์ˆ˜(sum, avg, count ๋“ฑ)๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ์ดํ„ฐ๋ฅผ ๊ณ„์‚ฐํ•จ.

[ '20200405'์ผ์ž์— ๊ตฌ๋งคํ•œ ๊ณ ๊ฐ๋ช… ๊ฒ€์ƒ‰ ]

SELECT ๊ณ ๊ฐ๋ช…
FROM ๊ณ ๊ฐ
WHERE ๊ณ ๊ฐID = ( SELECT ๊ณ ๊ฐID
                 FROM ๊ตฌ๋งค
                 WHRER ๊ตฌ๋งค์ผ์ž = '20200405');



[ ๊ตฌ๋งคํ™œ๋™์„ ํ•˜์ง€ ์•Š์€ ๊ณ ๊ฐ์ •๋ณด ๊ฒ€์ƒ‰ ]

SELECT * 
FROM ๊ณ ๊ฐ
WHERE ๊ณ ๊ฐID NOT IN ( SELECT ๊ณ ๊ฐID
                      FROM ๊ตฌ๋งค );

โ€‹

โ€ป ORDER BY ๋ฅผ ์ด์šฉํ•œ ์ •๋ ฌ(๋‚ด๋ฆผ์ฐจ์ˆœ, ์˜ค๋ฆ„์ฐจ์ˆœ)

- ์ •์˜ : ํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœ( 4, 3, 2, 1) ๋˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ(1, 2, 3, 4, 5)์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๊ฒ€์ƒ‰

[๊ณ ๊ฐ ํ…Œ์ด๋ธ”์—์„œ ๊ณ ๊ฐ๋ช…(์˜ค๋ฆ„์ฐจ์ˆœ), ์ ๋ฆฝ๊ธˆ(๋‚ด๋ฆผ์ฐจ์ˆœ)์œผ๋กœ ๊ฒ€์ƒ‰]

SELECT ๊ณ ๊ฐ๋ช…, ์ ๋ฆฝ๊ธˆ
FROM ๊ณ ๊ฐ
ORDER BY ๊ณ ๊ฐ๋ช… ASC, ์ ๋ฆฝ๊ธˆ DESC;

โ€‹โ€‹

4) ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜

์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ์ž์˜ ์˜๋ฏธ
UNION (ํ•ฉ์ง‘ํ•ฉ)์—ฌ๋Ÿฌ ๊ฐœ์˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ๊ฒฐ๊ณผ์—์„œ ๋ชจ๋“  ์ค‘๋ณต์ œ๊ฑฐ
UNION ALL (ํ•ฉ์ง‘ํ•ฉ)์—ฌ๋Ÿฌ ๊ฐœ์˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ์ค‘๋ณต๋œ ํ–‰๋„ ๊ทธ๋Œ€๋กœ ๊ฒฐ๊ณผ๋กœ ํ‘œ์‹œ๋œ๋‹ค. ์ฆ‰, ๋‹จ์ˆœํžˆ ๊ฒฐ๊ณผ๋งŒ ํ•ฉ์ณ๋†“์€ ๊ฒƒ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์งˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ธ(Exclusive)์ผ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐœ๋ณ„ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์„œ๋กœ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, UNION๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•˜๋‹ค. (๊ฒฐ๊ณผ์˜ ์ •๋ ฌ ์ˆœ์„œ์—๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ)
INTERSECT (๊ต์ง‘ํ•ฉ)์—ฌ๋Ÿฌ ๊ฐœ์˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ๊ต์ง‘ํ•ฉ์ด๋‹ค. ์ค‘๋ณต์ œ๊ฑฐ
EXCEPT (์ฐจ์ง‘ํ•ฉ)์•ž์˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ์—์„œ ๋’ค์˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ฐจ์ง‘ํ•ฉ์ด๋‹ค. ์ค‘๋ณต์ œ๊ฑฐ (์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” MINUS๋ฅผ ์‚ฌ์šฉํ•จ)


 โ€ป ์ถœ์ œ๊ธฐ์ค€ ( ์ ์šฉ๊ธฐ๊ฐ„ 2022๋…„ 1์›” 1์ผ - 2024๋…„ 12์›” 31์ผ )

 

โˆ™ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ

โˆ™ ์‘์šฉ SW ๊ธฐ์ดˆ ๊ธฐ์ˆ  ํ™œ์šฉ

โˆ™ ํ™”๋ฉด ๊ตฌํ˜„

โˆ™ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰

โˆ™ SQLํ™œ์šฉ

โˆ™ UI ํ…Œ์ŠคํŠธ

โˆ™ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

์ถ”๊ฐ€ +

โˆ™ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์‘์šฉ (2001020230_19v4)

โˆ™ ๊ฐœ๋ฐœ์ž ํ™˜๊ฒฝ ๊ตฌ์ถ• (LM2001020233_19v4)

LM2001020230_ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์‘์šฉ.pdf
10.06MB
LM2001020233_๊ฐœ๋ฐœ์ž ํ™˜๊ฒฝ ๊ตฌ์ถ•.pdf
9.88MB

 

300x250

์ฝ”๋“œ