10 рд╕рдВрднрд╛рд╡рд┐рдд SQL рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмрдирд╛рддреЗ рд╣реИрдВ

рдореВрд▓ рд▓реЗрдЦ рдХреЛ "10 рдПрд╕рдХреНрдпреВрдПрд▓ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЬреЛ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



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

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

рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ JDBC рдпрд╛ jOOQ рдореЗрдВ SQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрджреЗрд╢ рдХреЗ рдмрд┐рдирд╛) рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ рджреА рдЧрдИ рд╣реИрдВред рдЕрдиреНрдп 10 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдХреЛ рджреЗрдЦреЗрдВ ред

1. NULL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдП


рдЧрд▓рддрдлрд╣рдореА NULL рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЧрд▓рддреА рд╣реИ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрдм рд╡реЗ SQL рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ NULL рдХреЛ UNKNOWN рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ UNKNOWN рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рддреЛ рдЗрд╕реЗ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдПрдХ рдФрд░ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЪрд░ рдХреЛ рдмрд╛рдВрдзрддреЗ рд╣реИрдВ, рддреЛ JDBC рдЬрд╛рд╡рд╛ рдирд▓ рдореЗрдВ SQL NULL рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ Null = NULL (SQL) рдХреЛ null == null (JAVA) рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред

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

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

рджрд╡рд╛:
рдЦреБрдж рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВред рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ - SQL рд▓рд┐рдЦрддреЗ рд╕рдордп рд╣рдореЗрд╢рд╛ NULL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ:
- рдХреНрдпрд╛ NULL рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣ рд╕рд╣реА рд╣реИ?
- рдХреНрдпрд╛ NULL рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

2. рдЬрд╛рд╡рд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ


рдмрд╣реБрдд рд╕реЗ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ SQL рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдпреБрдХреНрдд, рдЕрдЬреАрдм рдпреВрдирд┐рдЕрди рдФрд░ рдареАрдХ рд╣реИред рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд╕рдореВрд╣рди рд╕реЗрдЯ? рдХрдИ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ SQL тАЛтАЛрдбреЗрдЯрд╛ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд░реНрдмреЛрдЬрд╝ рдЪрдХреНрд░реАрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрди рд╕рдВрдЧреНрд░рд╣реЛрдВ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рдЬрд╛рд╡рд╛ 8 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ )ред

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

рджрд╡рд╛:
рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛-рдЙрдиреНрдореБрдЦ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдкреВрдЫреЗрдВ: "рдХреНрдпрд╛ рдЗрд╕ рдХрд╛рдо рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?"

3. UNION ALL рдХреЗ рдмрдЬрд╛рдп UNION рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЗрд╕ рддрдереНрдп рдкрд░ рд╢рд░реНрдо рдЖрддреА рд╣реИ рдХрд┐ UNION ALL рдХреЛ UNION рдкрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рдмреНрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ SQL рдорд╛рдирдХ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдпреВрдирд┐рдЕрди (рджреЛрд╣рд░рд╛рд╡ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)
- рдпреВрдирд┐рдЕрди DISTINCT (рдирдХрд▓ рд╣рдЯрд╛рддрд╛ рд╣реИ)

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

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рднрд▓реЗ рд╣реА SQL рдорд╛рдирдХ INTERSECT ALL рдФрд░ EXCEPT ALL рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реЛ, рди рдХрд┐ рд╣рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрди рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рджрд╡рд╛:
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╣рд░ рдмрд╛рд░ UNION рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

4. рдПрдХ рдмрдбрд╝реЗ рдирдореВрдиреЗ рдХреЛ рдЬрдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП JDBC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓рд┐рдорд┐рдЯ ... OFFSET, TOP ... START AT, OFFSET ... FETCH рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреГрд╖реНрдард╛рдВрдХрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдХрдердиреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рдЕрднреА рднреА рдбрд╛рдЙрдирд▓реЛрдб (Oracle) рдпрд╛ ROW_NUMBER () OVER () рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ (DB2, SQL Server 2008, рдФрд░ рдЕрдиреНрдп) рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рд╕реЗ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИрдВред рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рд╡рд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ!

