MySQL рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ред SQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдпрд╣ рд▓реЗрдЦ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдкрд░ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ, рд▓реЗрдЦ рд╕реЗ рдЖрдк рд░реЛрд▓рдЕрдк рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреЗрдВрдЧреЗ, рдФрд░ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдк-рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдФрд░ рд╕рд╛рде рд╣реА рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╣рдЯрд╛рдирд╛ - рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдФрд░ рдирд╣реАрдВ рдореЗрдВ рд╕реЗ рдЙрдк-рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛


рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдФрд░ рдирд╣реАрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ MySQL рдореЗрдВ рдХреНрд╡реЗрд░реАрдЬрд╝ рдкреНрд░рд╛рдпрдГ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЗ рдХреБрд╢рд▓ рдирд┐рд░реНрдорд╛рдг (рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд, рд╕рд╛рде рд╣реА рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХрдерди рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ) рдХреЗ рдХрд╛рд░рдг рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрдк-рд╕реВрдЪреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ? рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдордЭ рд▓реЗрдВ рдХрд┐ рдХреНрд╡реЗрд░реАрдЬрд╝ рдореЗрдВ рдЙрди рд╕рднреА рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЬреБрдбрд╝рд╛рд╡ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдХреНрд╡реЗрд░реА рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред рдирд╣реАрдВ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рднреА рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдХрд┐ рдЙрдкрд╢рдо рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд╛рд╣рд░реА рдмрд╛рд╣рд░реА рдЬреБрдбрд╝рд╛рд╡ рд╣реЛрдЧрд╛ред рддреЛ, рд╢реБрд░реБрдЖрдд рдХреА рдЧрдИ рд╣реИ, рдЖрдЗрдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛рдмреЗрд╕ рджреБрдирд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ mysql рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╡рд┐рд╢реНрд╡ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреЗрдмрд▓ рдХрдВрдЯреНрд░реА (рджреЗрд╢) рдФрд░ рдХрдВрдЯреНрд░реА рд▓реИрдВрдЧреНрд╡реЗрдЬ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрд╛рд╖рд╛) рд╣реИрдВред рд╣рдордиреЗ рдЦреБрдж рдХреЛ рдЙрди рд╕рднреА рджреЗрд╢реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдХрд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рд╡реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рднрд╛рд╖рд╛ рдмреЛрд▓рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдРрд╕реА рдЖрдмрд╛рджреА рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрд╛рд╖рд╛ рд╣реЛред рдЖрдЗрдП рдЙрдкрд╢рдо рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд рд▓рд┐рдЦреЗрдВ:

SELECT * FROM Country WHERE Code IN (SELECT CountryCode FROM CountryLanguage) 


рдзреНрдпрд╛рди рджреЗрдВ, рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 SELECT * FROM Country c WHERE EXISTS ( SELECT 1 FROM CountryLanguage cl WHERE c.Code = cl.CountryCode ) 


рдЕрдм, рдКрдкрд░ рджреА рдЧрдИ рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЙрдкрдХреБрдВрдЬреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 SELECT c.Name FROM Country c INNER JOIN CountryLanguage cl ON c.Code = cl.CountryCode +-------------+ | Name | +-------------+ | Aruba | | Aruba | | Aruba | | Aruba | | Afghanistan | +-------------+ 5 rows in set (0.00 sec) 


рдпрд╣ рд▓рдЧрднрдЧ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рджреЛрд╣рд░рд╛рд╡ рдерд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 SELECT DISTINCT c.* FROM Country c INNER JOIN CountryLanguage cl ON c.Code = cl.CountryCode 


рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд╢реНрд░реЗрдгреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ред

рдЕрдм рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реИ - рд╣рдо рдмрд╛рд╣рд░реА рдЬреБрдбрд╝рд╛рд╡ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рднреА рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдирд╣реАрдВ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рджреЛрдмрд╛рд░рд╛, рдкрд╣рд▓реЗ рдореИрдВ рд╕рдмрдХреБрдЫ рдореЗрдВ рдорд╛рдирдХ рдирд╣реАрдВ рд▓рд╛рдКрдВрдЧрд╛:

 SELECT Name FROM Country WHERE Code NOT IN (SELECT CountryCode FROM CountryLanguage) 


