Π Π°Π±ΠΎΡ‚Π° с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² систСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 часто ставит Π² Ρ‚ΡƒΠΏΠΈΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², особСнно ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ запросов. Битуация, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ссылку Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, встрСчаСтся сплошь ΠΈ рядом ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ. Ошибки привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅, привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π’Π«Π ΠΠ—Π˜Π’Π¬ являСтся ΠΌΠΎΡ‰Π½Π΅ΠΉΡˆΠΈΠΌ инструмСнтом ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² нСпосрСдствСнно Π½Π° сторонС Π‘Π£Π‘Π”. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ избавляСт ΠΎΡ‚ нСобходимости Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅. Однако ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ синтаксис привСдСния ΠΊ Ρ‚ΠΈΠΏΡƒ ДокумСнтБсылка, рассмотрим Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи с Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ ссылками ΠΈ прСдоставим Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°. Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ распространСнных ошибок ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Π±Π°Π»ΡŒΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π’Π«Π ΠΠ—Π˜Π’Π¬ Π² запросах

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π² языкС запросов 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ структуру, Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π΅Π΄Π΅Ρ‚ ΠΊ синтаксичСской ошибкС компиляции. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ шаблон выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π’Π«Π ΠΠ—Π˜Π’Π¬(Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ КАК Π’ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ…). Π—Π΄Π΅ΡΡŒ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” это ΠΏΠΎΠ»Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния, Π° Π’ΠΈΠΏΠ”Π°Π½Π½Ρ‹Ρ… β€” Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ привСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частым сцСнариСм являСтся ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ строкового прСдставлСния ссылки ΠΈΠ»ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ указатСля ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ДокумСнтБсылка.Π˜ΠΌΡΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° пытаСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС поля согласно ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ. Если Π² ΠΏΠΎΠ»Π΅ хранится строка, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ ссылки, систСма ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL (ΠŸΡƒΡΡ‚Π°Ρ ссылка), Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎΠ»Π΅ ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΠΊ ссылкС Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ "РСализацияВоваровУслуг":

Π’Π«Π‘ΠžΠ 

Π’Π«Π ΠΠ—Π˜Π’Π¬(ВрСмСннаяВаблица.ΠŸΠΎΠ»Π΅Π‘ΡΡ‹Π»ΠΎΠΊ КАК ДокумСнтБсылка.РСализацияВоваровУслуг) КАК БсылкаНаДокумСнт

Π˜Π—

ВрСмСннаяВаблица

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΏΠΎΠ»Π΅ БсылкаНаДокумСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ строгий Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… соСдинСний (Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•) Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ 1Π‘.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Π«Π ΠΠ—Π˜Π’Π¬ нСпосрСдствСнно Π² спискС ΠΏΠΎΠ»Π΅ΠΉ SELECT, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ создания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса.

Π Π°Π±ΠΎΡ‚Π° с Π±ΠΈΡ‚Ρ‹ΠΌΠΈ ссылками ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ NULL

Одной ΠΈΠ· самых ΠΊΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними источниками являСтся появлСниС Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… "Π±ΠΈΡ‚Ρ‹Ρ…" ссылок. Π­Ρ‚ΠΎ ситуации, ΠΊΠΎΠ³Π΄Π° Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… хранится строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ссылкой, Π½ΠΎ ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ ссылаСтся Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π² Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ NULL, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° являСтся ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° β€” критичСской ошибкой Π»ΠΎΠ³ΠΈΠΊΠΈ.

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ситуаций Π² 1Π‘ прСдусмотрСна ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ конструкция Π•Π‘Π’Π¬ NULL Π² сочСтании с Π’Π«Π ΠΠ—Π˜Π’Π¬. Она позволяСт ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ‚ΡŒ пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ константу ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ строк Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ поля.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ситуации, ΠΊΠΎΠ³Π΄Π° ссылка Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°:

Π’Π«Π‘ΠžΠ 

Π•Π‘Π’Π¬ NULL(

Π’Π«Π ΠΠ—Π˜Π’Π¬(Π’Π°Π±Π»ΠΈΡ†Π°Π”Π°Π½Π½Ρ‹Ρ….ΠšΠΎΠ΄Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° КАК ДокумСнтБсылка.Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°),

БправочникБсылка.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.ΠŸΡƒΡΡ‚Π°ΡΠ‘ΡΡ‹Π»ΠΊΠ°()

) КАК НадСТнаяБсылка

Π˜Π—

