Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ SQL DELETE для удалСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ SQL DELETE ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с условиСм

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ SQL DELETE ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для удалСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· этого ΡƒΡ€ΠΎΠΊΠ° Π½Π° MS SQL Server, Π½ΠΎ эта Π‘Π£Π‘Π” Π½Π΅ установлСна Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ инструкциСй ΠΏΠΎ этой ссылкС .

IdCategoryPartUnitsMoney
1Π’Ρ€Π°Π½ΡΠΏΠΎΡ€Ρ‚ΠΠ²Ρ‚ΠΎΠΌΠ°ΡˆΠΈΠ½Ρ‹11017600
2ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒΠšΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹8918690
3ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒΠ”Π°Ρ‡ΠΈ5711970
4Π’Ρ€Π°Π½ΡΠΏΠΎΡ€Ρ‚ΠœΠΎΡ‚ΠΎΡ†ΠΈΠΊΠ»Ρ‹13120960
5БтройматСриалыДоски687140
6Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°Π’Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€Ρ‹1278255
7Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°Π₯олодильники1378905
8БтройматСриалыРСгипс11211760
9Π”ΠΎΡΡƒΠ³ΠšΠ½ΠΈΠ³ΠΈ966240
10ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒΠ”ΠΎΠΌΠ°479870
11Π”ΠΎΡΡƒΠ³ΠœΡƒΠ·Ρ‹ΠΊΠ°1177605
12Π”ΠΎΡΡƒΠ³Π˜Π³Ρ€Ρ‹412665

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ останутся лишь ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

IdCategoryPartUnitsMoney
5БтройматСриалыДоски687140
6Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°Π’Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€Ρ‹1278255
7Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°Π₯олодильники1378905
8БтройматСриалыРСгипс11211760
9Π”ΠΎΡΡƒΠ³ΠšΠ½ΠΈΠ³ΠΈ966240
10ΠΠ΅Π΄Π²ΠΈΠΆΠΈΠΌΠΎΡΡ‚ΡŒΠ”ΠΎΠΌΠ°479870
11Π”ΠΎΡΡƒΠ³ΠœΡƒΠ·Ρ‹ΠΊΠ°1177605
12Π”ΠΎΡΡƒΠ³Π˜Π³Ρ€Ρ‹412665

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ADS, достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос:

Если послС выполнСния этого запроса ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ADS ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° SELECT, примСняСмого для получСния Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эта Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π΅ содСрТит Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ DELETE Π±Π΅Π· условий ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ TRUNCATE TABLE. Он Ρ‚Π°ΠΊΠΆΠ΅ удаляСт ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ всС строки, Π½ΠΎ выполняСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… «ΠŸΠΎΡ€Ρ‚Π°Π» объявлСний-1» Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΡƒΡ€ΠΎΠΊΠ°Ρ… ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… INSERT, UPDATE, HAVING ΠΈ UNION.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

DELETE (Transact-SQL)

УдаляСт ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ прСдставлСния Π² SQL Server.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sqlБинтаксичСскиС обозначСния Π² Transact-SQL

Бинтаксис

Бсылки Π½Π° описаниС синтаксиса Transact-SQL для SQL Server 2014 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий, см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ДокумСнтация ΠΏΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ вСрсиям.

АргумСнты

WITH
Π—Π°Π΄Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся Π² области дСйствия инструкции DELETE. Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ получаСтся ΠΈΠ· инструкции SELECT.

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ выраТСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² инструкциях SELECT, INSERT, UPDATE ΠΈ CREATE VIEW. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ WITH common_table_expression (Transact-SQL).

TOP ( expression ) [ PERCENT ]
Π—Π°Π΄Π°Π΅Ρ‚ количСство ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ удаляСмых случайных строк. expression ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ числом, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠΌ ΠΎΡ‚ числа строк. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ссылаСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ TOP, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ с инструкциями INSERT, UPDATE ΠΈ DELETE, Π½Π΅ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ TOP (Transact-SQL).

FROM
ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом DELETE ΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ table_or_view_name ΠΈΠ»ΠΈ rowset_function_limited.