рдФрд░ рдпрд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ:

 SELECT Name FROM Country c WHERE NOT EXISTS ( SELECT 1 FROM CountryLanguage cl WHERE c.Code = cl.CountryCode ) 


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмрд╛рдПрдВ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 SELECT c.* FROM Country c LEFT JOIN CountryLanguage cl ON c.Code = cl.CountryCode 


рдирддреАрдЬрддрди, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рджреЛрд╣рд░рд╛рд╡, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджреВрд╕рд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝реА рдорд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣ рдРрд╕реА рд░реЗрдЦрд╛рдПрдБ рд╣реИрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджреЗрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдпреБрдЧреНрдорд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ:

 SELECT c.* FROM Country c LEFT JOIN CountryLanguage cl ON c.Code = cl.CountryCode WHERE cl.CountryCode IS NULL 


рдЗрди рд╕рд░рд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЛ рдереЛрдбрд╝реА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред

рдЙрдк-рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рддреБрд▓рдирд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ


рдРрд╕реЗ рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рд╣рдореЗрдВ рдПрдХ рдЙрдкрд╢реНрд░реЗрдгреА рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рддреБрд▓рдирд╛ рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдХрдИ рд╕реНрддрдВрднреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд▓рд┐рдЦрдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реЛрдЧрд╛:

 SELECT c.Name FROM City c WHERE c.ID = (SELECT Capital FROM Country WHERE Name='Finland') AND c.CountryCode = (SELECT Code FROM Country WHERE Name='Finland') 


рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ SQL рдХреНрд╡реЗрд░реА рд╣реИ:

 SELECT c.Name FROM City c WHERE (c.ID, c.CountryCode) = (SELECT Capital, Code FROM Country WHERE Name='Finland') 


рдРрд╕реА рдХреНрд╡реЗрд░реА рдХреЛ "рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрдорд╛рддрд╛" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ ROW () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд▓рд┐рдЦреЗрдВрдЧреЗ:

 SELECT c.Name FROM City c WHERE ROW(c.ID, c.CountryCode) = (SELECT Capital, Code FROM Country WHERE Name='Finland') 


рдЗрд╕рдХреЗ рдЖрдХрд░реНрд╖рдг рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рдХрдИ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ:
1. рдЙрдкрд╢рдо рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдХрдИ рдореЗрдВ
2. рдЖрдк рддреБрд▓рдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ <,> рдпрд╛ <>, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рд╡рд┐рд╢реЗрд╖ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде, рдХрд┐рд╕реА рднреА, рдпрд╛ рдореЗрдВ рд╕рднреА рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рдЙрдк-рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реНрдХреЗрд▓рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 SELECT Name, Population FROM Country WHERE (Continent, Region) = ('Europe', 'Western Europe') 


рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХреНрд╡реЗрд░реА рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рд╕реНрдХреЗрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреНрд╡реЗрд░реА рдХреЛ рдЙрд╕рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 SELECT Name, Population FROM Country WHERE Continent = 'Europe' AND Region = 'Western Europe' 


рдПрдХ рд╕рд╛рде рдХрдИ рдЯреЗрдмрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд░реЗрдВред


рд╢рд╛рдпрдж рдЗрд╕ рддрд░рд╣ рдХреА рд╣реЗрдбрд▓рд╛рдЗрди рдХрд┐рд╕реА рдХреЛ рд╣реИрд░рд╛рди рдХрд░ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдЪрд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╣рддрд╛ рд╣реИ:

 UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] 


рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдк рдлреЙрд░реНрдо рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ:

 UPDATE t1, t2 SET t1.name1 = t2.name2 WHERE t1.id = t2.id; 


рджреВрд╕рд░реА рдУрд░, рдХреЛрдИ рднреА рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рджреЛ, рддреАрди рдпрд╛ рдЕрдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛:

 UPDATE t1, t2 SET t1.name1 = 'name1', t2.name2 = 'name2' WHERE t1.id = t2.id; 


