π ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π² SQL: ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π² SQL ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»ΡΡ - ΡΡΠΎ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠΎΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π±Π»ΠΈΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΡ: "Π’Π°Π±Π»ΠΈΡΠ°_1" ΠΈ "Π’Π°Π±Π»ΠΈΡΠ°_2". ΠΡ Ρ ΠΎΡΠΈΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΏΠΎ ΠΏΠΎΠ»Ρ "id".
CREATE TABLE Π’Π°Π±Π»ΠΈΡΠ°_1 (
id INT PRIMARY KEY,
Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅_Π΄ΡΡΠ³ΠΈΠ΅_ΠΏΠΎΠ»Ρ VARCHAR(255),
...
);
CREATE TABLE Π’Π°Π±Π»ΠΈΡΠ°_2 (
id INT PRIMARY KEY,
Π²Π½Π΅ΡΠ½ΠΈΠΉ_ΠΊΠ»ΡΡ_ΠΊ_Π’Π°Π±Π»ΠΈΡΠ΅_1 INT,
Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅_Π΄ΡΡΠ³ΠΈΠ΅_ΠΏΠΎΠ»Ρ VARCHAR(255),
...
FOREIGN KEY (Π²Π½Π΅ΡΠ½ΠΈΠΉ_ΠΊΠ»ΡΡ_ΠΊ_Π’Π°Π±Π»ΠΈΡΠ΅_1) REFERENCES Π’Π°Π±Π»ΠΈΡΠ°_1 (id)
);
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΠΎΠ»Π΅ΠΌ "id", ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π² "Π’Π°Π±Π»ΠΈΡΠ°_1". ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅ "Π²Π½Π΅ΡΠ½ΠΈΠΉ_ΠΊΠ»ΡΡ_ΠΊ_Π’Π°Π±Π»ΠΈΡΠ΅_1" Π² "Π’Π°Π±Π»ΠΈΡΠ°_2" Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ Ρ "Π’Π°Π±Π»ΠΈΡΠ°_1". ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ FOREIGN KEY Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ»Π΅ "Π²Π½Π΅ΡΠ½ΠΈΠΉ_ΠΊΠ»ΡΡ_ΠΊ_Π’Π°Π±Π»ΠΈΡΠ΅_1" ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΠ»Π΅ "id" Π² "Π’Π°Π±Π»ΠΈΡΠ°_1".
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ Π² "Π’Π°Π±Π»ΠΈΡΠ°_2", Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ "Π²Π½Π΅ΡΠ½ΠΈΠΉ_ΠΊΠ»ΡΡ_ΠΊ_Π’Π°Π±Π»ΠΈΡΠ΅_1" Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π΅ "id" "Π’Π°Π±Π»ΠΈΡΠ°_1", ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ! Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΡΠ΅Π±Π΅, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π² SQL. Π’Π°ΠΊΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ. ΠΠ°ΡΡΠΈΠ²ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΡΡΡΠΎΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π’ΠΈΠΏΡ ΡΠ²ΡΠ·Π΅ΠΉ
Π SQL ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² ΡΠ²ΡΠ·Π΅ΠΉ, ΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅:
- ΠΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ (One-to-One)
- ΠΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ (One-to-Many)
- ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ (Many-to-Many)
ΠΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ (One-to-One)
Π ΡΠ²ΡΠ·ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»ΡΡ Π² ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ "Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ" ΠΈ "ΠΠ°ΡΠΏΠΎΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅", ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈ ΠΏΠ°ΡΠΏΠΎΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
CREATE TABLE Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (
id INT PRIMARY KEY,
ΠΈΠΌΡ VARCHAR(50),
ΠΏΠ°ΡΠΏΠΎΡΡ INT,
FOREIGN KEY (ΠΏΠ°ΡΠΏΠΎΡΡ) REFERENCES ΠΠ°ΡΠΏΠΎΡΡΠ½ΡΠ΅_Π΄Π°Π½Π½ΡΠ΅(id)
);
CREATE TABLE ΠΠ°ΡΠΏΠΎΡΡΠ½ΡΠ΅_Π΄Π°Π½Π½ΡΠ΅ (
id INT PRIMARY KEY,
ΡΠ΅ΡΠΈΡ INT,
Π½ΠΎΠΌΠ΅Ρ INT
);
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ»Π΅ "ΠΏΠ°ΡΠΏΠΎΡΡ" Π² ΡΠ°Π±Π»ΠΈΡΠ΅ "Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ" ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΠ»Π΅ "id" Π² ΡΠ°Π±Π»ΠΈΡΠ΅ "ΠΠ°ΡΠΏΠΎΡΡΠ½ΡΠ΅_Π΄Π°Π½Π½ΡΠ΅". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΡΠ·Ρ ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ.
ΠΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ (One-to-Many)
Π ΡΠ²ΡΠ·ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΠΈΡΡΠΌΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ "ΠΌΠ½ΠΎΠ³ΠΈΠ΅" (many). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ "ΠΡΠ΄Π΅Π»Ρ" ΠΈ "Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ", ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π» ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²:
CREATE TABLE ΠΡΠ΄Π΅Π»Ρ (
id INT PRIMARY KEY,
Π½Π°Π·Π²Π°Π½ΠΈΠ΅ VARCHAR(50)
);
CREATE TABLE Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ (
id INT PRIMARY KEY,
ΠΈΠΌΡ VARCHAR(50),
ΠΎΡΠ΄Π΅Π» INT,
FOREIGN KEY (ΠΎΡΠ΄Π΅Π») REFERENCES ΠΡΠ΄Π΅Π»Ρ(id)
);
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ»Π΅ "ΠΎΡΠ΄Π΅Π»" Π² ΡΠ°Π±Π»ΠΈΡΠ΅ "Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ" ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΠ»Π΅ "id" Π² ΡΠ°Π±Π»ΠΈΡΠ΅ "ΠΡΠ΄Π΅Π»Ρ". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΡΠ·Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ (Many-to-Many)
Π ΡΠ²ΡΠ·ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΠΈΡΡΠΌΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· ΠΎΠ±Π΅ΠΈΡ ΡΠ°Π±Π»ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ "Π‘ΡΡΠ΄Π΅Π½ΡΡ" ΠΈ "ΠΡΡΡΡ", ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΡΠ΄Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΡΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ²:
CREATE TABLE Π‘ΡΡΠ΄Π΅Π½ΡΡ (
id INT PRIMARY KEY,
ΠΈΠΌΡ VARCHAR(50)
);
CREATE TABLE ΠΡΡΡΡ (
id INT PRIMARY KEY,
Π½Π°Π·Π²Π°Π½ΠΈΠ΅ VARCHAR(50)
);
CREATE TABLE ΠΠ°ΠΏΠΈΡΠΈ_Π½Π°_ΠΊΡΡΡΡ (
ΡΡΡΠ΄Π΅Π½Ρ INT,
ΠΊΡΡΡ INT,
FOREIGN KEY (ΡΡΡΠ΄Π΅Π½Ρ) REFERENCES Π‘ΡΡΠ΄Π΅Π½ΡΡ(id),
FOREIGN KEY (ΠΊΡΡΡ) REFERENCES ΠΡΡΡΡ(id)
);
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ° "ΠΠ°ΠΏΠΈΡΠΈ_Π½Π°_ΠΊΡΡΡΡ" ΡΠ»ΡΠΆΠΈΡ ΡΠ²ΡΠ·ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ, ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Ρ "ΡΡΡΠ΄Π΅Π½Ρ" ΠΈ "ΠΊΡΡΡ", ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ, ΡΡΡΠ»Π°ΡΡΠΈΠΌΠΈΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ "Π‘ΡΡΠ΄Π΅Π½ΡΡ" ΠΈ "ΠΡΡΡΡ". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΡΠ·Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ ΡΡ Π·Π½Π°Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Π² SQL. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉ, ΡΡΠΎ ΡΠ²ΡΠ·ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΠΈ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ. Π Π°Π±ΠΎΡΠ°Ρ Ρ ΡΠ²ΡΠ·ΡΠΌΠΈ, Π±ΡΠ΄Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π΅Π½ ΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ SQL!