SQL ๊ฐ๋
๊ตญ์ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด์ด๋ฉฐ ๋ง์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)๋ฅผ ์ง์ํ๋ ์ธ์ด๋ก ์ฑํ
SQL์ ๋ถ๋ฅ
- DDL (Data Define Language, ๋ฐ์ดํฐ ์ ์์ด)
์คํค๋ง, ๋๋ฉ์ธ, ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค๋ฅผ ์ ์, ๋ณ๊ฒฝ, ์ญ์ ํ ๋ ์ฌ์ฉํ๋ ์ธ์ด, update delete ์๋ ๊ฒ์ ์ ์ !
CREATE : ์คํค๋ง, ๋๋ฉ์ธ, ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค๋ฅผ ์ ์
ALTER : ํ ์ด๋ธ์ ๋ํ ์ ์๋ฅผ ๋ณ๊ฒฝ
DROP : ์คํค๋ง, ๋๋ฉ์ธ, ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค๋ฅผ ์ญ์
- DML (Data Manipulation Language, ๋ฐ์ดํฐ ์กฐ์์ด)
์ฌ์ฉ์๊ฐ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ง์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ
SELECT : ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๋ง๋ ํํ ๊ฒ์
INSERT : ํ ์ด๋ธ์ ์๋ก์ด ํํ ์ฝ์
DELETE : ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๋ง๋ ํํ ์ญ์
UPDATE : ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๋ง๋ ํํ์ ๋ด์ฉ ๋ณ๊ฒฝ
- DCL (Data Control Language, ๋ฐ์ดํฐ ์ ์ด์ด)
๋ฐ์ดํฐ์ ๋ณด์, ๋ฌด๊ฒฐ์ฑ, ํ๋ณต, ๋ณํ ์ํ ์ ์ด ๋ฑ์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธ์ด
COMMIT : ๋ช ๋ น์ ์ํด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ค์ ๋ฌผ๋ฆฌ์ ๋์คํฌ๋ก ์ ์ฅํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ์์ ์ด ์ ์์ ์ผ๋ก ์๋ฃ๋์์์ ์๋ ค์ค
ROLLBACK : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ์์ ์ด ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์์ ๋ ์๋์ ์ํ๋ก ๋ณต๊ตฌ
GRANT : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ์ฌ์ฉ ๊ถํ์ ๋ถ์ฌ
DDL
DDL(๋ฐ์ดํฐ ์ ์์ด)๋ DB ๊ตฌ์กฐ, ๋ฐ์ดํฐ ํ์, ์ ๊ทผ ๋ฐฉ์ ๋ฑ DB๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋ ์์ ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ธ์ด
DDL์ ์ข ๋ฅ์๋ CREATE, ALTER, DROP ์ด ์์
CREATE
- CREATE
์คํค๋ง(๋ฐ์ดํธ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ดํ ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๊ฒ)๋ฅผ ์ ์
CREATE SCHEMA ์คํค๋ง๋ช
AUTHORIZATION ์ฌ์ฉ์_id;
์์ ๊ถ์์ ์ฌ์ฉ์ ID๊ฐ '๊น์ด๋ฐ'์ด๊ณ ์คํค๋ง '์ฑ์ '์ ์ ์ํ๋ SQL๋ฌธ
CREATE SCHEMA ์ฑ์ AUTHORIZATION ๊น์ด๋ฐ;
- CREATE DOMIN
๋๋ฉ์ธ์ ์ ์
(๋๊ดํธ๋ ์๋ต ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ)
CREATE DOMAIN ๋๋ฉ์ธ๋ช
[AS] ๋ฐ์ดํฐ_ํ์
[DEFAULT ๊ธฐ๋ณธ๊ฐ]
[CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
CHECK (๋ฒ์๊ฐ)];
์ฑ๋ณ์ '๋จ' ๋๋ '์ฌ'์ ๊ฐ์ด ์ ํด์ง 1๊ฐ ๋ฌธ์๋ก ํํ๋๋ ๋ชจ๋ฉ์ธ GENDER๋ฅผ ์ ์ํ๋ SQL๋ฌธ
CREATE DOMAIN [AS] CHAR(1)
DEFAULT '๋จ'
CONSTRAINT VALID-GENDER CHECK(VALUE IN('๋จ', '์ฌ');
- CREATE TABLE
ํ ์ด๋ธ์ ์ ์
CREATE TABLE ํ
์ด๋ธ๋ช
(์์ฑ๋ช
๋ฐ์ดํฐ_ํ์
[DEFAULT ๊ธฐ๋ณธ๊ฐ] [NOT NULL],...
[, PRIMARAY KEY(๊ธฐ๋ณธํค_์์ฑ๋ช
),...)]
[, UNIQUE(๋์ฒดํค_์์ฑ๋ช
),...)]
[, FOREIGN KEY(์ธ๋ํค_์์ฑ๋ช
, ...)]
REFERENCES ์ฐธ์กฐํ
์ด๋ธ(๊ธฐ๋ณธํค_์์ฑ๋ช
, ...)]
[ON DELETE ์ต์
]
[ON UPDATE ์ต์
]
[, CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
][CHECK(์กฐ๊ฑด์)]);
-> '์ด๋ฆ', 'ํ๋ฒ', '์ ๊ณต', '์ฑ๋ณ', '์๋ ์์ผ'๋ก ๊ตฌ์ฑ๋ ํ์ ํ ์ด๋ธ์ ์ ์ํ๋ SQL๋ฌธ
์ ์ฝ์กฐ๊ฑด
* '์ด๋ฆ'์ NULL ์ผ ์ ์์
* 'ํ๋ฒ'์ ๊ธฐ๋ณธํค
* '์ ๊ณต'์ ํ๊ณผ ํ ์ด๋ธ์ 'ํ๊ณผ ์ฝ๋'๋ฅผ ์ฐธ๊ณ ํ๋ ์ธ๋ํค๋ก ์ฌ์ฉ
* ํ๊ณผ ํ ์ด๋ธ์์ ์ญ์ ๊ฐ ์ผ์ด๋๋ฉด ๊ด๋ จ๋ ํํ๋ค์ ์ ๊ณต ๊ฐ์ NULL๋ก ๋ง๋ฆ
* ํ๊ณผ ํ ์ด๋ธ์์ 'ํ๊ณผ ์ฝ๋'๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ ๊ณต ๊ฐ๋ ๊ฐ์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ
* '์๋ ์์ผ'์ 1980-01-01 ์ดํ์ ๋ฐ์ดํฐ
* ์ ์ฝ ์กฐ๊ฑด์ ์ด๋ฆ์ '์๋ ์์ผ ์ ์ฝ'
* ๊ฐ ์์ฑ์ ๋ฐ์ดํฐ ํ์์ ์ ๋นํ๊ฒ ์ง์
* '์ฑ๋ณ'์ ๋๋ฉ์ธ GENDER ์ฌ์ฉ
CREATE TABLE ํ์
(์ด๋ฆ VARCHAR(15) NOT NULL,
ํ๋ฒ CHAR(8)
์ ๊ณต CHAR(5)
์ฑ๋ณ GENDER
์๋
์์ผ DATE
PRIMARAY KEY(ํ๋ฒ)
FOREIGN KEY(์ ๊ณต)
REFERENCES ํ๊ณผ(ํ๊ณผ์ฝ๋)
ON DELETE SET NULL
ON UPDATE CASCADE
CONSTRAINT ์๋
์์ผ์ ์ฝ CHECK(์๋
์์ผ >= '1980-01-01'));
- CREATE VIEW
๋ทฐ(ํ๋ ์ด์์ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก๋ถํฐ ์ ๋๋๋ ์ด๋ฆ์ ๊ฐ๋ ๊ฐ์ ํ ์ด๋ธ)๋ฅผ ์ ์
SELECT ๋ฌธ์ ๊ฒฐ๊ณผ๋ก์จ ๋ทฐ๋ฅผ ์์ฑ
CREATE VIEW ๋ทฐ๋ช
[(์์ฑ๋ช
[, ์์ฑ๋ช
, ...])]
AS SELECT๋ฌธ;
-> ๊ณ ๊ฐ ํ ์ด๋ธ์์ '์ฃผ์'๊ฐ 'ํฌ์ฒ์'์ธ ๊ณ ๊ฐ๋ค์ '์ด๋ฆ'๊ณผ '์ ํ๋ฒํธ'๋ฅผ 'ํฌํด ๊ณ ๊ฐ'์ด๋ผ๋ ๋ทฐ๋ก ์ ์ํ๋ SQL๋ฌธ
CREATE VIEW ํฌ์ฒ๊ณ ๊ฐ (์ด๋ฅผ, ์ ํ๋ฒํธ)
AS SELECT ์ด๋ฆ, ์ ํ๋ฒํธ
FROM ๊ณ ๊ฐ
WHERE ์ฃผ์ = 'ํฌ์ฒ์';
- CREATE INDEX
์ธ๋ฑ์ค(๊ฒ์ ์๊ฐ์ ๋จ์ถ์ํค๊ธฐ ์ํด ๋ง๋ ๋ณด์กฐ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ)๋ฅผ ์ ์
ASC : ์ค๋ฆ์ฐจ์ ์ ๋ ฌ, ์๋ต ์ ๊ธฐ๋ณธ๊ฐ / DESC : ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
CLUSTER : ์ฌ์ฉ ์ ์ธ๋ฑ์ค๋ฅผ ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค๋ก ์ง์
ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค : ์ธ๋ฑ์ค ํค์ ์์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์ ์ฅ๋๋ ๋ฐฉ์
CREATE [UNIQUE] INDEX ์ธ๋ฑ์ค๋ช
ON ํ
์ด๋ธ๋ช
(์์ฑ๋ช
[ASC[DESC][, ์์ฑ๋ช
[ASC | DESC]])
[CLUSTER];
->๊ณ ๊ฐ ํ ์ด๋ธ์์ UNIQUE ํ ํน์ฑ์ ๊ฐ๋ '๊ณ ๊ฐ๋ฒํธ' ์์ฑ์ ๋ํด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ '๊ณ ๊ฐ๋ฒํธ_idx'๋ผ๋ ์ด๋ฆ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ ์ํ๋ SQL๋ฌธ
CREATE UNIQUE INDEX ๊ณ ๊ฐ๋ฒํธ_idx
ON ๊ณ ๊ฐ (๊ณ ๊ฐ๋ฒํธ DESC);
ALTER
- ALTER TABLE
ํ ์ด๋ธ์ ๋ํ ์ ์๋ฅผ ๋ณ๊ฒฝ
ALTER TABLE ํ
์ด๋ธ๋ช
ADD ์์ฑ๋ช
_๋ฐ์ดํฐ_ํ์
[DEFAULT '๊ธฐ๋ณธ๊ฐ'];
ALTER TABLE ํ
์ด๋ธ๋ช
ALTER ์์ฑ๋ช
[SET DEFAULT '๊ธฐ๋ณธ๊ฐ'];
ALTER TABLE ํ
์ด๋ธ๋ช
DROP COLUMN ์์ฑ๋ช
[CASCADE];
-> ํ์ ํ ์ด๋ธ์ ์ต๋ 3 ๋ฌธ์๋ก ๊ตฌ์ฑ๋๋ 'ํ๋ ' ์์ฑ์ ์ถ๊ฐํ๋ SQL๋ฌธ
ALTER TABLE ํ์ ADD VARCHAR(10) NOT NULL;
DROP
์คํค๋ง, ๋๋ฉ์ธ, ๊ธฐ๋ณธ ํ ์ด๋ธ, ํ ํ ์ด๋ธ, ์ธ๋ฑ์ค, ์ ์ฝ ์กฐ๊ฑด๋ค์ ์ ๊ฑฐํ๋ ๋ช ๋ น๋ฌธ
DROP SCHEMA ์คํค๋ง๋ช
[CASCADE | RESTRICTED];
DROP DOMAIN ๋๋ฉ์ธ๋ช
[CASCADE | RESTRICTED];
DROP TABLE ํ
์ด๋ธ๋ช
[CASCADE | RESTRICTED];
DROP VIEW ๋ทฐ๋ช
[CASCADE | RESTRICTED];
DROP INDEX ์ธ๋ฑ์ค๋ช
[CASCADE | RESTRICTED];
DROP CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
- CASCADE : ์ ๊ฑฐํ ๋ ์ฐธ์กฐ ๊ด๊ณ์ ์๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ก ์ฐ์ ์ญ์
- RESTRICTED : ์ ๊ฑฐํ ๋ ์ฐธ์กฐํ๊ณ ์๋ ํ ์ด๋ธ์ด ์๋ค๋ฉด ์ญ์ ๋ฅผ ์ทจ์
DCL
DCL(๋ฐ์ดํฐ ์ ์ด์ด)๋ ๋ฐ์ดํฐ์ ๋ณด์, ๋ฌด๊ฒฐ์ฑ, ํ๋ณต, ๋ณํ ์ ์ด ๋ฑ์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธ์ด
GRANT
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉ์์๊ฒ ๊ถํ ๋ถ์ฌ
REVOKE
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉ์์๊ฒ ๊ถํ ์ทจ์
COMMIT
ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ๋๋ ํ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์
ROLLBACK
COMMIT ๋์ง ์์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ทจ์ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ ์ํ๋ก ๋๋์ด๋ ๋ช ๋ น
SAVEPOINT
ํธ๋์ญ์ ๋ด์ ROLLBACK ํ ์์น์ธ ์ ์ฅ์ ์ ์ ์ฅ
DML
DML (๋ฐ์ดํฐ ์กฐ์์ด)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ ์ง์์ด๋ฅผ ํตํด ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธ์ด
INSERT
- ํ ์ด๋ธ์ ์๋ก์ด ํํ์ ์ฝ์
INSERT INTO ํ
์ด๋ธ๋ช
([์์ฑ๋ช
1, ์์ฑ๋ช
2, ...]) VALUES (๋ฐ์ดํฐ1, ๋ฐ์ดํฐ2, ...);
- ์ฌ์ ํ ์ด๋ธ์ ์ง์์ ์ฝ์ ํ๋ SQL๋ฌธ
INSERT INTO ์ฌ์(์ด๋ฆ, ๋ถ์) VALUES (ํ๊ธธ๋, ๊ฐ๋ฐ);
- ์ฌ์ ํ ์ด๋ธ์ ์๋ ๊ฐ๋ฐ์ ๋ชจ๋ ํํ์ ๊ฐ๋ฐ ๋ถ์ (์ด๋ฆ, ์์ผ) ํ ์ด๋ธ์ ์ฝ์ ํ๋ SQL ๋ฌธ
INSERT INTO ๊ฐ๋ฐ๋ถ์(์ด๋ฆ, ์ฃผ์) SELECT ์ด๋ฆ, ์ฃผ์ FROM ์ฌ์ WHERE ๋ถ์ = "๊ฐ๋ฐ";
DELETE
- ํ ์ด๋ธ์ ํํ ์ค ํน์ ํํ์ ์ญ์
DELETE FROM ํ
์ด๋ธ๋ช
[WHERE ์กฐ๊ฑด];
- ์ฌ์ ํ ์ด๋ธ์์ ํ๊ธธ์ข ์ ๋ถ์๋ฅผ IT๋ก ๋ณ๊ฒฝํ๋ SQL๋ฌธ
UPDATE ์ฌ์ SET ๋ถ์ = "IT" WHERE ์ด๋ฆ = "ํ๊ธธ๋";
SELECT
ํ ์ด๋ธ์์ ํํ์ ๊ฒ์
SELECT [PREDICATE][ํ
์ด๋ธ๋ช
]์์ฑ๋ช
[AS ๋ณ์นญ][,[ํ
์ด๋ธ๋ช
]์์ฑ๋ช
, ...]
FROM ํ
์ด๋ธ๋ช
[, ํ
์ด๋ธ๋ช
, ...]
[, WINDOW ํจ์ OVER (PARITTON BY ์์ฑ๋ช
1, ์์ฑ๋ช
2, ... ORDER BY ์์ฑ๋ช
3, ์์ฑ๋ช
4, ...) [AS ๋ณ์นญ]]
[WHERE ์กฐ๊ฑด]
[GROUP BY ์์ฑ๋ช
, ์์ฑ๋ช
, ...]
[HAVING ์กฐ๊ฑด]
[ORDER BY ์์ฑ๋ช
[ASC | DESC]];
ORDER BY
: ํน์ ์์ฑ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฒ์
- ASC : ์ค๋ฆ์ฐจ์
- DESC : ๋ด๋ฆผ์ฐจ์
WINDOW ํจ์
: GROUP BY ์ ์ ์ด์ฉํ์ง ์๊ณ ์์ฑ์ ๊ฐ์ ์ง๊ณํ ํจ์๋ฅผ ๊ธฐ์
- PARTITON BY : WINDOW ํจ์๊ฐ ์ ์ฉ๋ ๋ฒ์๋ก ์ฌ์ฉํ ์์ฑ์ ์ง์
- ORDER BY : PARTITION ์์์ ์ ๋ ฌ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ ์์ฑ์ ์ง์
- ROW_NUMBER() : ๊ฐ ๋ ์ฝ๋์ ๋ํ ์ผ๋ จ๋ฒํธ ๋ฐํ
- RANK() : ์์๋ฅผ ๋ฐํํ๋ ๊ณต๋ ์์๋ฅผ ๋ฐ์
- DENSE_RANK() : ์์๋ฅผ ๋ฐํํ๋ ๊ณต๋ ์์๋ฅผ ๋ฐ์ํ์ง ์์
GROUP BY
: ํน์ฑ ์์ฑ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ ๊ฒ์ํ ๋ ์ฌ์ฉ, ๊ทธ๋ฃน ํจ์์ ๊ฐ์ด ์ฌ์ฉ
- COUNT (์์ฑ๋ช ) : ๊ทธ๋ฃน๋ณ ํํ ์๋ฅผ ๊ตฌํ๋ ํจ์
- SUM (์์ฑ๋ช ) : ๊ทธ๋ฃน๋ณ ํฉ๊ณ๋ฅผ ๊ตฌํ๋ ํจ์
- AVG (์์ฑ๋ช ) : ๊ทธ๋ฃน๋ณ ํ๊ท ์ ๊ตฌํ๋ ํจ์
- MAX (์์ฑ๋ช ) : ๊ทธ๋ฃน๋ณ ์ต๋๊ฐ์ ๊ตฌํ๋ ํจ์
- MIN (์์ฑ๋ช ) : ๊ทธ๋ฃน๋ณ ์ต์๊ฐ์ ๊ตฌํ๋ ํจ์
- ROLLUP (์์ฑ๋ช , ์์ฑ๋ช ,...) : ์ธ์๋ก ์ฃผ์ด์ง ์์ฑ์ ๋์์ผ๋ก ๊ทธ๋ฃน๋ณ ์๊ณ๋ฅผ ๊ตฌํ๋ ํจ์
- CUBE (์์ฑ๋ช , ์์ฑ๋ช ,...) : ์ธ์๋ก ์ฃผ์ด์ง ์์ฑ์ ๋์์ผ๋ก ๋ชจ๋ ์กฐํฉ์ ๊ทธ๋ฃน๋ณ ์๊ณ๋ฅผ ๊ตฌํ๋ ํจ์
HAVING
: GROUP BY์ ํจ๊ป ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน์ ์กฐ๊ฑด์ ์ง์
SELECT ์์
...
- ๊ธฐ๋ณธ ๊ฒ์
์ฌ์ ํ ์ด๋ธ์ ์๋ ๋ชจ๋ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT * FROM ์ฌ์;
- ์ฌ์ ํ ์ด๋ธ์์ ๋ถ์๋ฅผ ์ค๋ณต ์์ด ๊ฒ์ํ๋ SQL๋ฌธ
SELECT DISTINCT ๋ถ์ FROM ์ฌ์;
- ์กฐ๊ฑด ์ง์ ๊ฒ์
์ฌ์ ํ ์ด๋ธ ๋ถ์๊ฐ ๊ฐ๋ฐ์ธ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT * FROM ์ฌ์ WHERE ๋ถ์ = "๊ฐ๋ฐ";
- ์ฌ์ ํ ์ด๋ธ์์ ๋ถ์๊ฐ ๊ฐ๋ฐ ํน์ IT์ธ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT * FROM ์ฌ์ WHERE ๋ถ์ = "๊ฐ๋ฐ" OR ๋ถ์ = "IT";
SELECT * FROM ์ฌ์ WHERE ๋ถ์ IN("๊ฐ๋ฐ", "IT");
- ์ฌ์ ํ ์ด๋ธ์์ ๊น ์จ์ธ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT * FROM ์ฌ์ WHERE ์ด๋ฆ LIKE "๊น%";
- ์ฌ์ ํ ์ด๋ธ์์ ๋ถ์๊ฐ NULL์ธ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT * FROM ์ฌ์ WHERE ๋ถ์ IS NULL;
- ์ ๋ ฌ ๊ฒ์ : ORDER BY๋ฅผ ์ด์ฉํ ๊ฒ์
์ฌ์ ํ ์ด๋ธ์์ ์ด๋ฆ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT * FROM ์ฌ์ ORDER BY ์ด๋ฆ ASC;
- ํ์ ์ง์ : ์กฐ๊ฑด์ ์ ๋ค์ SELECT๋ฌธ์ ๋ฃ์ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ฑด์ผ๋ก ๊ฒ์
์ทจ๋ฏธ ํ ์ด๋ธ์์ ์ทจ๋ฏธํ๋์ด ์ถ๊ตฌ์ธ ์ฌ์ ์ด๋ฆ์ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT ์ด๋ฆ FROM ์ฌ์ WHERE ์ด๋ฆ = (SELECT ์ด๋ฆ FROM ์ทจ๋ฏธ WHERE ์ทจ๋ฏธํ๋ = "์ถ๊ตฌ")
- ๋ณต์ ํ ์ด๋ธ : ์ฌ๋ฌ ํ ์ด๋ธ์ ๋์์ผ๋ก ๊ฒ์
๊ฒฝ๋ ฅ์ด 10๋ ์ด์์ธ ์ฌ์์ ์ด๋ฆ, ๋ถ์, ์ทจ๋ฏธํ๋์ ๊ฒ์ํ๋ SQL๋ฌธ
SELECT ์ฌ์.์ด๋ฆ, ์ฌ์.๋ถ์
FROM ์ฌ์, ์ทจ๋ฏธ
WHERE ์ฌ์.๊ฒฝ๋ ฅ >= 10 AND ์ฌ์.์ด๋ฆ = ์ทจ๋ฏธ.์ด๋ฆ;
- WINDOW ํจ์ ์ด์ฉ
์ฌ์ ํ ์ด๋ธ์์ ๋ถ์ ๋ณ๋ก ๊ฒฝ๋ ฅ์ ๋ํ ์ผ๋ จ๋ฒํธ๋ฅผ ๊ตฌํ์ฌ ํ๊ธธ๋์ด๋ผ๋ ์ด๋ฆ์ ๋ถ์ด๋ SQL๋ฌธ
SELECT ๋ถ์, ๊ฒฝ๋ ฅ
ROW_NUMBER() OVER (PARTITION BY ๋ถ์ ORDER BY ๊ฒฝ๋ ฅ DESC) AS ํ๊ธธ๋
FROM ์ฌ์;
- GROUP BY : ๊ทธ๋ฃน ์ง์ ๊ฒ์
์ฌ์ ํ ์ด๋ธ์์ ๋ถ์๋ณ ๊ฒฝ๋ ฅ์ ํ๊ท ์ ๊ตฌํ๋ SQL๋ฌธ
SELECT ๋ถ์, AVG(๊ฒฝ๋ ฅ) AS ํ๊ท
FROM ์ฌ์
GROUP BY ๋ถ์;
- ์งํฉ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ํตํฉ ์ง์
SELECT ์์ฑ๋ช
1, ์์ฑ๋ช
2,...
FROM ํ
์ด๋ธ๋ช
UNION | UNION ALL | INTERSECT | EXCEPT
SELECT ์์ฑ๋ช
1, ์์ฑ๋ช
2,...
FROM ํ
์ด๋ธ๋ช
[ORDER BY ์์ฑ๋ช
[ASC | DESC]];
- UNION : ๋ SELECT ๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ๊ณ ์ค๋ณต๋ ํ์ ํ ๋ฒ๋ง ์ถ๋ ฅ
- UNION ALL : ๋ SELECT ๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ๊ณ ์ค๋ณต๋ ํ๋ ๊ทธ๋๋ก ์ถ๋ ฅ
- INTERSECT : ๋ SELECT ๋ฌธ์ ๊ฒฐ๊ณผ ์ค ๊ณตํต๋ ํ๋ง ์ถ๋ ฅ
- EXCEPT : ์ฒซ ๋ฒ์งธ SELECT ๋ฌธ์ ๊ฒฐ๊ณผ์์ ๋ ๋ฒ์งธ SELECT ๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ธํ ํ์ ์ถ๋ ฅ
'์๊ฒฉ์ฆ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ๋ ผ๋ฆฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ค๊ณ (0) | 2021.02.28 |
---|---|
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - SQL ํ์ฉ (0) | 2021.02.27 |
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ์ธํฐํ์ด์ค ๊ตฌํ (0) | 2021.02.24 |
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ ๊ด๋ฆฌ (0) | 2021.02.24 |
์ ์ฒ๊ธฐ ํ๊ธฐ ์์ฝ - ์ ํ ์ํํธ์จ์ด ํจํค์ง (0) | 2021.02.23 |