рд╕рдЪ рд╣реИ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде, рдЪреАрдЬреЗрдВ рдФрд░ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрд╕ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ:

 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_references [WHERE where_condition] 


рдпрд╛

 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*]] ... USING table_references [WHERE where_condition] 


рдЬреЛ рдлреЙрд░реНрдо рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ:

 DELETE t1 FROM t1, t2 WHERE t1.id = t2.id; DELETE FROM t1 USING t1, t2 WHERE t1.id = t2.id; 


рдЗрди рджреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ t1 рд╕реЗ рд╡рд┐рд▓реЛрдкрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ t2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдЪрдпрди рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдПрдХ рд╕рд╛рде рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд░реЗрдВ:

 DELETE t1, t2 FROM t1, t2 WHERE t1.id = t2.id; DELETE FROM t1, t2 USING t1, t2 WHERE t1.id = t2.id; 


OLAP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ред рд░реЛрд▓рдЕрдк рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде


рд╢рд╛рдпрдж рдЬреЛ рд▓реЛрдЧ рдУрд░реЗрдХрд▓ рдпрд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрджреНрдпреЛрдЧрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рд╢реАрд░реНрд╖рдХ рдкрдврд╝рддреЗ рд╣реБрдП рд░реЛрддреЗ рд╣реБрдП рдХрд╣рддреЗ рд╣реИрдВ: "рдареАрдХ рд╣реИ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ!" - рд▓реЗрдХрд┐рди, рдЕрдлрд╕реЛрд╕, рдореИрдВ рддреБрд░рдВрдд рдЙрдирдХреЗ рдЙрдЧреНрд░ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдХреЛ рд╢рд╛рдВрдд рдХрд░реВрдВрдЧрд╛ред рдЪреВрдВрдХрд┐ MySQL 4.1.1, рдЬрдм рд░реЛрд▓рдЕрдк рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдПрдХ рдорд┐рд▓реАрдореАрдЯрд░ рдЙрдиреНрдирдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдИ рдбреЗрдЯрд╛ рдХреНрдпреВрдмреНрд╕ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд░реЛрд▓рдЕрдк рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдк-рдпреЛрдЧреЛрдВ рдФрд░ рдЕрдВрддрд┐рдо рдХреБрд▓ рдореВрд▓реНрдп рд╡рд╛рд▓реА рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдореИрдВ рдлрд┐рд░ рд╕реЗ рд╡рд┐рд╢реНрд╡ рдЖрдзрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рднреМрдЧреЛрд▓рд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ (рдХреНрд╖реЗрддреНрд░реЛрдВ), рд╕рд╛рде рд╣реА рдорд╣рд╛рджреНрд╡реАрдкреЛрдВ рдФрд░ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рдХреБрд▓ рдФрд░ рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдорд╛рдереЗ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдорд┐рд▓рддреЗ рд╣реИрдВ:

рд╕рднреА рднреМрдЧреЛрд▓рд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ (рдХреНрд╖реЗрддреНрд░реЛрдВ) рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рдХреБрд▓ рдФрд░ рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛:

 SELECT Continent, Region, SUM(Population) AS pop, AVG(Population) AS avg_pop FROM Country GROUP BY Continent, Region 


рд╕рднреА рдорд╣рд╛рджреНрд╡реАрдкреЛрдВ рдкрд░ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рдХреБрд▓ рдФрд░ рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛:

 SELECT Continent, SUM(Population) AS pop, AVG(Population) AS avg_pop FROM Country GROUP BY Continent 


рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рдХреБрд▓ рдФрд░ рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛:

 SELECT SUM(Population) AS pop, AVG(Population) AS avg_pop FROM Country 


рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЬрдЯрд┐рд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рд╕рд┐рд░реНрдл рдПрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 SELECT Continent, Region, SUM(Population) AS pop, AVG(Population) AS avg_pop FROM Country GROUP BY Continent, Region WITH ROLLUP; +---------------+---------------------------+------------+----------------+ | Continent | Region | pop | avg_pop | +---------------+---------------------------+------------+----------------+ | Asia | Eastern Asia | 1507328000 | 188416000.0000 | | Asia | Middle East | 188380700 | 10465594.4444 | | Asia | Southeast Asia | 518541000 | 47140090.9091 | | Asia | Southern and Central Asia | 1490776000 | 106484000.0000 | | Asia | NULL | 3705025700 | 72647562.7451 | | Europe | Baltic Countries | 7561900 | 2520633.3333 | | Europe | British Islands | 63398500 | 31699250.0000 | ... | Europe | Eastern Europe | 307026000 | 30702600.0000 | | Europe | Nordic Countries | 24166400 | 3452342.8571 | | Europe | Southern Europe | 144674200 | 9644946.6667 | ... | Europe | Western Europe | 183247600 | 20360844.4444 | | Europe | NULL | 730074600 | 15871186.9565 | | North America | Caribbean | 38140000 | 1589166.6667 | | North America | Central America | 135221000 | 16902625.0000 | | North America | North America | 309632000 | 61926400.0000 | | North America | NULL | 482993000 | 13053864.8649 | | Africa | Central Africa | 95652000 | 10628000.0000 | ... | Africa | Eastern Africa | 246999000 | 12349950.0000 | | Africa | Northern Africa | 173266000 | 24752285.7143 | | Africa | Southern Africa | 46886000 | 9377200.0000 | ... | Africa | Western Africa | 221672000 | 13039529.4118 | | Africa | NULL | 784475000 | 13525431.0345 | | Oceania | Australia and New Zealand | 22753100 | 4550620.0000 | ... | Oceania | Melanesia | 6472000 | 1294400.0000 | | Oceania | Micronesia | 543000 | 77571.4286 | | Oceania | Micronesia/Caribbean | 0 | 0.0000 | ... | Oceania | Polynesia | 633050 | 63305.0000 | | Oceania | NULL | 30401150 | 1085755.3571 | | Antarctica | Antarctica | 0 | 0.0000 | | Antarctica | NULL | 0 | 0.0000 | | South America | South America | 345780000 | 24698571.4286 | | South America | NULL | 345780000 | 24698571.4286 | | NULL | NULL | 6078749450 | 25434098.1172 | +---------------+---------------------------+------------+----------------+ 


рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЧреИрд░-рдПрдХрддреНрд░рд┐рдд рдХреЙрд▓рдо рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ NULL рд╣реИрдВ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрдВрдХреНрддрд┐ рдПрдХ рдЙрдк-рдпреЛрдЧ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдЦрд╛

 | South America | NULL | 345780000 | 24698571.4286 | 


рдЖрдкрдХреЛ рдпрд╣ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рджрдХреНрд╖рд┐рдг рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рдХреБрд▓ рдЬрдирд╕рдВрдЦреНрдпрд╛ 345.78 рдорд┐рд▓рд┐рдпрди рд▓реЛрдЧ рд╣реИрдВ, рдФрд░ рдФрд╕рдд рдореВрд▓реНрдп 24698571.4286 рд╣реИ

рдФрд░ рдпрд╣рд╛рдБ рд▓рд╛рдЗрди рд╣реИ

 | NULL | NULL | 6078749450 | 25434098.1172 | 


рдпрд╣ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рд╢реНрд╡ рдХреА рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╣реИред

рд░реЛрд▓рдЕрдк рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ! рд╡реИрд╕реЗ, рд╕рд╛рдЗрдЯ (рдкреНрд░реЛрдЧреНрд░рд╛рдо) рдкрд░ рдХрд┐рд╕реА рднреА рдЖрдВрдХрдбрд╝реЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдореИрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ

рд▓реЙрдиреНрдЪ рд╡рд┐рдХрд▓реНрдк - рдЖрдИ-рдП-рдП-рдбрдореА