Π’Π°Π±Π»ΠΈΡ†Π°Π”Π°Π½Π½Ρ‹Ρ…

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ возникновСния NULL ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ². Если Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ пустая ссылка Ρ‚Π°ΠΌ, Π³Π΄Π΅ оТидаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ соСдинСния (JOIN) ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ строки ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния Π² управляСмом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ пустой строкой ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ NULL Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Π«Π ΠΠ—Π˜Π’Π¬ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Π° случая, Π½ΠΎ явная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· Π•Π‘Π’Π¬ NULL Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ прСдсказуСмым для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΈΡ‚Ρ‹Ρ… ссылок Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π² Ρ†ΠΈΠΊΠ»Π΅ 1Π‘
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π•Π‘Π’Π¬ NULL Π² запросС
Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибок
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ очистка Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² соСдинСниях Ρ‚Π°Π±Π»ΠΈΡ†

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° привСдСния Ρ‚ΠΈΠΏΠΎΠ² становится критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ построСнии соСдинСний ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Π³Π΄Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. Частая ситуация: Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠ»ΡŽΡ‡ хранится ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΠΎΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ· CSV ΠΈΠ»ΠΈ Excel), Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” ΠΊΠ°ΠΊ ДокумСнтБсылка. ΠŸΡ€ΡΠΌΠΎΠ΅ соСдинСниС Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΈΠ»ΠΈ пустому Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π• ΠΈΠ»ΠΈ ВНУВРЕННЕЕ Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π•, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ привСсти Ρ‚ΠΈΠΏ поля ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊ Ρ‚ΠΈΠΏΡƒ поля Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ нСпосрСдствСнно Π² условии соСдинСния. Π­Ρ‚ΠΎ позволяСт Π‘Π£Π‘Π” эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксы ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ соСдинСниС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ Π² ΠΊΠΎΠ΄Π΅ прилоТСния.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ соСдинСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ со строковыми ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ основной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

Π­Ρ‚Π°ΠΏ ДСйствиС Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
1 Π§Ρ‚Π΅Π½ΠΈΠ΅ строки ΠΈΠ· внСшнСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π’ΠΈΠΏ: Π‘Ρ‚Ρ€ΠΎΠΊΠ°
2 ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π’Π«Π ΠΠ—Π˜Π’Π¬ Π² условии JOIN ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ДокумСнтБсылка
3 Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ»Π΅ΠΌ основного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° УспСшноС соСдинСниС записСй
4 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π”Π°Π½Π½Ρ‹Π΅ доступны для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ

Π’ ΠΊΠΎΠ΄Π΅ запроса это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Π«Π‘ΠžΠ 

Π”ΠΎΠΊ.Бсылка,

Π”ΠΎΠΊ.Π”Π°Ρ‚Π°,

Π”ΠΎΠΊ.НомСр

Π˜Π—

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг КАК Π”ΠΎΠΊ

Π›Π•Π’ΠžΠ• Π‘ΠžΠ•Π”Π˜ΠΠ•ΠΠ˜Π• РСгистрНакоплСния.ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ КАК ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ

ПО Π’Π«Π ΠΠ—Π˜Π’Π¬(ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ.Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ КАК ДокумСнтБсылка.РСализацияВоваровУслуг) = Π”ΠΎΠΊ.Бсылка

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ соСдинСниС происходят Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. Однако слСдуСт Π±Ρ‹Ρ‚ΡŒ остороТным: Ссли Π² ΠΏΠΎΠ»Π΅ ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ.Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ содСрТатся значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ссылку Π½Π° Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ соСдинСния ΠΈΠ»ΠΈ Π΄Π°Π΄ΡƒΡ‚ NULL ΠΏΡ€ΠΈ Π»Π΅Π²ΠΎΠΌ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ индСксов ΠΏΡ€ΠΈ соСдинСнии

ΠŸΡ€ΠΈ частом использовании привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π² условиях соСдинСния ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ индСксы Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… построСны ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Иногда Π‘Π£Π‘Π” Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс, Ссли Π½Π°Π΄ ΠΏΠΎΠ»Π΅ΠΌ выполняСтся функция, Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Π«Π ΠΠ—Π˜Π’Π¬ Π² 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ оптимизируСтся Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Частями

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏ поля "Бсылка" Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Однако Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ динамичСских Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ, Π³Π΄Π΅ Ρ‚ΠΈΠΏ родитСля ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ контСкст Π΄Π°Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π—Π°ΠΊΠ°Π· ΠΈ РСализация) Π² ΠΎΠ΄Π½Ρƒ ΠΎΠ±Ρ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ»Π΅ "Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚" ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ составной Ρ‚ΠΈΠΏ. ΠŸΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ»ΠΈ записи Π² рСгистры ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ привСсти это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ДокумСнтБсылка для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

  • πŸ“„ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π«Π ΠΠ—Π˜Π’Π¬ для явного указания Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈ записи Π² рСгистры свСдСний, Π³Π΄Π΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.
  • πŸ”— ΠŸΡ€ΠΈ соСдинСнии Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части с Π΄Ρ€ΡƒΠ³ΠΈΠΌ рСгистром всСгда провСряйтС ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² ссылочных ΠΏΠΎΠ»Π΅ΠΉ.
  • πŸ›‘ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ нСявного привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π°Ρ…, это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями Π² запросах часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ псСвдоним Π’Π§. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ псСвдониму поля.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ конструктора запросов ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ВсСгда провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ синтаксиса Π² справкС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π° сайтС ИВБ, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с нСстандартными конфигурациями ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ старыми Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ оптимизация запросов

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Π«Π ΠΠ—Π˜Π’Π¬ сущСствСнно замСдляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса. На самом Π΄Π΅Π»Π΅, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это Π½Π΅ Ρ‚Π°ΠΊ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ транслируСт запрос Π½Π° язык ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π” (MSSQL, PostgreSQL, Oracle), ΠΈ соврСмСнныС Π΄Π²ΠΈΠΆΠΊΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… эффСктивно ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π½Π° Π»Π΅Ρ‚Ρƒ.