рджрд╡рд╛:
рдмрд╕ рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ, рдпрд╛ рдПрдХ рдЙрдкрдХрд░рдг (рдЬреИрд╕реЗ jOOQ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

5. рдЬрд╛рд╡рд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рдХрдиреЗрдХреНрд╢рди


SQL рдХреЗ рд╢реБрд░реБрдЖрддреА рджрд┐рдиреЛрдВ рд╕реЗ рд▓реЗрдХрд░ рд╡рд░реНрддрдорд╛рди рддрдХ, рдХреБрдЫ рднрд╛рд░реА-рднрд░рдХрдо рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ JOIN рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкреБрд░рд╛рдирд╛ рдбрд░ тАЛтАЛрд╣реИ рдХрд┐ рдЬреЙрдЗрди рдзреАрд░реЗ-рдзреАрд░реЗ рдЪрд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рдУрд╡рд░рд╣реЗрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╢рд╛рдорд┐рд▓ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдХреЗ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддрд╛ рд╣реИ рддреЛ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрдо рд╣реА рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзреЗрдп, рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ, рдЕрдиреБрдХреНрд░рдорд┐рддреЛрдВ рдХреЗ рд╕рд╛рде, MERGE JOIN рдпрд╛ HASH JOIN рд╕рдВрдЪрд╛рд▓рди рдмрд╣реБрдд рддреЗрдЬ рд╣реИ - рдпрд╣ рд╕рдм рд╕рд╣реА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ ( рдЯреЙрдо рдХреНрдпреЗ рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ )ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреА рднреА рдХреБрдЫ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ рдЬреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред

рджрд╡рд╛:
рдпрджрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рдлрд┐рд░ рд╕реЗ рд╕реЛрдЪреЗрдВ, рдЕрдЪрд╛рдирдХ рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

6. рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЙрддреНрдкрд╛рдж рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП DISTINCT рдпрд╛ UNION рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЬрдЯрд┐рд▓ рдЬреЙрдЗрди (JOIN) рдХреЗ рдХрд╛рд░рдг, рдХреЛрдИ рднреА рдбреЗрд╡рд▓рдкрд░ рд╕рд╛рд░реНрдердХ SQL рдХреНрд╡реЗрд░реА рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рдЯреНрд░реИрдХ рдЦреЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬрдм рдпреМрдЧрд┐рдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк JOIN ... рдмрдпрд╛рдиреЛрдВ рдкрд░ рд╕рд╛рд░реНрдердХ рд╡рд┐рдзреЗрдпрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣рдореЗрд╢рд╛ рдпрд╛ рдХреЗрд╡рд▓ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдлрд┐рд░ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдбреЗрдЯрд╛ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ DISTINCT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рддреАрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ:
"рдпрд╣ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред" рдФрд░ рдлрд┐рд░ рднреА рдпрд╣ рд╕реАрдорд╛рдУрдВ рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- рдпрд╣ рдмрдбрд╝реЗ рдирдореВрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рд╣реИред рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП DISTINCT рдПрдХ ORDER BY рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред
- рдпрд╣ рдмрдбрд╝реЗ рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рд╣реИ рдЬреЛ рдЕрднреА рднреА рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рджрд╡рд╛:
рдЖрдо рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдЕрд╡рд╛рдВрдЫрд┐рдд рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреЗ JOIN рд╡рд┐рдзреЗрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рд╢рд╛рдпрдж рд╡рд╣рд╛рдБ рдХрд╣реАрдВ рдПрдХ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрди рдЙрддреНрдкрд╛рдж рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ред

7. MERGE рдХрдерди рдХрд╛ рдкрд░рд┐рд╣рд╛рд░


рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдЬреНрдЮрд╛рди рдХреА рдХрдореА рдпрд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА MERGE рдСрдкрд░реЗрдЯрд░ рдХреА рдЖрд╢рдВрдХрд╛ рд╣реИред рдХреБрдЫ рдбреЗрдЯрд╛рдмреЗрд╕ UPSERT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЕрдиреНрдп рд░реВрдкреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySQL ON DUPLICATE KEY UPDATEред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, MERGE рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛ SQL рд╕рд░реНрд╡рд░ рдЬреИрд╕реЗ SQL рд╕рд░реНрд╡рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рджрд╡рд╛:
рдпрджрд┐ рдЖрдк INSERT рдФрд░ UPDATE рдпрд╛ SELECT ... UPDATE рдФрд░ INSERT / UPDATE рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдХрд░ UPSERT рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдлрд┐рд░ рд╕реЗ рд╕реЛрдЪреЗрдВред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рджреМрдбрд╝ рдХреЛ рдЬреЛрдЦрд┐рдо рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рд╕рд░рд▓ MERGE рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

8. рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рдордЧреНрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


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

рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛:
- рдЕрдзрд┐рдХ рдкрдардиреАрдп рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ (рдЙрдк рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдХрдо рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░реБрдк)
- рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ RDBMS рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

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

9. рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдореГрддрд┐ рдореЗрдВ рдЫрдВрдЯрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


ORDER BY рдСрдкрд░реЗрдЯрд░ CASE рд╕рд╣рд┐рдд рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рднрд╛рд╡реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдЫрд╛рдБрдЯрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП:
- SQL рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдмрд╣реБрдд рдзреАрдореА рд╣реИред
- SQL рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреАред

рджрд╡рд╛:
рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдХреЛрдИ SQL рдбреЗрдЯрд╛ рд╕реЙрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

10. рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рд░рд┐рдХреЙрд░реНрдб рдбрд╛рд▓реЗрдВ


рдЬреЗрдбреАрдмреАрд╕реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмреИрдЪ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд╣рдЬрд╛рд░реЛрдВ рдирдП рд░рд┐рдХреЙрд░реНрдб рддреИрдпрд╛рд░ рдХрд░рдХреЗ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рддреИрдпрд╛рд░ рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЗ рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдПрдХ рдЯреЗрдмрд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ SQL рдХреНрд╡реЗрд░реА рдФрд░ рдХрдИ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде INSERT рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдПрдХ рдмреИрдЪ рдмрдирд╛рдПрдВред рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЙрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, UNDO рд▓реЙрдЧ рдХреЛ рд╕рд╛рдл рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдмрд╛рдж рдХрдорд┐рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рджрд╡рд╛:
рд╣рдореЗрд╢рд╛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдмреИрдЪ рд╕рдореНрдорд┐рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рд░реЛрдЪрдХ рдкреБрд╕реНрддрдХреЗрдВ

- рдмрд┐рд▓ рдПрдВрдЯрд╡рд┐рди рджреНрд╡рд╛рд░рд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рдПрдВрдЯреАрдкрд╛рд░реНрдЯрд░реНрди
- рдорд╛рд░реНрдХрд╕ Winand рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛рдпрд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рджрд░реНрд╢рди

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


All Articles