"- рдЖрдо рдмреЛрд▓рдЪрд╛рд▓ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ" рдореИрдВ рдПрдХ рдореВрд░реНрдЦ рд╣реВрдВ - "рдореИрдВ рдПрдХ рдореВрд░реНрдЦ рд╣реВрдВред" рдпрд╣ рд╡рд┐рдХрд▓реНрдк - рдХреИрдлреЗ-рдЕрдкрдбреЗрдЯ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкрд░реНрдпрд╛рдп рд╣реИ, рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдкрд╕рдВрджреАрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмреБрд░рд╛ рди рдмрдиреЗ:
1. рдЕрджреНрдпрддрди рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдЬрд╣рд╛рдВ рдпрд╛ рд╕реАрдорд╛ рд╣реИ
2. рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ (рдмрд┐рдирд╛ join'ov рдФрд░ рд╕рдмрдХреНрд╡реЗрд░реА рдХреЗ) рдХреЗрд╡рд▓ рдкрд╣рд▓реА 1000 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рд╕реАрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рд╣реЛ
3. рдХреЗрд╡рд▓ рдкрд╣рд▓реА 1,000,000 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдпрд╛ рдЙрдкрд╢рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рдПрдБ:

 SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000; 


рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрд┐рдВрдЧ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:

 SELECT @@sql_safe_updates, @@sql_select_limit, @@sql_max_join_size 


рд╢реЗрд▓ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ

 mysql -u user -p -h host --i-am-a-dummy --select_limit=500 --max_join_size=10000 


рд╕реМрдВрджрд░реНрдп рд╕рдВрдмрдВрдзреА рдЯрд┐рдкреНрдкрдгреА


рдФрд░ рдирд╛рд╢реНрддреЗ рдХреЗ рд▓рд┐рдПред MySQL рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рдж, рдЗрд╕рдиреЗ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ MySQL, рдПрдХ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ, рдЬреЛ рдПрдХ рдбрдмрд▓ рдбреИрд╢ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдмрд╛рдж рдПрдХ рд╕реНрдкреЗрд╕, рдЯреИрдм рдпрд╛ рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдЪрд░рд┐рддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдирд┐рдпрдВрддреНрд░рдг рдЪрд░рд┐рддреНрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╣рдордд, рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рднрд╛рдЧ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдбрд╛рд▓рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? MySQL рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 -- SELECT 1 


(рдЪрдпрди рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде), рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ:

 --SELECT 1 


(рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдЪрд░рд┐рддреНрд░ рдХреЗ рдмрд┐рдирд╛)ред

рдЙрддреНрддрд░ рдмрд╣реБрдд рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрддреЗ рд╣реИрдВ

 UPDATE account SET credit=credit--1 


рдлрд┐рд░ рдкрд╣рд▓реЗ рдбреИрд╢ рдХреЛ рдорд╛рдЗрдирд╕ рдФрд░ рджреВрд╕рд░реЗ -1 рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВред рдпрджрд┐ рдЖрдк рджреЛ рдбреИрд╢ рдХреЗ рдмрд╛рдж рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдЪрд░рд┐рддреНрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдорд┐рд▓реЗрдЧреАред рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ ред

рдирддреАрдЬрддрди, рдПрдХрд▓-рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдХрд╛рдо рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдореИрдВ рдкрд╛рдЙрдВрдб рдЪрд┐рд╣реНрди (#) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдг рдХреЗ рд╕рд╛рде рджреЛрд╣рд░реЗ рдбреИрд╢ рдХреЗ рдмрдЬрд╛рдп :-)

рдпреВрдбреАрдкреА:
рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрд▓реЗрдЦрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИред рдиреАрдЪреЗ, рдореЗрд░рд╛ рдЫреЛрдЯрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХред

рд╕реНрд░реЛрдд рдбреЗрдЯрд╛:

 mysql> SELECT @@version; +-------------------------+ | @@version | +-------------------------+ | 5.5.32-0ubuntu0.12.04.1 | +-------------------------+ 1 row in set (0.00 sec) mysql> SHOW CREATE TABLE t11\G *************************** 1. row *************************** Table: t11 Create Table: CREATE TABLE `t11` ( `id` int(10) unsigned NOT NULL DEFAULT '0', `t11` varchar(45) NOT NULL, PRIMARY KEY (`id`), KEY `t11` (`t11`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) mysql> SELECT COUNT(*) FROM t11; +----------+ | COUNT(*) | +----------+ | 977360 | +----------+ 1 row in set (0.03 sec) mysql> SHOW CREATE TABLE t22\G *************************** 1. row *************************** Table: t22 Create Table: CREATE TABLE `t22` ( `id` int(10) unsigned NOT NULL DEFAULT '0', `t22` varchar(45) NOT NULL, PRIMARY KEY (`id`), KEY `t22` (`t22`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) mysql> SELECT COUNT(*) FROM t22; +----------+ | COUNT(*) | +----------+ | 962078 | +----------+ 1 row in set (0.04 sec) 


рдмрдирд╛рдо рдмрдирд╛рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ

рдЬреЙрдЗрди рдЗрдВрдбреЗрдХреНрд╕ (7.84 рд╕реЗрдХрдВрдб) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдпрд╣ IN (1.74 рд╕реЗрдХрдВрдб) рдФрд░ EXISTS (2.44 рд╕реЗрдХрдВрдб) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрдм рдХреЙрд▓рдо t11 рдФрд░ t22 рдмрд┐рдирд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╣реИрдВ:
 mysql> SELECT SQL_NO_CACHE * -> FROM t11 -> WHERE t11 IN (SELECT t22 FROM t22) -> LIMIT 1000; +------+-------+ | id | t11 | +------+-------+ | 2 | 5718 | | ........ | | 1001 | 54192 | +------+-------+ 1000 rows in set (13.59 sec) mysql> SELECT SQL_NO_CACHE * -> FROM t11 c -> WHERE EXISTS ( -> SELECT 1 FROM t22 cl WHERE c.t11 = cl.t22 -> ) -> LIMIT 1000; +------+-------+ | id | t11 | +------+-------+ | 2 | 5718 | | ........ | | 1001 | 54192 | +------+-------+ 1000 rows in set (13.94 sec) mysql> SELECT DISTINCT SQL_NO_CACHE c.* -> FROM t11 c -> INNER JOIN t22 cl ON c.t11 = cl.t22 -> LIMIT 1000; +-------+-------+ | id | t11 | +-------+-------+ | 25 | 74376 | | ......... | | 34359 | 62666 | +-------+-------+ 1000 rows in set (3.36 sec) 

рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрддреНрддрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рди рдХрд░реЗрдВ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдУрд╕реНрдЯрд░ рдЬреЙрдп рдмрдирд╛рдо рдиреЙрдЯ рдЗрди рдиреЙрдЯ рдПрдХреНрдЬрд╝рд┐рдЯреНрд╕

рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдмрд┐рдирд╛, рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рдЧрднрдЧ рдЙрд╕реА рд╕рдордп MySQL 5.5 рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
 mysql> SELECT SQL_NO_CACHE * -> FROM t11 -> WHERE t11 NOT IN (SELECT t22 FROM t22) -> LIMIT 1000; +--------+---------------------+ | id | t11 | +--------+---------------------+ | 1 | 0.23670763544431667 | | ........................ | | 891610 | 97811 | +--------+---------------------+ 91 rows in set (1.36 sec) mysql> SELECT SQL_NO_CACHE * -> FROM t11 c -> WHERE NOT EXISTS ( -> SELECT 1 FROM t22 cl WHERE c.t11 = cl.t22 -> ) -> LIMIT 1000; +--------+---------------------+ | id | t11 | +--------+---------------------+ | 1 | 0.23670763544431667 | | ........................ | | 891610 | 97811 | +--------+---------------------+ 91 rows in set (1.87 sec) mysql> SELECT SQL_NO_CACHE c.* -> FROM t11 c -> LEFT JOIN t22 cl ON c.t11 = cl.t22 -> WHERE cl.t22 IS NULL -> LIMIT 1000; +--------+---------------------+ | id | t11 | +--------+---------------------+ | 1 | 0.23670763544431667 | | ........................ | | 891610 | 97811 | +--------+---------------------+ 91 rows in set (1.27 sec) 


рдирддреАрдЬрддрди, рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ!

Source: https://habr.com/ru/post/In196692/


All Articles