table_alias
ПсСвдоним, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ FROM table_source ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ прСдставлСниС, строки ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

server_name
ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния: SQL Server 2008 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий.

Имя сСрвСра (с использованиСм ΠΈΠΌΠ΅Π½ΠΈ связанного сСрвСра ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OPENDATASOURCE Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ сСрвСра), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располоТСна Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ прСдставлСниС. Если ΡƒΠΊΠ°Π·Π°Π½ΠΎ server_name, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ database_name ΠΈ schema_name.

database_name
Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

schema_name
Имя схСмы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ прСдставлСниС.

table_or_view_name
Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ прСдставлСния, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ строки.

Π’Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π΅Π΅ области дСйствия Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС источника Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² инструкции DELETE.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ссылаСтся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ table_or_view_name, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ обновляСмым ΠΈ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½Ρƒ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ FROM опрСдСлСния прСдставлСния. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± обновляСмых прСдставлСниях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ CREATE VIEW (Transact-SQL).

rowset_function_limited
ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния: SQL Server 2008 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий.

Ѐункция OPENQUERY ΠΈΠ»ΠΈ OPENROWSET Π² зависимости ΠΎΡ‚ возмоТностСй поставщика.

WITH ( [. n] )
Π—Π°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово WITH ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹. ИспользованиС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов NOLOCK ΠΈ READUNCOMMITTED Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… указаниях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ указания (Transact-SQL).

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ строки ΠΈΠ»ΠΈ выраТСния, основанныС Π½Π° Π½ΠΈΡ…, ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ DELETE. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OUTPUT Π½Π΅ поддСрТиваСтся Π½ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ… инструкциях DML, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° прСдставлСния ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ этого прСдлоТСния см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OUTPUT (Transact-SQL).

FROM table_source
Π—Π°Π΄Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FROM. Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка Transact-SQL для инструкции DELETE позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ FROM.

Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ задаСтся соСдинСниС, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано вмСсто Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ запроса Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ WHERE для указания удаляСмых строк.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ FROM (Transact-SQL).

WHERE
Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ условия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ограничСния числа удаляСмых строк. Если ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WHERE Π½Π΅ указываСтся, инструкция DELETE удаляСт всС строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ удалСния Π² соотвСтствии с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ указываСтся Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ WHERE.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния с поиском ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ условиС поиска для уточнСния строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹. НапримСр, WHERE column_name = value.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ CURRENT OF для указания курсора. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ осущСствляСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора. Π­Ρ‚Π° опСрация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ, Ρ‡Π΅ΠΌ инструкция DELETE ΠΏΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡƒ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WHERE search_condition для указания удаляСмых строк. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ DELETE ΠΏΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡƒ удаляСт нСсколько строк, Ссли условиС поиска Π½Π΅ опрСдСляСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½Ρƒ строку.

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия для удаляСмых строк. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ условиС поиска, Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ УсловиС поиска (Transact-SQL).

CURRENT OF
Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ инструкции DELETE Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ курсора.

GLOBAL
Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ cursor_name ссылаСтся Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ курсор.

cursor_name
Имя ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ курсора, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ производится Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°. Если сущСствуСт ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ, Ρ‚Π°ΠΊ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ курсор с ΠΈΠΌΠ΅Π½Π΅ΠΌ cursor_name, этот Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ссылаСтся Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ курсор, Ссли ΡƒΠΊΠ°Π·Π°Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ GLOBAL, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ ссылаСтся Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ курсор. ΠšΡƒΡ€ΡΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ обновлСния.

cursor_variable_name
Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ курсора. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ курсора Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° курсор, обновлСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

