SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ : SQL์ ์ข ๋ฅ์ WHERE๋ฌธ ์ฌ์ฉ๋ฐฉ๋ฒ, GROUP ์ฐ์ฐ, ๋ด์ฅํ ํจ์ ๋ฑ์ ํ์ตํ๋ค
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
1) ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฑ์ฅ
- 1970๋ ๋ ์ฒซ ๋ฑ์ฅ
- ๋ฆด๋ ์ด์ ๊ณผ ๋ฆด๋ ์ด์ ์ ์กฐ์ธ ์ฐ์ฐ์ ํตํด ํฉ์งํฉ, ๊ต์งํฉ, ์ฐจ์งํฉ ๋ฑ์ ๋ง๋ค ์ ์๋ค
2) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์คํ ์ ์ฐจ์ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ํน์ ํํ์ ์๋ฃ๊ตฌ์กฐ๋ก ์ฌ์ฉํ ์ง์ ๋ฐ๋ผ ๊ตฌ๋ถํ ์ ์๋ค. ๊ณ์ธตํ, ๋คํธ์ํฌํ, ๊ด๊ณํ ๋ฑ์ด ์๊ณ , ๊ณ์ธตํ์ ํธ๋ฆฌ, ๋คํธ์ํฌํ์ ์ค๋์ ๋ฉค๋ฒ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค(๊ณ์ธต, ๋คํธ์ํฌ๋ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋๋ค ~ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ตฌ์กฐํ์ ์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์คํ ์ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ํํธ์จ์ด๋ฅผ ์๋ฏธํ๋ค, DBMS
3) ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์งํฉ ์ฐ์ฐ๊ณผ ๊ด๊ณ ์ฐ์ฐ
- ์งํฉ ์ฐ์ฐ
ํฉ์งํฉ Union : ๋ ๊ฐ์ ๋ฆด๋ ์ด์ ์ ํ๋๋ก ํฉ์น๋ ๊ฒ์ด๋ค. ์ค๋ณต ๊ฐ์ ํ๋๋ง ํ์(*Union All : ๋ชจ๋ ํ์)
์ฐจ์งํฉ Difference : ๋ณธ๋ ๋ฆด๋ ์ด์ ์๋ ์กด์ฌํ๊ณ ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์๋ ์กด์ฌํ์ง ์๋ ๊ฒ์ ์กฐํ
๊ต์งํฉ Intersection : ๋ ๊ฐ์ ๋ฆด๋ ์ด์ ๊ฐ ๊ณตํต ๊ฐ ์กฐํ
๊ณฑ์งํฉ Cartesian Product : ์กด์ฌํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํฉํ์ฌ ์ฐ์ฐ
- ๊ด๊ณ ์ฐ์ฐ
์ ํ ์ฐ์ฐ Selection : ๋ฆด๋ ์ด์ ์์ ์กฐ๊ฑด์ ๋ง๋ ํ๋ง์ ์กฐํ
ํฌ์ ์ฐ์ฐ Projection : ๋ฆด๋ ์ด์ ์์ ์กฐ๊ฑด์ ๋ง๋ ์์ฑ๋ง ์กฐํ
๊ฒฐํฉ ์ฐ์ฐ Join : ์ฌ๋ฌ ๋ฆด๋ ์ด์ ์ ๊ณตํต๋ ์์ฑ์ ์ฌ์ฉํด ์๋ก์ด ๋ฆด๋ ์ด์ ์ ๋ง๋ค์ด๋ธ๋ค.
๋๋๊ธฐ ์ฐ์ฐ Division : ๊ธฐ์ค ๋ฆด๋ ์ด์ ์์ ๋๋๋ ๋ฆด๋ ์ด์ ์ด ๊ฐ์ง๊ณ ์๋ ์์ฑ๊ณผ ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ ํ์ ์ถ์ถํ๊ณ ๋๋๋ ๋ฆด๋ ์ด์ ์ ์์ฑ์ ์ญ์ ํ ํ ์ค๋ณต๋๋ ํ์ ์ ๊ฑฐ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฆด๋ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ฆด๋ ์ด์ ์ ์ฌ์ฉํด ์งํฉ ์ฐ์ฐ ๋ฐ ๊ด๊ณ ์ฐ์ฐ์ ์ง์ํด ๋ค์ํ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๋ค
- ๋ฆด๋ ์ด์ ์ ์ต์ข ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์์ ํ ์ด๋ธ๋ก ๋ง๋ค์ด์ง๋ค
๊ธฐ๋ณธ ํค๋ ํ๋์ ํ ์ด๋ธ์์ ์ ์ผ์ฑ๊ณผ ์ต์์ฑ, Not Null์ ๋ง์กฑํ๋ฉด์ ํด๋น ํ ์ด๋ธ์ ๋ํํ๋ ๊ฒ์ด๋ค. ํ ์ด๋ธ์ ํ๊ณผ ์นผ๋ผ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์นผ๋ผ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ํ๋๋ก ์์ฑ์ด๋ผ๊ณ ๋ ํ๋ค. ์ธ๋ ํค๋ ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐธ์กฐ(์กฐ์ธ)ํ๋ ์นผ๋ผ์ด๋ค. ์ธ๋ ํค๋ ๊ด๊ณ ์ฐ์ฐ ์ค Join ํ๊ธฐ์ํด ์ฌ์ฉํ๋ค
+ sql developer ์ค์ต
SQL ์ข ๋ฅ
1) SQL : ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์, ๋ฐ์ดํฐ ์กฐ์, ๋ฐ์ดํฐ ์ ์ด ๋ฑ์ ํ ์ ์๋ ์ ์ฐจํ ์ธ์ด์ด๋ค.
์ข ๋ฅ
- DDL : ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ ์ ์, CREATE, ALTER, DROP, RENAME, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ๋ณ๊ฒฝ, ์ญ์ ํ๋ ๊ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ์ด์ด๋ค.
- DML : ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํํ๋ค. INSERT, UPDATE, DELETE, SELECT, ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ DDL๋ก ์ ์๋๋ฉด ํด๋น ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํํ ์ ์๋ ์ธ์ด
- DCL : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ํ์, GRANT, REVOKE, TRUMCATE, DCL์ DDL๋ก ์ ์๋ ๊ตฌ์กฐ์ ์ด๋ค ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ ์ง ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ.
- TCL : ํธ๋์ ์ ์ ์ด, COMMIT, ROLLBACK, SAVEPOINT
ํธ๋์ ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ ์ฒ๋ฆฌํ๋ ๋จ์
- ํน์ฑ(ACID)
1) ์์์ฑ
- ํธ๋์ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ์ฐ์ ์ ๋ถ๊ฐ ์คํ๋๊ฑฐ๋ ์ ํ ์คํ๋์ง ์์์ผ ํ๋ค(ALL OR NOTTHING)
- ์ฆ, ํธ๋์ ์ ์ ์ฒ๋ฆฌ๊ฐ ์์ ํ ๋๋์ง ์์์ ๊ฒฝ์ฐ๋ ์คํ๋์ง ์์ ์ํ์ ๊ฐ์์ผ ํ๋ค
2) ์ผ๊ด์ฑ
- ํธ๋์ ์ ์คํ ๊ฒฐ๊ณผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๊ฐ ๋ชจ์๋์ง ์์์ผ ํ๋ค
- ํธ๋์ ์ ์คํ ํ์๋ ์ผ๊ด์ฑ์ด ์ ์ง๋์ด์ผ ํ๋ค
3) ๊ณ ๋ฆฝ์ฑ
- ํธ๋์ ์ ์คํ ์ค์ ์์ฑํ๋ ์ฐ์ฐ์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ ๋ค๋ฅธ ํธ๋์ ์ ์ด ์ ๊ทผํ ์ ์๋ค
- ์ฆ, ๋ถ๋ถ์ ์ธ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ํธ๋์ ์ ์ด ๋ณผ ์ ์๋ค
4) ์์์ฑ
- ํธ๋์ ์ ์ด ๊ทธ ์คํ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ๋ณด์ฅ์ด ๋์ด์ผ ํ๋ค
SQL๋ฌธ์ ์คํ ์์ : 3๋จ๊ณ
1) Parsing : SQL๋ฌธ์ ๋ฌธ๋ฒ์ ๊ฒ์ฌํ๊ณ ๊ตฌ๋ฌธ๋ถ์์ ํ๋ค
2) Execution : ๊ตฌ๋ฌธ๋ถ์ ์ดํ SQL๋ฌธ์ ์คํํ๋ค
3) Fetch : SQL๋ฌธ์ด ์คํ๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ค
DDL
1) ํ ์ด๋ธ ์์ฑ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ ์ด๋ธ์ ์์ฑํ๋ค. ํ ์ด๋ธ ์์ฑ์ Create Table๋ฌธ์ ์ฌ์ฉํ๊ณ ํ ์ด๋ธ ๋ณ๊ฒฝ์ Alter Table๋ฌธ์ ์ฌ์ฉํ๋ค. ๋ง์ง๋ง์ผ๋ก ์์ฑ๋ ํ ์ด๋ธ์ ์ญ์ ํ๊ณ ์ถ์ ๋๋ Drop Table๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋ค
cf) Varchar vs Char : Varchar๋ ๊ฐ๋ณํ ~ ๋ฐ์ดํฐ์ ์ฉ๋์ด ๋จ๊ฒ ๋๋ฉด ๋จ๋ ์ฉ๋์ ๋ฉ๋ชจ๋ฆฌ๋ก ํ์ฉํ ์ ์๋ค. Char๋ ๊ณ ์ ํ์ด๋ฏ๋ก ๋ถ๊ฐ๋ฅํ๋ค
2) ๊ธฐ๋ณธ์ ์ธ ํ ์ด๋ธ ์์ฑ
- ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๊ณ ์ถ๋ค๋ฉด, SQL ์ค์ DESC๋ฌธ์ด ์๋ค. DESC๋ฌธ์ ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ๋๋ค. ์ฆ, create table๋ก ์์ฑ๋ ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ๋ณด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค
3) ์ ์ฝ ์กฐ๊ฑด ์ฌ์ฉ
- ๊ธฐ๋ณธ ํค, ์ธ๋ ํค, ๊ธฐ๋ณธ ๊ฐ, not null ๋ฑ์ ํ ์ด๋ธ์ ์์ฑํ ๋ ์ง์ ํ ์ ์๋ค
- ์ธ๋ ํค๋ฅผ ์ง์ ํ๋ ค๋ฉด, ๋จผ์ ๋ง์คํฐ ํ ์ด๋ธ์ด ์์ฑ๋์ด์ผ ํ๋ค. ์ฆ, ์ฌ์๊ณผ ๋ถ์ ํ ์ด๋ธ์์๋ ๋ถ์๊ฐ ๋ง์คํฐ ํ ์ด๋ธ์ด ๋๋ค. ์ฌ์ ํ ์ด๋ธ์ด ๋ถ์ ํ ์ด๋ธ์ depno๋ฅผ ์ฐธ์กฐํด์ผ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ EMP ํ ์ด๋ธ์ ์์ฑํ ๋ constraint๋ฅผ ์ฌ์ฉํด ์ธ๋ ํค์ด๋ฆ์ธ "deptfk"๋ฅผ ์ ๋ ฅ ํ ์ธ๋ ํค๋ฅผ ์์ฑํ๋ค
4) ํ ์ด๋ธ ์์ฑ ์ CASCADE ์ฌ์ฉ
- ํ ์ด๋ธ์ ์์ฑํ ๋ CASCADE ์ต์ ์ ์ฌ์ฉํ ์ ์๋ค. CASCADE ์ต์ ์ ์ฐธ์กฐ๊ด๊ณ๊ฐ ์์ ๊ฒฝ์ฐ ์ฐธ์กฐ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ฐ์ํ ์ ์๋ ๊ฒ์ด๋ค. ๋จผ์ ๋ง์คํฐ ํ ์ด๋ธ์ ์์ฑํ๋ค. ์ฆ, DEPT ํ ์ด๋ธ์ ์์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ค
ON DELETE CASCADE ์ต์ ์ ์์ ์ด ์ฐธ์กฐํ๊ณ ์๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ฉด ์๋์ผ๋ก ์์ ๋ ์ญ์ ๋๋ ์ต์ ์ด๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ์ค์ํ ์ ์๋ค. ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ด๋, ๋ง์คํฐ ํ ์ด๋ธ์๋ ํด๋น ๋ถ์๋ฒํธ๊ฐ ์๋๋ฐ, ์ฌ๋ ์ด๋ธ(์๋ธ) ํ ์ด๋ธ์๋ ํด๋น ๋ถ์๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ฌด๊ฒฐ์ฑ์ด ์๋ฐฐ๋ ๊ฒฝ์ฐ์ด๋ค
(1) ํ ์ด๋ธ๋ช ๋ณ๊ฒฝ์ ALTER TABLE ~ RENAME TO๋ฌธ์ ์ฌ์ฉํ๋ค
(2) ์นผ๋ผ ์ถ๊ฐ : ADD
(3) ์นผ๋ผ ๋ณ๊ฒฝ : ์นผ๋ผ์ ๋ณ๊ฒฝ์ ALTER TABLE ~ MODIFY๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ํ์ ์ ๋ณ๊ฒฝํ๊ณ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ ์๋ ์๋ค. ๋ค๋ง ๋ฐ์ดํฐ ํ์ ์ ๋ณ๊ฒฝํ ๋ ์นผ๋ผ์ ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค
(4) ์นผ๋ผ ์ญ์ : ALTER TABLE ~ DROP COLUMN
(5) ์นผ๋ผ๋ช ๋ณ๊ฒฝ : ALTER TABLE RENAME COLUMN ~ TO
5) ํ ์ด๋ธ ์ญ์
DROP TABLE : ํ ์ด๋ธ์ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ , "CASCADE CONSTRAINT" ์ต์ ์ ์ฌ์ฉํ ์ ์๋ค. ํด๋น ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ํค๋ก ์ฐธ์กฐํ ์ฌ๋ ์ด๋ธ ํ ์ด๋ธ๊ณผ ๊ด๋ จ ์ ์ฝ์ฌํญ๋ ํจ๊ป ์ญ์ ํ๋ค
6) VIEW ์์ฑ๊ณผ ์ญ์
- ๋ทฐ๋ ํ ์ด๋ธ๋ก๋ถํฐ ์ ๋๋ ๊ฐ์์ ํ ์ด๋ธ์ด๋ค. ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๊ณ ํ ์ด๋ธ์ ์ฐธ์กฐํด์ ์ํ๋ ์นผ๋ผ๋ง์ ์กฐํํ ์ ์๊ฒ ํ๋ค.
ํน์ง
- ์ฐธ์กฐํ ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋๋ฉด ๋ทฐ๋ ๋ณ๊ฒฝ๋๋ค
- ๋ทฐ์ ๊ฒ์์ ์ฐธ์กฐํ ํ ์ด๋ธ๊ณผ ๋์ผํ๊ฒ ํ ์ ์์ง๋ง ๋ทฐ์ ๋ํ ์ ๋ ฅ, ์์ , ์ญ์ ์ ์ ์ฝ์ด ์๋ค. ํน์ ์นผ๋ผ๋ง ์กฐํํด ๋ณด์์ ํฅ์ํ ์ ์๋ค
- ํ๋ฒ ์์ฑ๋ ๋ทฐ๋ ๋ณ๊ฒฝํ ์ ์๊ณ ๋ณ๊ฒฝ์ ์ํ๋ฉด ์ญ์ ํ ์ฌ์์ฑํด์ผ ํ๋ค
- ALTER๋ฌธ์ ์ฌ์ฉํด ๋ทฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค
- ๋ทฐ๋ฅผ ์์ฑํ ๋ CREATE VIEW๋ฌธ์ ์ฌ์ฉํ๋ฉฐ ์ฐธ์กฐ ํ ์ด๋ธ์ SELECT๋ฌธ์ผ๋ก ์ง์ ํ๋ค
~ ๋ทฐ๋ SELECT๋ฌธ์ ์ฌ์ฉํด ์ผ๋ฐ ํ ์ด๋ธ์ฒ๋ผ ์กฐํํ ์ ์๊ณ , ์ญ์ ๋ DROP VIEW๋ฌธ์ ์ฌ์ฉํ๊ณ , ์ญ์ ํด๋ ์ค์ ํ ์ด๋ธ์ด ์ญ์ ๋์ง ์๋๋ค
7) ๋ทฐ์ ์ฅ์ ๊ณผ ๋จ์
- ์ฅ์
ํน์ ์นผ๋ผ๋ง ์กฐํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ๊ธฐ๋ฅ์ด ์๋ค
๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๊ฐ๋จํ๋ค
SELECT๋ฌธ์ด ๊ฐ๋จํด์ง๋ค
ํ๋์ ํ ์ด๋ธ์ ์ฌ๋ฌ ๊ฐ์ ๋ทฐ๋ฅผ ์์ฑํ ์ ์๋ค
-๋จ์
๋ทฐ๋ ๋ ์์ ์ธ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค ์ ์๋ค
์ฝ์ , ์์ , ์ญ์ ์ฐ์ฐ์ด ์ ์ฝ๋๋ค -> ์ฝ์ X, ๋ฐ์ดํฐ ์ญ์ O (๋น๊ถ์ฅ)
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค
DML
1) INSERT๋ฌธ
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ๋ ๋ฌธ์์ญ์ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ ์์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ํน์ ํ ์ด๋ธ์ ๋ชจ๋ ์นผ๋ผ์ ๋จ์ผ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๊ฒฝ์ฐ ์ปฌ๋ผ๋ช ์ ์๋ตํ ์ ์๋ค ex) INSERT INTO EMP VALUES(1000, '์๋ฒ ์คํธ'); ~ ๋ฐ์ดํฐ ํ์ ์ ์ผ์นํด์ผํจ
~ ์ต์ข ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ค๋ฉด TCL๋ฌธ์ธ Commit์ ์คํํด์ผ ํ๋ค
2) SELECT๋ฌธ
- SELECT๋ฌธ์ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์กฐํํด ํด๋น ํ ์ด๋ธ์ ๋ฐ๋ก ์ฝ์ ํ ์ ์๋ค. ๋จ, ์ ๋ ฅ๋๋ ํ ์ด๋ธ์ ์ฌ์ ์ ์์ฑ๋์ด ์์ด์ผ ํ๋ค
3) NOLOGGING๋ฌธ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ฉด Check Point ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ณ ๋ก๊ทธ ํ์ผ์ ๊ทธ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋๋ฐ, NOLOGGING ์ต์ ์ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ก์ ์ต์ํํด ์ ๋ ฅ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ด๋ค. ~ Buffer Cache๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์๋ตํ๊ณ ๊ธฐ๋กํ๋ค
4) UPDATE๋ฌธ
- ์ ๋ ฅ๋ ๋ฐ์ดํฐ์ ๊ฐ์ ์์ ํ๋ ค๋ฉด, UPDATE๋ฌธ์ ์ฌ์ฉํ๋ค
- UPDATE๋ฌธ์ ์ฌ์ฉํด ์ํ๋ ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํด ํด๋น ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์๋ค. ๋ง์ฝ, UPDATE๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ ์ ๋ ฅํ์ง ์์ผ๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋๋ฏ๋ก ์ ์ํด์ผํ๋ค.
5) DELETE๋ฌธ
- DELETE๋ฌธ์ ์ํ๋ ์กฐ๊ฑด์ ๊ฒ์ํด ํด๋น ํ์ ์ญ์ ํ๋ ๊ฒ์ด๋ค. ์กฐ๊ฑด๋ฌธ์ ์ ๋ ฅํ์ง ์์ผ๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ค. DELETE๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค๊ณ ํด์ ํ ์ด๋ธ์ ์ฉ๋์ด ์ด๊ธฐํ๋์ง๋ ์๋๋ค.(๋กค๋ฐฑ ๊ฐ๋ฅ) vs TRUNCATE
6) ORDER BY๋ฌธ
- SELECT๋ฌธ์ ์ฌ์ฉํ ๋ ORDER BY๋ฅผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค. ๋จ, ORDER BY๋ฌธ์ ๋งจ ๋ง์ง๋ง์ ์คํ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์ ๋๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ฉฐ ๋ชจ๋ ์คํ์ด ๋๋ ํ ๋ฐ์ดํฐ ์ถ๋ ฅ ์ง์ ์ ์ ๋ ฌํ๋ค. ์ด ๋๋ฌธ์ ์ ๋ ฌ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ ๋ฐํ๋ค. ํน๋ณํ ์ง์ ์ด ์์ผ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ง์ ํ๋ค
7) DISTINCT์ ALIAS
- DISTINCT : DISTINCT๋ ์นผ๋ผ ์์ ์ง์ ํ๋ฉฐ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ๋ง ์กฐํํ๊ฒ ํ๋ค
- ALIAS : ๋ณ์นญ, ํ ์ด๋ธ๋ช ์ด๋ ์นผ๋ผ๋ช ์ ๊ฐ๋ตํ๊ฒ ํ ๋ ์ฌ์ฉํ๋ค
8) WHERE๋ฌธ ์ฌ์ฉํ๋ ์ฐ์ฐ์
WHERE๋ฌธ์ด ์ฌ์ฉํ๋ ์ฐ์ฐ์๋ ๋น๊ต ์ฐ์ฐ์, ๋ ผ๋ฆฌ ์ฐ์ฐ์, SQL ์ฐ์ฐ์, ๋ถ์ SQL ์ฐ์ฐ์๊ฐ ์๋ค
- ๋น๊ต ์ฐ์ฐ์ : =, <, <=, >, >=
- ๋ ผ๋ฆฌ ์ฐ์ฐ์ : AND, OR, NOT
- SQL ์ฐ์ฐ์ : LIKE '%๋น๊ต ๋ฌธ์์ด%', BETWEEN A AND B, IN (list), IS NULL
- ๋ถ์ SQL ์ฐ์ฐ์ : NOT BETWEEN A AND B, NOT IN (list), IS NOT NULL
9) LIKE : ์์ผ๋ ์นด๋๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์๋ค
% : ์ด๋ค ๋ฌธ์๋ฅผ ํฌํจํ ๋ชจ๋ ๊ฒ์ ์กฐํํ๋ค. ex) '์กฐ%' : ์กฐ๋ก ์์ํ๋ ๋ชจ๋ ๋ฌธ์ ์กฐํ
_(underscore) : ํ ๊ฐ์ธ ๋จ์ผ ๋ฌธ์ ex) 'test_' : test๋ก ์์ํ๊ณ ํ๋์ ๊ธ์๋ง ๋ ์๋ ๊ฒ์ ์กฐํ
10) BETWEEN๋ฌธ : ์ง์ ๋ ๋ฒ์์ ์๋ ๊ฐ์ ์กฐํ
11) IN๋ฌธ : OR์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ด ํ๋์ ์กฐ๊ฑด๋ง ๋ง์กฑํด๋ ์กฐํ๊ฐ ๋๋ค.
'RDB๐๏ธ > ์ธํ๋ฐ : SQLD ์๊ฒฉ์ฆ ๋ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part.3 ์น์ 0. (0) | 2023.08.20 |
---|---|
SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part.2 ์น์ 2. (0) | 2023.08.03 |
SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part.2 ์น์ 1. (0) | 2023.07.24 |
SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part 1 ์น์ 2. (0) | 2023.06.29 |
SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part 1 ์น์ 1. (0) | 2023.06.19 |