Π“ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ отказываСтся ΠΎΡ‚ привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π² запросС ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ "сырыС" Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 1Π‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ†ΠΈΠΊΠ»Π΅. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ сСтСвой Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. ИспользованиС Π’Π«Π ΠΠ—Π˜Π’Π¬ позволяСт ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сСрвСр Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для этого ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½.

Для максимальной ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ рСкомСндуСтся:

  • πŸš€ ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ источнику Π΄Π°Π½Π½Ρ‹Ρ… (Π² самом Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ подзапроса).
  • πŸ“‰ ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ, обрабатывая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅.
  • βœ… ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса Ρ‡Π΅Ρ€Π΅Π· консоль администрирования Π‘Π£Π‘Π” ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ записСй.

Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅, Π½Π΅ происходит Π»ΠΈ потСря использования индСксов ΠΈΠ·-Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΊ полям Π² условии Π“Π”Π•. Π’ спискС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (Π’Π«Π‘ΠžΠ ) использованиС Π’Π«Π ΠΠ—Π˜Π’Π¬ практичСски всСгда бСзопасно для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

πŸ’‘

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Π«Π ΠΠ—Π˜Π’Π¬ выполняСтся Π½Π° сторонС сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты 1Π‘ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² запросах. Бамая распространСнная ΠΈΠ· Π½ΠΈΡ… β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° привСсти Ρ‚ΠΈΠΏ ΠΊ нСсовмСстимому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. НапримСр, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ строки "ВСкст" ΠΊ Ρ‚ΠΈΠΏΡƒ Число ΠΈΠ»ΠΈ Π”Π°Ρ‚Π° Π±Π΅Π· Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ валидности Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния ΠΈΠ»ΠΈ пустым значСниям.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° частая ошибка β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Ρ‚Π°ΠΌΠΈ ΠΈ числами Π² строковом прСдставлСнии. Π₯отя для ссылок Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ это ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ хранятся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ GUID ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°), ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… систСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Бписок частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ:

  • ❌ Ошибка: "НСвСрный Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°". РСшСниС: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΈΠΏ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π’Π«Π ΠΠ—Π˜Π’Π¬ сущСствуСт Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • ❌ Ошибка: ΠŸΡƒΡΡ‚Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ соСдинСния. РСшСниС: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² исходных Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Ρ‚ NULL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ.
  • ❌ Ошибка: МСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. РСшСниС: ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° 1Π‘ Π²Π½ΡƒΡ‚Ρ€ΡŒ тСкста запроса.

ВсСгда тСстируйтС свои запросы Π½Π° Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ записи, Ρ‚Π°ΠΊ ΠΈ "мусорныС" Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² устойчивости ΠΊΠΎΠ΄Π°.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° запроса ΠΏΠ΅Ρ€Π΅Π΄ запуском

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4
МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π’Π«Π ΠΠ—Π˜Π’Π¬ для привСдСния ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ?

НСт, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Π«Π ΠΠ—Π˜Π’Π¬ Π² запросах 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² систСмС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ привСсти Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ классу COM ΠΈΠ»ΠΈ .NET Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² тСкстС запроса. Для слоТных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² ΠΊΠΎΠ΄Π΅.

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ запрос, Ссли строка Π½Π΅ являСтся Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ ссылкой?

Если строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL (ΠŸΡƒΡΡ‚Π°Ρ ссылка). Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΎΠ±Π΅Ρ€Π½ΡƒΠ² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π•Π‘Π’Π¬ NULL.

ВлияСт Π»ΠΈ Π’Π«Π ΠΠ—Π˜Π’Π¬ Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ записСй?

Π‘Π°ΠΌ ΠΏΠΎ сСбС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ привСдСния Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ устанавливаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ зависят ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚ΠΈΠΏΠ° доступа (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись), ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ запроса (Π˜Π— ... КАК ...).

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ Π’Π«Π ΠΠ—Π˜Π’Π¬ Π² Π‘ΠšΠ” (БистСма Компоновки Π”Π°Π½Π½Ρ‹Ρ…)?

Π”Π°, Π² настройках Π‘ΠšΠ” ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ выраТСния с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π² полях Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Бинтаксис остаСтся Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… запросах, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ псСвдонимами.