πŸ”— Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² 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!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

SQL Π£Ρ€ΠΎΠΊ 7 | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ (связСй) ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ | Для ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π£Ρ€ΠΎΠΊΠΈ ΠΏΠΎ SQL | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… | Бвязь ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ SQL Π‘Π” ΠΈ связь Ρ‚Π°Π±Π»ΠΈΡ†

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ SQL Server: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт SQL: основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π°

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Ρ‚Π°ΠΌΠΈ Π² SQL? ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

πŸ”— Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² SQL: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Как пСрСнСсти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Excel Π² SQL: пошаговоС руководство

Как пСрСнСсти Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Access Π² SQL

Как бСзопасно ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ SQL Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