Π’ случаС арифмСтичСской ошибки (ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ Π² Ρ…ΠΎΠ΄Π΅ вычислСния выраТСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ инструкции DELETE, ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Database Engine Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ эти ошибки, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ для SET ARITHABORT Π±Ρ‹Π»ΠΎ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ON. ΠžΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ отмСняСтся ΠΈ возвращаСтся сообщСниС ΠΎΠ± ошибкС.

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ DELETE ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² тСкстС опрСдСляСмой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ссли измСняСмым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ являСтся табличная пСрСмСнная.

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строки, содСрТащСй столбСц FILESTREAM, Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈ связанныС с Π½Π΅ΠΉ Ρ„Π°ΠΉΠ»Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ сборщиком мусора FILESTREAM. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ FILESTREAM с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Transact-SQL.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

ΠŸΡ€ΠΈ использовании TOP с DELETE строки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ссылки, Π½Π΅ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прямо ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² этой инструкции. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TOP для удалСния строк Π² Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΌ хронологичСском порядкС, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TOP вмСстС с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ORDER BY Π² инструкции подзапроса. Π‘ΠΌ. ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π» Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹Β» Π΄Π°Π»Π΅Π΅ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅.

TOP нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСстС с инструкциСй DELETE для сСкционированных прСдставлСний.

Π Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ инструкция DELETE всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡŒΠ½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ намСрСния (IX) для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ страниц, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ измСняСт, ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡŒΠ½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ (X) для строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ измСняСт, ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ эти Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Если рСсурс удСрТиваСтся монопольной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ намСрСния (IX), Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ считывания Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ подсказки NOLOCK ΠΈΠ»ΠΈ уровня изоляции нСзафиксированной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния. МоТно ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° запросов ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… подсказок Π½Π° врСмя выполнСния инструкции DELETE ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ способа Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подсказки рСкомСндуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ администраторам Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ нСобходимости. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ указания (Transact-SQL).

Когда строки ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΡƒΡ‡ΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Database Engine ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΈΠ»ΠΈ страницу Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ пустыС страницы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ для ΠΊΡƒΡ‡ΠΈ. Если ΠΈΡ… Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΠΈ мСсто Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΡƒΡ‡ΠΈ строки ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ страницы, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Π—Π°Π΄Π°ΠΉΡ‚Π΅ указания TABLOCK Π² инструкции DELETE. ИспользованиС TABLOCK ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния Π±ΡƒΠ΄Π΅Ρ‚ установлСна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° IX ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° строки ΠΈΠ»ΠΈ страницы. Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ страницы. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ TABLOCK см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ указания (Transact-SQL).

ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ строк создайтС Π² ΠΊΡƒΡ‡Π΅ кластСризованный индСкс. ΠŸΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ потрСбляСт большС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рСсурсов.

Π Π΅ΠΆΠΈΠΌ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ DELETE всСгда ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ рСгистрируСтся Π² ΠΆΡƒΡ€Π½Π°Π»Π΅.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ DELETE Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ SELECT Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Ссли инструкция содСрТит ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WHERE.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡΠ˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ элСмСнты синтаксиса
Основной синтаксисDELETE
ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ удаляСмых строкWHERE β€’ FROM β€’ курсор β€’
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ таблицыБвязанный сСрвСр β€’ OPENQUERY, функция Π½Π°Π±ΠΎΡ€Π° строк β€’ OPENDATASOURCE, функция Π½Π°Π±ΠΎΡ€Π° строк
Π‘Π±ΠΎΡ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² для инструкции DELETEOUTPUT, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ описываСтся базовая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ инструкции DELETE с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ минимального Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ синтаксиса.

A. ИспользованиС инструкции DELETE Π±Π΅Π· прСдлоТСния WHERE

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ удаляСмых строк

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ способы ограничСния количСства удаляСмых строк.

Π‘. ИспользованиС прСдлоТСния WHERE для удалСния Π½Π°Π±ΠΎΡ€Π° строк

Π’. ИспользованиС курсора для опрСдСлСния удаляСмой строки

Π“. ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² объСдинСния ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… запросов ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ для удалСния строк Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅

Π”. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа удаляСмых строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова TOP

Если с инструкциСй DELETE примСняСтся ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TOP (n), Ρ‚ΠΎ опСрация удалСния производится Π½Π°Π΄ n случайно Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ строками. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ удаляСт 20 случайных строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ PurchaseOrderDetail Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… AdventureWorks2012, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π΄Π°Ρ‚Ρƒ Ρ€Π°Π½Π΅Π΅ 1 июля 2006 Π³.

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдлоТСния TOP ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки Π² Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΌ хронологичСском порядкС, Ρ‚ΠΎ вмСстС с Π½ΠΈΠΌ Π² инструкции Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ запроса Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ORDER BY. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос удаляСт ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ PurchaseOrderDetail 10 строк, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡΠ°ΠΌΡƒΡŽ Ρ€Π°Π½Π½ΡŽΡŽ Π΄Π°Ρ‚Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 10 строк, столбСц, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² инструкции подзапроса Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ( PurchaseOrderID ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ИспользованиС Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ столбца Π² инструкции подзапроса Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 10 строк, Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ столбСц содСрТит ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ значСния.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ описаны способы удалСния строк ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с использованиСм Π² качСствС ссылки Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ связанного сСрвСра ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π½Π°Π±ΠΎΡ€ строк. УдалСнная Ρ‚Π°Π±Π»ΠΈΡ†Π° сущСствуСт Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ сСрвСрС ΠΈΠ»ΠΈ экзСмплярС SQL Server.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния: SQL Server 2008 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий.

Π•. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ связанного сСрвСра

Π–. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OPENQUERY

Π—. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OPENDATASOURCE

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ выполняСтся ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OPENDATASOURCE, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π½Π°Π±ΠΎΡ€ строк. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ допустимоС имя сСрвСра для источника Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ server_name ΠΈΠ»ΠΈ server_name\instance_name.

Π‘Π±ΠΎΡ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² для инструкции DELETE

И. ИспользованиС инструкции DELETE с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ OUTPUT

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт способы сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² инструкции DELETE Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… AdventureWorks2012.

К. ИспользованиС прСдлоТСния OUTPUT с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π² инструкции DELETE

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: Azure Synapse Analytics ΠΈ БистСма ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ (PDW)

Π›. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

М. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ DELETE для удалСния Π½Π°Π±ΠΎΡ€Π° строк ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Н. ИспользованиС прСдлоТСния LABEL с инструкциСй DELETE

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΊΠ° с инструкциСй DELETE.

О. ИспользованиС ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ указания запроса с инструкциСй DELETE

Π­Ρ‚ΠΎΡ‚ запрос ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис для использования указания Π½Π° соСдинСниС с запросом с инструкциСй INSERT. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± указаниях соСдинСния ΠΈ использовании прСдлоТСния OPTION см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OPTION (Transact-SQL).

П. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдлоТСния WHERE

Π’ этом запросС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдлоТСния WHERE вмСсто прСдлоТСния FROM.

Π’. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ соСдинСния с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° основС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² соСдинСния с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

DELETE. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записСй Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… MySQL

Команда DELETE

Бинтаксис запроса Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записи.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запросов Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записСй! Если Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ WHERE ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ условиС, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ всС записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… записСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡƒΠ΄Π°Π»ΠΈΠΌ нСсколько записСй ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ books, которая хранится Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Bookstore.

ΠžΠΏΠΎΠ²Π΅ΡΡ‚ΠΈΠΌ сСрвСр MySQL ΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ выполнятся запросы.

Π”Π°Π»Π΅Π΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ записи Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ books с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ с 1 ΠΏΠΎ 5.

mysql> SELECT id, title, author, price, discount FROM books WHERE id BETWEEN 1 AND 5;
+—-+————————+——————————+———+———-+
| id | title | author | price | discount |
+—-+————————+——————————+———+———-+
| 1 | ΠšΠ°ΠΏΠΈΡ‚Π°Π½ΡΠΊΠ°Ρ Π΄ΠΎΡ‡ΠΊΠ° | А.Π‘.ΠŸΡƒΡˆΠΊΠΈΠ½ | 151.20 | 0 |
| 2 | ΠœΠ΅Ρ€Ρ‚Π²Ρ‹Π΅ Π΄ΡƒΡˆΠΈ | Н.Π’.Π“ΠΎΠ³ΠΎΠ»ΡŒ | 141.00 | 0 |
| 3 | Анна ΠšΠ°Ρ€Π΅Π½ΠΈΠ½Π° | Π›.Н.Волстой | 135.00 | 20 |
| 4 | БСсы | Π€.М.ДостоСвский | 122.00 | 0 |
| 5 | Нос | Н.Π’.Π“ΠΎΠ³ΠΎΠ»ΡŒ | 105.00 | 0 |
+—-+————————+——————————+———+———-+
5 rows in set (0.00 sec)

Допустим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС записи с ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ Π·Π° авторством Н.Π’.Гоголя. Запрос Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

mysql> DELETE FROM books WHERE author= ‘Н.Π’.Π“ΠΎΠ³ΠΎΠ»ΡŒ’ ;
Query OK, 2 rows affected (0.00 sec)

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх записСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΎΡ‚ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² Π½Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ DELETE Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ условий.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ всС записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ books.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² MySQL

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ Π² MySQL ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. ΠœΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π΄Π²Π° способа ΠΈ объясним Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄:

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ TRUNCATE ΠΈ DELETE

Команда TRUNCATE являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ DDL. DDL (Data Definition Language) β€” это язык опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка DDL ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…: ΡƒΠ΄Π°Π»ΡΡŽΡ‚, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π‘Π”.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Команда DELETE являСтся DML-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. DML (Data Manipulation Language) β€” это язык манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка DML ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Π΅.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π‘Ρ€Π°Π²Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄:

TRUNCATEDELETE
УдаляСт всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ΠœΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² соотвСтствии с условиСм WHERE
УдаляСт всС строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ освобоТдСниСм страницУдаляСт строки ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ
ЗаписываСт Π² ΠΆΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ свСдСния ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ страницС, Π° Π½Π΅ строкСДСлаСт запись Π² ΠΆΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки
Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрССРаботаСт ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅
НуТны ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ALTERНуТны ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ DELETE
БбрасываСт идСнтификаторыНС сбрасываСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ страницу ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌΠ‘Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ строку ΠΏΠ΅Ρ€Π΅Π΄ Π΅Ρ‘ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ случая. Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ строки ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ DELETE. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ TRUNCATE.

ΠŸΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с ΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка:

DDLDML
CREATESELECT
ALTERINSERT
DROPUPDATE
TRUNCATEDELETE
COMMENTMERGE
RENAMECALL
EXPLAIN PLAN
LOCK TABLE

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ DDL ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ структурой, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ DML β€” Π΅Ρ‘ содСрТимым.

Как Π² MySQL ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ сСрвСру ΠΏΠΎ SSH. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ MySQL ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ВмСсто username Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, вмСсто password β€” ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²ΠΎΠΉΡ‚ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Если ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· пароля Π½Π΅ настроСно, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка:

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π’ этом случаС ΡΠ±Ρ€ΠΎΡΡŒΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ root-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ MySQL ΠΏΠΎ инструкции.

TRUNCATE

TRUNCATE ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π΅Π· возмоТности ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия. Для этого:

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ:

ВмСсто db_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

TRUNCATE позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π‘Π” ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ запросС. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ВмСсто db_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° вмСсто table_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ, Π²Ρ‹ очистили Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

DELETE

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ:

ВмСсто db_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π‘Π” ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ запросС:

ВмСсто db_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° вмСсто table_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ, Π²Ρ‹ очистили Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ DELETE.

DELETE позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ условиС WHERE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

DELETE FROM table_name WHERE condition;

Π“Π΄Π΅ condition β€” это условиС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ всС строки, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ столбца, id ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС 1000:

DELETE FROM table_name WHERE id > 1000;

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ВмСсто db_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° вмСсто table_name Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Если Ρ‚Π°Π±Π»ΠΈΡ†Π° пустая, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ SQL

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π—Π° врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΡ€Ρƒ довСлось ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ инструмСнты Π°Π½Π°Π»ΠΈΠ·Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Excel, R ΠΈ Python. ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π² PostgreSQL ΠΈ TimescaleDB, Π°Π²Ρ‚ΠΎΡ€ поняла, насколько простыми ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ очистки. ДСлимся подробностями сравнСния PostgreSQL ΠΈ Python ΠΈΠ· Π±Π»ΠΎΠ³Π° TimescaleDB, ΠΏΠΎΠΊΠ° Ρƒ нас начинаСтся курс ΠΏΠΎ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π°Π½Π°Π»ΠΈΠ·Π° Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅

РаньшС столбцы ΠΈ значСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ «сырыС» Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· CSV-Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Π² Python-скриптС.

ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° машина настроит ΠΈ очистит Π΄Π°Π½Π½Ρ‹Π΅. А Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипт ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ людям. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ благодаря PostgreSQL я ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΠΈΡˆΡƒ запрос очистки Π½Π° SQL прямо Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

О Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΎΜΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ очисткС я ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π° послС Π°Π½Π°Π»ΠΈΠ·Π°. Но ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈ снова ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ. ИмСнно с Ρ‚Π°ΠΊΠΈΠΌ случаСм ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Kaggle содСрТатся показания потрСблСния энСргии ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€ Π² Π‘Π°Π½-Π₯осС, ΡˆΡ‚Π°Ρ‚ ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΡ. Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 15 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ схСмС:

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² смыслС очистки:

Π’Π°Ρ€ΠΈΡ„ β€” тСкстовый Ρ‚ΠΈΠΏ, Π° это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π°Ρ‚Ρ‹ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ создании Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° основС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ дню Π½Π΅Π΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€Π°Π·Π΄Π½ΠΈΠΊΠ°ΠΌ (ΠΎΠ±Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ энСргии).

К процСссу очистки Π² PostgreSQL ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ: ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΡ€ΠΈ очисткС, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с прСдставлСниями. Π’ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл, Π½ΠΎ вычислСния Π±ΡƒΠ΄ΡƒΡ‚ выполнятся ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Часто ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большим ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² PostgreSQL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдставлСний ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ чистыС Π΄Π°Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ структуры

Π Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ столбцы Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°Π΄ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° столбСц Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ²β€” Π² Ρ‚ΠΈΠΏ float4. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π½ΠΈΠΆΠ΅.

Π“ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ TimescaleDB, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½Π° ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π’ основС эффСктивности запроса Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ряда ΠΈ управлСния этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π³ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ TimescaleDB. Они Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ столбцу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π”Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° «куски», Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ каТдая строка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ куску исходя ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ПозТС эти куски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² запросах строк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ запросы ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Ρ‹Π»ΠΈ эффСктивнСС. НиТС Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈ Π³ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ:

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

ИзмСнСниС структуры Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Для раздСлСния Π³ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ столбСц Π΄Π°Ρ‚Ρ‹, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Один столбСц с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄Π°Ρ‘Ρ‚ большС гибкости ΠΈ экономит пространство эффСктивнСС, Ρ‡Π΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ столбцы с Π΄Π°Ρ‚ΠΎΠΉ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ· столбцов date ΠΈ start_time ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: end_time Π½Π΅ Π΄Π°Ρ‘Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π˜Π½Ρ‹ΠΌΠΈ словами, Π½Π°Π΄ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ эти Π΄Π²Π° столбца Π² ΠΎΠ΄ΠΈΠ½ с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

ИзмСнСниС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… столбцов

Благодаря Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ TO_NUMBER() Π² PostgreSQL это просто.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ значСниями Π½Π΅ большС 99,99, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² столбцС Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ² Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ большС 0,65. А Ρ‡Ρ‚ΠΎ Ссли Π½Π°Π΄ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ столбСц с большими числовыми значСниями? Π’ΠΎΠ³Π΄Π° добавляСм G для запятых.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ PostgreSQL

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ PostgreSQL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ запрос ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ прСдставлСния, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ это Π±Ρ‹Π»Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π‘Π”. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ создадим прСдставлСниС:

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π’Π°ΠΆΠ½ΠΎ: Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ прСдставлСний PostgreSQL Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π°Π΄ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ прСдставлСния Π² Π³ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹.

CΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ ( notes ) Π² этом Π½Π°Π±ΠΎΡ€Π΅ пуст. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это, просто Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ WHERE ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Π³Π΄Π΅ notes Π½Π΅ Ρ€Π°Π²Π½Ρ‹ пустой строкС.

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ пуст, поэтому Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ столбСц дня Π½Π΅Π΄Π΅Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ EXTRACT() β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Ρ‚Ρ‹/Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ PostgreSQL, которая позволяСт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты. Π£ Π½Π°ΡˆΠΈΡ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² PostgreSQL Π΅ΡΡ‚ΡŒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дня Π½Π΅Π΄Π΅Π»ΠΈ DOW (day-of-week): 0 β€” это Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅, Π° 6 β€” суббота.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ столбСц, Π³Π΄Π΅ указываСтся, приходится Π»ΠΈ дСнь Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π±ΡƒΠ΄Π½ΠΈ. Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ CASE:

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² Python Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ прСдставлСны числами 5 ΠΈ 6, Π° Π² PostgreSQL β€” числами 0 ΠΈ 6.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Пока сохраним эту Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ прСдставлСнии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСдставлСниСм ΠΏΠΎΠ·ΠΆΠ΅.

Π’Ρ‹ спроситС: Β«Π—Π°Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ столбцы логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?Β». Для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π’ PostgreSQL благодаря логичСским столбцам ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. НапримСр, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ ΠΏΡ€Π°Π·Π΄Π½ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π½ΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ WHERE вмСстС с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ столбцами.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π³ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ² Π½ΠΎΠ²Ρ‹Π΅ столбцы ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, создадим Π½ΠΎΠ²ΡƒΡŽ Π³ΠΈΠΏΠ΅Ρ€Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ вставим ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π’ случаС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с постоянно ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… автоматичСски вносит эти измСнСния.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ†Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ очистки Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π•Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ подчёркиваСтся ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ вопроса ΠΎΠ± Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Python Π½Π° StackOverflow: «Как Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ΅ Pandas ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса». PostgreSQL ΠΈ TimescaleDB ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ структуры рСляционных Ρ‚Π°Π±Π»ΠΈΡ†, поэтому ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния просто.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ сдСлаСт понСдСльник Ρ€Π°Π²Π½Ρ‹ΠΌ 7, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ DOW (day-of-week) Python Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ понСдСльника 0, Π° Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΡ β€” 6. Но Ρ‚Π°ΠΊ ΠΈ обновляСтся ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² столбцС. ΠŸΡ€ΠΈ этом ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ значСния, скорСС всСго, Π½Π΅ придётся, Π° эквивалСнт Π½Π° Python ΠΏΠΎΠΊΠ°Π·Π°Π½ просто для справки.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

АналогичныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отобраТСния Π΅ΡΡ‚ΡŒ Π² Python.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

SQL здСсь быстрСС ΠΈ элСгантнСС. На Python ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ столбцов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

Другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² процСссС очистки Π΄Π°Π½Π½Ρ‹Ρ… β€” это ΠΈΡ… отсутствиС. Π’ нашСм Π½Π°Π±ΠΎΡ€Π΅ Π½Π΅Ρ‚ явно ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ навСрняка найдутся Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ часам, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ·-Π·Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ элСктроэнСргии ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π². Π—Π΄Π΅ΡΡŒ ΠΈ пригодятся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ заполнСния TimescaleDB.

ΠΠ΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ часто ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ большоС ΠΈ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ влияниС Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Иногда ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ обоснованными ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, TimescaleDB прСдоставляСт встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

НапримСр, ΠΏΡ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ потрСблСния энСргии Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π½ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ дням ΠΈΠ·-Π·Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ элСктроснабТСния ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Ρ‚. Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ значСния обоснованными ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌΠΈ.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эти Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π³ΠΈΠΏΠ΅Ρ€Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ TimescaleDB; interpolate() β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° гипСрфункция TimescaleDB. Она создаёт Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ аппроксимации с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ ΠΈ послС ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ SQL ΠΈ Python Π²Ρ‹ смоТСтС Π½Π° Π½Π°ΡˆΠΈΡ… курсах:

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ sql

Π”Ρ€ΡƒΠ³ΠΈΠ΅ профСссии ΠΈ курсы

Data Science ΠΈ Machine Learning

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *