2023. 9. 3. 15:53ใ3. Node.js
SQL ์ด๋?
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉ๋๋ ์์ฑ, ์ฝ์ , ์กฐํ ๋ช ๋ น๋ฌธ์ SQL(Structured Query Language)์ด๋ผ๊ณ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์๋ฌด๋ฆฌ ๋ง์ด ๋ชจ์๋๋๋ผ๋ ํ์ฉํ์ง ์์ผ๋ฉด ๊ฐ์น๊ฐ ์์ต๋๋ค.
์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ์ ์์ด์ผ ํ๊ณ , ๋์์์ด ๋ณํ๋ ๋ด์ฉ์ ์ง์์ ์ผ๋ก ์ฝ์ , ์์ , ์ญ์ , ์กฐํ๊ฐ ๊ฐ๋ฅํด์ผํฉ๋๋ค.
๋ชจ๋ ๋ฐ์ดํฐ๋ค์ ๊ณตํต์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ํ์ค ์ธ์ด์ธ SQL์ด ํ์ํ๊ฒ ๋์์ต๋๋ค.
[ DDL(Data Definition Language) ]
DDL(Data Definition Language)์ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ ๋ ์ฌ์ฉํ๋ ์ธ์ด๋ก ํ ์ด๋ธ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑ, ์์ , ์ญ์ ์ ๊ฐ์ ํ์๋ฅผ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
1) CREATE : DATABASE, TABLE, VIEW, INDEX ๋ฑ์ ์์ฑํ ๋ ์ฌ์ฉํฉ๋๋ค.
CREATE DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
CREATE TABLE ํ
์ด๋ธ๋ช
{
์ปฌ๋ผ๋ช
์ปฌ๋ผ์์ฑ
}
2) DROP: DATABASE, TABLE, VIEW, INDEX ๋ฑ์ ์ญ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
DROP DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
DROP TABLE ํ
์ด๋ธ๋ช
;
3) ALTER: DATABASE, TABLE ๋ฑ์ ์์ฑ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํฉ๋๋ค.
ALTER DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
๋ณ๊ฒฝ์กฐ๊ฑด;
ALTER TABLE ํ
์ด๋ธ๋ช
ADD ๋ณ๊ฒฝ์กฐ๊ฑด; -- ํ
์ด๋ธ์ ์๋ก์ด ์ปฌ๋ผ์ ์ถ๊ฐํฉ๋๋ค.
ALTER TABLE ํ
์ด๋ธ๋ช
DROP ๋ณ๊ฒฝ์กฐ๊ฑด; -- ํ
์ด๋ธ์์ ์ปฌ๋ผ์ ์ญ์ ํฉ๋๋ค.
ALTER TABLE ํ
์ด๋ธ๋ช
MODIFY ๋ณ๊ฒฝ์กฐ๊ฑด; -- ํ
์ด๋ธ์ ์ปฌ๋ผ์ ์์ ํฉ๋๋ค.
ALTER TABLE ํ
์ด๋ธ๋ช
RENAME ๋ณ๊ฒฝ์กฐ๊ฑด; -- ํ
์ด๋ธ์ ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
...
[DML (Data Manipulation Language)]
DML(Data Manopulation Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ๋ ์ฌ์ฉํ๋ ์ธ์ด๋ก ๋ฐ์ดํฐ์ ์ ์ฅ, ์ญ์ , ์์ , ์กฐํ์ ๊ฐ์ ํ์๋ฅผ ํฉ๋๋ค.
SELECT :
์ผ๋ฐ์ ์ผ๋ก TABLE์์ ์ํ๋ ๋ฐ์ดํฐ๋ค์ ์กฐํํ ๋ ์ฌ์ฉํฉ๋๋ค. (๐ฅ DB๋ฅผ ๊ด๋ฆฌํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ช ๋ น์ด)
SELECT ์ปฌ๋ผ๋ชฉ๋ก FROM ํ
์ด๋ธ๋ช
[WHERE ์กฐ๊ฑด];
INSERT : TABLE์ ์๋ก์ด ๋ฐ์ดํฐ๋ค์ ์ฝ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
INSERT INTo ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ชฉ๋ก) VALUES (๊ฐ๋ชฉ๋ก);
TABLE์์ ํน์ ํ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ค์ ์ญ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค. (*WHERE ์กฐ๊ฑด์ด ์๋ค๋ฉด, ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ฉ๋๋ค.)
DELETE FROM ํ
์ด๋ธ๋ช
[WHERE ์กฐ๊ฑด];
TABLE์์ ํน์ ํ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ค์ ์์ ํ ๋ ์ฌ์ฉํฉ๋๋ค. (WHERE ์กฐ๊ฑด์ด ์๋ค๋ฉด, ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋ฉ๋๋ค.)
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ = ๊ฐ [WHERE ์กฐ๊ฑด];
[DCL (Data Control Language)]
DCL(Data Control Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ถํ๊ณผ ๊ด๋ จ๋ ๋ฌธ๋ฒ์ผ๋ก ํน์ ์ ์ ๊ฐ DB์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ์ค์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
GRANT
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ ํ ์ ์ ์๊ฒ ์ฌ์ฉ ๊ถํ์ ๋ถ์ฌํ ๋ ์ฌ์ฉํฉ๋๋ค. ๊ถํ์๋ SELECT, INSERT, UPDATE, DELETE ๋ฑ ๋ค์ํ ์ข ๋ฅ๊ฐ ์กด์ฌํฉ๋๋ค.
GRANT [๊ถํ] ON ๊ฐ์ฒด๋ช
TO ์ฌ์ฉ์;
REVOKE
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ ํ ์ ์ ์๊ฒ ์ฌ์ฉ ๊ถํ์ ์ทจ์ํ ๋ ์ฌ์ฉํฉ๋๋ค.
REVOKE [๊ถํ] ON ๊ฐ์ฒด๋ช
FROM ์ฌ์ฉ์;
[ TCL(Transaction Control Language) ]
TCL(Transaction Control Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ํธ๋์ญ์ ์ ๊ด๋ฆฌํ๋ ๋ฌธ๋ฒ์ผ๋ก, ํธ๋์ญ์ ์ ์์๊ณผ ์ข ๋ฃ, ๊ทธ๋ฆฌ๊ณ ๋กค๋ฐฑ์ ์ํํ ๋ ์ฌ์ฉํฉ๋๋ค.
COMMIT
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ด ์ ์์ ์ผ๋ก ์๋ฃ๋์์์ ๊ด๋ฆฌ์์๊ฒ ์๋ ค์ค ๋ ์ฌ์ฉํฉ๋๋ค.
START TRANSACTION;
...
COMMIT;
ROLLBACK
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ด ๋น์ ์์ ์ผ๋ก ์๋ฃ๋์์์ ๊ด๋ฆฌ์์๊ฒ ์๋ ค์ค ๋ ์ฌ์ฉํฉ๋๋ค.
์์ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ด๋ฅผ ์ทจ์ํ๊ณ , ์ด์ ์ํ๋ก ๋๋๋ฆด ๋ ์ฌ์ฉํฉ๋๋ค.
START TRANSACTION;
...
ROLLBACK;
