DB : ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ํํ๋ก ์ ์ฅํด ๋์ ๊ฒ, DBMS๋ฅผ ์ด์ฉํ์ฌ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ ์์ ๋ณต๊ตฌ ๊ฐ๋ฅ
๊ด๊ณํ DB : ์ ๊ทํ๋ฅผ ํตํ์ฌ ์ด์ํ์ ๋ฐ ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ, ๋์์ฑ ๊ด๋ฆฌ์ ๋ณํ ์ ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ๋์ ์กฐ์ ๊ฐ๋ฅ
์งํฉ ์ฐ์ฐ
๊ด๊ณ ์ฐ์ฐ
SQL : RDB์์ ์ฌ์ฉํ๋ ์ธ์ด, ๋ฐ์ดํฐ ์กฐํ ๋ฐ ์ ๊ท ๋ฐ์ดํฐ ์ ๋ ฅ/์์ /์ญ์ ๊ธฐ๋ฅ ์ ๊ณต
1. ๋ฐ์ดํฐ ํ์
CHAR(L) : ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด, ํ ๋น๋ ๋ณ์ ๊ฐ์ ๊ธธ์ด๊ฐ L ์ดํ์ผ ๋ ์ฐจ์ด๋ ๊ณต๋ฐฑ์ผ๋ก ์ฑ์์ง
VARCHAR(L) : ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด, ํ ๋น๋๋ ๋ณ์ ๊ฐ์ ๊ธธ์ด์ ์ต๋๊ฐ์ด L. ๋ฌธ์์ด์ ๊ฐ๋ฅํ ์ต๋ ๊ธธ์ด๋ก ์ค์
NUMBER(L, D) : ์ซ์ํ (L์ ์ ์ฒด ์๋ฆฌ ์, D๋ ์์์ ์๋ฆฌ ์)
DATE, DATETIME : ๋ ์งํ, ๋ฐ์ดํฐ ํฌ๊ธฐ ์ง์ ์ด ํ์ํ์ง ์์
2. CREATE TABLE
ํ ์ด๋ธ ๋ฐ ์นผ๋ผ ๋ช ๋ช ๊ท์น
ยฐ ์ํ๋ฒณ, ์ซ์, ์ธ๋๋ฐ, ๋ฌ๋ฌ, ์ต ์ฌ์ฉ
ยฐ ๋์๋ฌธ์ ๊ตฌ๋ถํ์ง ์์
ยฐ ํ
์ด๋ธ๋ช
์ ๋จ์ํ ๊ถ๊ณ
DESCRIBE ํ ์ด๋ธ๋ช , sq_help 'dbo.ํ ์ด๋ธ๋ช ' : ํ ์ด๋ธ ๊ตฌ์กฐ ํ์ธ
์ ์ฝ์กฐ๊ฑด :
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง๊ฐ ๋ชฉ์ , ๋ณต์ ํ ์ด๋ธ์๋ ์ ์ฝ์กฐ๊ฑด ์ค NOT NULL๋ง ์ ์ฉ
ยฐ PRIMARY KEY : ํ ์ด๋ธ ๋น ํ๋์ ๊ธฐ๋ณธํค๋ง ์ ์ ๊ฐ๋ฅ, ๊ธฐ๋ณธํค ์์ฑ ์ DBMS๊ฐ ์๋์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑํจ, NULL ๋ถ๊ฐ
ยฐ FOREIGN KEY : ๋ค๋ฅธํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ์ธ๋ํค๋ก ์ง์ , ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด
ALTER TABLE ํ
์ด๋ธ๋ช
ADD CONSTRAINT ์ปฌ๋ผ๋ช
FOREIGN KEY (์ปฌ๋ผ๋ช
) REFFERENCES ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ช
)
ยฐ UNIQUE KEY : ํ ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์์ฑํจ, NULL ๊ฐ๋ฅ
ยฐ DEFAULT : DEFAULT ๊ฐ์ผ๋ก ๊ธฐ๋ณธ ๊ฐ ์ค์
ยฐ NULL, NOT NULL : NULL(์์ง ์ ์๋์ง ์์ ๊ฐ ๋๋ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ง ๋ชปํ๋ ๊ฐ), NOT NULL(NULL ํ์ฉ X)
ยฐ CHECK : ์ ๋ ฅ๊ฐ์ ์ข ๋ฅ ๋ฐ ๋ฒ์ ์ ํ
3. ALTER TABLE
ALTER TABLE ํ
์ด๋ธ๋ช
ADD(์ปฌ๋ผ๋ช
๋ฐ์ดํฐํ์
)
ALTER TABLE ํ
์ด๋ธ๋ช
DROP COLUM
ALTER TABLE ํ
์ด๋ธ๋ช
MODIF(์ปฌ๋ผ๋ช
๋ฐ์ดํฐํ์
์ ์ฝ์กฐ๊ฑด)
ALTER TABLE ํ
์ด๋ธ๋ช
ADD CONSTRAINT ์ ์ฝ์กฐ๊ฑด
ALTER TABLE ํ
์ด๋ธ๋ช
DROP CONSTRAINT ์ ์ฝ์กฐ๊ฑด
4. RENAME TABLE
ALTER TABLE ํ
์ด๋ธ๋ช
RENAME TO ํ
์ด๋ธ๋ช
5. DROP TABLE
ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ ์ญ์ , ๋ณต๊ตฌ ๋ถ๊ฐ
CASCADE CONSTRAINT ์ต์
์ผ๋ก ๊ด๋ จ ํ
์ด๋ธ์ ์ฐธ์กฐ ์ ์ฝ์กฐ๊ฑด๋ ์ญ์ ํ์ฌ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ์ค์ ํ ์ ์๋ค.
6. TRUNCATE TABLE
ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ ์ญ์ (DROP TABLE์ ํ ์ด๋ธ ์์ฒด๋ฅผ ์ ๊ฑฐ)
๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ์ง ์๊ธฐ ๋๋ฌธ์ ROLLBACK ๋ถ๊ฐ
1. INSERT : ๋ฐ์ดํฐ ์ ๋ ฅ
INSERT INTO ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ช
, ...) VALUES (ํ๋๊ฐ, ...)
INSERT INTO ํ
์ด๋ธ๋ช
VALUES (ํ๋๊ฐ, ...)
2. UPDATE : ๋ฐ์ดํฐ ์์
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ๋ช
= ํ๋๊ฐ
3. DELETE : ๋ฐ์ดํฐ ์ญ์
DELETE๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด๋ ํ ์ด๋ธ ์ฉ๋์ ์ด๊ธฐํ ๋์ง ์๋๋ค.(TRUNCATE๋ก ์ญ์ ํ๋ฉด ์ด๊ธฐํ๋จ)
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์
4. SELECT : ๋ฐ์ดํฐ ์กฐํ
SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
SELECT DISTINCT ์ปค๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
SELECT * FROM ํ
์ด๋ธ๋ช
SELECT ์ปฌ๋ผ๋ช
AS ๋ณ๋ช
FROM ํ
์ด๋ธ๋ช
ํธ๋์ญ์
DB์ ๋ ผ๋ฆฌ์ ์ฐ์ฐ ๋จ์, ํ๋ ์ด์์ SQL๋ฌธ์ ํฌํจ
ํน์ฑ ACID
ยฐ ์์์ฑ(Atomicity) : ์ ๋ถ ์คํ๋๊ฑฐ๋ ์ ํ ์คํ๋์ง ์์
ยฐ ์ผ๊ด์ฑ(Consistency) : ํธ๋์ญ์
์ผ๋ก ์ธํ DB ์ํ์ ๋ชจ์์ด ์์
ยฐ ๊ณ ๋ฆฝ์ฑ(Isoliaton) : ๋ถ๋ถ์ ์ธ ์คํ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ํธ๋์ญ์
์ด ์ ๊ทผํ ์ ์์
ยฐ ์์์ฑ(Durability) : ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ๋จ
TCL
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ์ ๋ชฉ์ ์ผ๋ก ํจ, ์๊ตฌ ๋ณ๊ฒฝ์ ํ์ธ๊ณผ ์ฐ๊ด ์์ ๋์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
Oracle์ SQL๋ฌธ์ฅ์ ์คํํ๋ฉด ํธ๋์ญ์ ์ด ์์๋๊ณ TCL์ ์คํํ๋ฉด ํธ๋์ญ์ ์ด ์ข ๋ฃ๋จ
DDL์ ์คํํ๋ฉด ์๋ ์ปค๋ฐ
DB๋ฅผ ์ ์์ ์ผ๋ก ์ข ๋ฃํ๋ฉด ์๋ ์ปค๋ฐ, ์ ํ๋ฆฌ์ผ์ด์ ๋ฑ์ ์ด์์ผ๋ก DB ์ ์์ด ๋จ์ ๋๋ฉด ์๋ ๋กค๋ฐฑ
COMMIT
๋ฐ์ดํฐ๋ฅผ DB์ ์๊ตฌ์ ์ผ๋ก ๋ฐ์ํ๋ ๋ช ๋ น์ด, ์ปค๋ฐ ์ ํธ๋์ญ์ ์ด ์๋ฃ๋์ด LOCKING์ด ํด์ ๋จ, SQL SERVER ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ปค๋ฐ
COMMIT ์
ยฐ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์๋ง ์ํฅ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋ณต๊ตฌ ๊ฐ๋ฅ.
ยฐ ์ฌ์ฉ์๋ SELECT์ ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ผ๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์.
ยฐ ๋ณ๊ฒฝ๋ ํ์ LOCKING์ด ์ค์ ๋์ด ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝํ ์ ์์.
COMMIT ํ
ยฐ ๋ณ๊ฒฝ ์ฌํญ์ด DB์ ๋ฐ์๋๊ณ ์ด์ ๋ฐ์ดํฐ๋ ๋ณต๊ตฌ ๋ถ๊ฐ
ยฐ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์
ยฐ LOCKING์ด ํด์ ๋์ด ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ํ์ ์กฐ์ํ ์ ์์
ROLLBACK
ํธ๋์ญ์ ์์ ์ด์ ์ ์ํ๋ก ๋๋๋ฆฌ๋ ๋ช ๋ น์ด, COMMIT ์ด์ ์ํ๋ก ๋๋ ค์ค, ROLLBACK ์ LOCKING์ด ํด์ ๋จ
ROLLBACK TO ์ ์ฅ์ ๋ช
1. ์ฐ์ฐ์
์ข ๋ฅ:
๋น๊ต ์ฐ์ฐ์ : ๋น๊ต ๋์ ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋ผ ์๋์ผ๋ก ํ ๋ณํ๋๋ ๊ฒฝ์ฐ๋ ์์
> =, > , >=, <, <=
๋ถ์ ๋น๊ต ์ฐ์ฐ์ : NOT ์ปฌ๋ผ๋ช ๋น๊ต์ฐ์ฐ์์ ๋์ผ
> !=, ^=, <>
SQL ์ฐ์ฐ์ ์ ๋ ฅ๊ฐ์ ๋น๊ตํ์ฌ ๋ ผ๋ฆฌ๊ฐ ์ถ๋ ฅ
ยฐ IN(๋ฆฌ์คํธ) : ๋ฆฌ์คํธ ๋ด์ ๊ฐ
ยฐ LIKE '๋ฌธ์์ด' : ๋ฌธ์์ด์ ํํ์ ์ผ์นํ๋ ๊ฐ
-> ์์ผ๋ ์นด๋ : % ๋ 0๊ฐ์ด์์ ๋ฌธ์, _ ๋ 1๊ฐ์ ๋จ์ผ ๋ฌธ์
ยฐ IS NULL : NULL์ ๋ฑํธ๋ก ํ๋จ ๋ถ๊ฐ
ยฐ NOT BERWEEN 'A' AND 'B', NOT IN (๋ฆฌ์คํธ), IS NOT NULL
์ฐ์ ์์ : ๋ถ์ ์ฐ์ฐ์ > ๋น๊ต ์ฐ์ฐ์ > ๋ ผ๋ฆฌ ์ฐ์ฐ์
๋ฌธ์์ด ๋น๊ต๋ฐฉ๋ฒ
์ฒซ ์๋ก ๋ค๋ฅธ ๋ฌธ์์ด ๊ฐ์ผ๋ก ๋น๊ต(๋ค ์์๊ฐ ๋ ํฐ ๊ฐ), ๊ธธ์ด๊ฐ ๋ค๋ฅผ ๋ ๊ณต๋ฐฑ์ ์ถ๊ฐํ์ฌ ๊ธธ์ด ๋ง์ถค(๊ณต๋ฐฑ์๋ง ๋ค๋ฅด๋ฉด ๊ฐ์ ๊ฐ)
์ฒซ ์๋ก ๋ค๋ฅธ ๋ฌธ์์ด ๊ฐ์ผ๋ก ๋น๊ต, ๊ธธ์ด๊ฐ ๋ค๋ฅด๋ฉด ๊ธธ์ด๊ฐ ๊ธด ๊ฐ์ด ํฌ๋ค๊ณ ํ๋จ, VARCHAR์ ๊ณต๋ฐฑ๋ ๋ฌธ์๋ก ํ๋จ, TRIM ํจ์๋ก VARCHAR์ ๊ณต๋ฐฑ ์ ๊ฑฐํ๊ณ ํ๋จํ ์ ์์
์์๋ฅผ ๋ณ์ ํ์ ์ผ๋ก ๋ฐ๊ฟ ๋น๊ต
2. ๋ถ๋ถ ๋ฒ์ ์ฒ๋ฆฌ
ROWNUM : SQL ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ์ ๊ฐ ํ์ ์์๋ก ๋ถ์ฌ๋๋ ๋ฒํธ, ์กฐ๊ฑด์ ๋ด์์ ํ์ ๊ฐ์๋ฅผ ์ ํํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํจ
TOP : ์ถ๋ ฅ ํ์ ์ ์ ํ ํจ์, 'TOP (N)'๋ก N๊ฐ ํ ์ถ๋ ฅ, ๊ฐ์ ๋์ ๋น์จ๋ก๋ ์ ํ ๊ฐ๋ฅ
1. ๋จ์ผ ํ ํจ์
SELECT์ , WHERE์ , ORDER BY ์ ์ ์ฌ์ฉ ๊ฐ๋ฅ, ๊ฐ ํ์ ๊ฐ๋ณ์ ์ผ๋ก ์์ฉ, ์ฌ๋ฌ ์ธ์๋ฅผ ์ ๋ ฅํด๋ ๋จ ํ๋์ ๊ฒฐ๊ณผ๋ง ์ถ๋ ฅ
๋ฌธ์ํ ํจ์ : ๋ฌธ์์ด ์ ๋ ฅ ์ ๋ฌธ์์ด์ด๋ ์ซ์ ๋ฐํ
ยฐ LOWER, UPPER, LENGTH
ยฐ CONCAT : ๋ฌธ์์ด ๊ฒฐํฉ
ยฐ SUBSTR : ๋ฌธ์์ด ๋ถ๋ถ ์ถ์ถ
ยฐ LTRIM, RTRIM, TRIM : ์ผ์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ, ์ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ, ์์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ
ยฐ ASCII : ์์คํค ์ฝ๋ ๊ฐ ์ถ๋ ฅ
์ซ์ํ ํจ์
ยฐ ABS, SIGN : ์ ๋๊ฐ, ๋ถํธ (1, 0, -1 ์ค ์ถ๋ ฅ)
ยฐ MOD : ๋๋จธ์ง, ์ฐ์ฐ์ %๋ก ๋์ฒด ๊ฐ๋ฅ
ยฐ ROUND, CEIL, FLOOR : ๋ฐ์ฌ๋ฆผ, ์ฌ๋ฆผ, ๋ฒ๋ฆผ
ํจ์(E,N)์ผ๋ก ์์์ ์ดํ N๋ฒ์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅ
ยฐ TRUNC : ์ซ์ํ ๋ถ๋ถ ์ถ์ถ
๋ ์งํ ํจ์
ยฐ SYSDATE : ํ์ฌ ์๊ฐ ์ถ๋ ฅ (๋ , ์, ์ผ, ์, ๋ถ, ์ด)
ยฐ EXTRACT : ๋ ์งํ ๋ถ๋ถ ์ถ์ถ
ยฐ ยฑ์ซ์, ยฑ์ซ์/24 : ์ผ์ ์ฐ์ฐ, ์๊ฐ ์ฐ์ฐ
ยฐ NEXT_DAY : ์ง์ ๋ ์์ผ ์ฒซ ๋ ์ง ์ถ๋ ฅ
๋ณํํ ํจ์ : ๋ฐ์ดํฐ ํ์ ๋ณํ, ๋ช ์์ ํ ๋ณํ ๋ฐฉ์
ยฐ TO_NUMBER, TO_CHAR, TO_DATe : ๋ฌธ์์ด์ ์ซ์๋ก, ์ซ์๋ ๋ ์ง๋ฅผ ๋ฌธ์์ด๋ก, ๋ฌธ์์ด์ ๋ ์ง๋ก
ยฐ CAST, CONVERT
NULL ๊ด๋ จ ํจ์
ยฐ NVL (์ปฌ๋ผ, ๊ฐ) : NULL ๊ฐ ๋ณํ
ยฐ NVL2(์ปฌ๋ฌ๋ฏ ๊ฐ์ค ๊ฐ) : NULL์ด๋ฉด ์์ ๊ฐ ์๋๋ฉด ๋ค์ ๊ฐ ์ถ๋ ฅ
ยฐ NULLIF(๊ฐ, ๊ฐ, ...) : ๊ฐ์ผ๋ฉด NULL ๋ค๋ฅด๋ฉด ์ฒซ ๊ฐ ์ถ๋ ฅ
ยฐ COALESCE(๊ฐ, ๊ฐ, ...) : NULL์ด ์๋ ์ฒซ ๊ฐ ์ถ๋ ฅ
ยฐ ISNULL(์ปฌ๋ผ, ๊ฐ) : NULL์ด๋ฉด ๊ฐ์ผ๋ก ๋์น ์๋๋ฉด ์ปฌ๋ผ ๊ฐ ์ถ๋ ฅ
2. ๋ฐ์ดํฐ ๋ณํ
๋ช ์์ ํ ๋ณํ : ๋ณํํ ํจ์๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ํ์ ๋ณํ
์์์ ํ ๋ณํ : DBMS๊ฐ ์๋์ผ๋ก ๋ฐ์ดํฐ ํ์ ๋ณํ
**3. ์กฐ๊ฑด๋ฌธ (IF - THEN - ELSE)
CASE WHEN ์กฐ๊ฑด์ 1 THEN ์ถ๋ ฅ๊ฐ 1 ... ELSE ๊ธฐ๋ณธ๊ฐ END
- ELSE ์๋ต ์ NULL ์ถ๋ ฅ
DECODE(์ปฌ๋ผ, ๊ธฐ์ค๊ฐ1, ์ถ๋ ฅ๊ฐ1, ..., ๊ธฐ๋ณธ๊ฐ)
- Oracle ํจ์, ๊ธฐ์ค๊ฐ n ์ด๋ฉด ์ถ๋ ฅ๊ฐ n ์ถ๋ ฅ
๊ทธ๋ฃน๋ณ ๊ฒฐ๊ณผ ์ถ๋ ฅ, ๋ค์ค ํ ํจ์ ์ค ํ๋, GROUP BY์ ์ด ์์ผ๋ฉด ๊ทธ๋ฃนํ ๋์์ด ์กด์ฌํ์ง ์์ ์๋ฌ ๋ฐ์, WHERE ์ ์ ์ฌ์ฉ ๋ถ๊ฐ, ๊ณต์งํฉ์์๋ ์ฐ์ฐ ์ํ
ALL, DISTINCT : ์ ์ฒด ์ถ๋ ฅ, ์ค๋ณต ์ ์ธ ์ถ๋ ฅ
SUM, AVG, MAX, MIN, VARIAN, STDDEV : NULL ์ ์ธํ๊ณ ์ฐ์ฐ
COUNT : ํ ์ ์ถ๋ ฅ
GROUP BY : ๊ทธ๋ฃนํ ๊ธฐ์ค ์ค์ , ์จ๋ฆฌ์ด์ค ์ฌ์ฉ ๋ถ๊ฐ
HAVING : GROUP BY์ ์ ์ํ ์ง๊ณ ๋ฐ์ดํฐ์ ์ถ๋ ฅ ์กฐ๊ฑด์ ๊ฒ, ์ผ๋ฐ์ ์ผ๋ก GROUP BY ๋ค์ ์์น.
์ปฌ๋ผ๋ช , ์จ๋ฆฌ์ด์ค, ์ปฌ๋ผ์ select์ ์์ ์์๋ก ์ปฌ๋ผ ์ง์ ๊ฐ๋ฅ, select์ ์ ์๋ ์ปฌ๋ผ๋ ์ง์ ๊ฐ๋ฅ, GROUP BY์ ์ด ์์ผ๋ฉด GROUP BY ๋์ ์ปฌ๋ผ๋ง ์ง์ ๊ฐ๋ฅ
Oracle์ NULL์ ์ต๋๊ฐ์ผ๋ก ํ๋จํจ, SQL Server๋ ์ต์๊ฐ์ผ๋ก ํ๋จํจ
์กฐ์ธ : ์ฌ๋ฌ ํ ์ด๋ธ์ ์ฐ๊ฒฐ ๋๋ ๊ฒฐํฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ. ์ผ๋ฐ์ ์ผ๋ก PK๋ FK์ ์ฐ๊ด์ฑ์ ์ํด ์ฑ๋ฆฝ
๋ฑ๊ฐ ์กฐ์ธ : ๋ ํ ์ด๋ธ์ ์ปฌ๋ผ ๊ฐ์ด ์ ํํ ์ผ์นํ๋ ๊ฒฝ์ฐ, ๋๋ถ๋ถ PK์ FK ๊ด๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํจ
SELECT ์ปฌ๋ผ FROM ํ
์ด๋ธ1 A, ํ
์ด๋ธ2 B WHERE A.์ปฌ๋ผ๋ช
= B.์ปฌ๋ผ๋ช