рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдирд╛

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЖрдзреБрдирд┐рдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ DBMS (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Oracle рдФрд░ Microsoft SQL рд╕рд░реНрд╡рд░) рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛, рдЙрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдХрд╣реЗрдВ рддреЛ, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд╡рд┐рд╡рд░рдг

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

рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

CLASS Department тАШ╨Ю╤В╨┤╨╡╨╗тАЩ;
name тАШ╨Э╨░╨╕╨╝╨╡╨╜╨╛╨▓╨░╨╜╨╕╨╡тАЩ = DATA STRING[100] (Department);

CLASS Employee тАШ╨б╨╛╤В╤А╤Г╨┤╨╜╨╕╨║тАЩ;
department тАШ╨Ю╤В╨┤╨╡╨╗тАЩ = DATA Department (Employee);
salary тАШ╨Ч╨░╤А╨┐╨╗╨░╤В╨░тАЩ =  DATA NUMERIC[10,2] (Employee);

countEmployees тАШ╨Ъ╨╛╨╗-╨▓╨╛ ╤Б╨╛╤В╤А╤Г╨┤╨╜╨╕╨║╨╛╨▓тАЩ (Department d) = 
    GROUP SUM 1 IF department(Employee e) = d;
salarySum тАШ╨б╤Г╨╝╨╝╨░╤А╨╜╨░╤П ╨╖╨░╤А╨┐╨╗╨░╤В╨░тАЩ (Department d) = 
    GROUP SUM salary(Employee e) IF department(e) = d;

SELECT name(Department d), countEmployees(d), salarySum(d);

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

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди DBMS рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдУрд╡рд░рд╣реЗрдб рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓рддрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдЧреАред

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

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

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

рдЙрджрд╛рд╣рд░рдг:

employeesCount тАШ╨Ъ╨╛╨╗╨╕╤З╨╡╤Б╤В╨▓╨╛ ╤Б╨╛╤В╤А╤Г╨┤╨╜╨╕╨║╨╛╨▓ ╤Б ╨╖╨░╤А╨┐╨╗╨░╤В╨╛╨╣ > NтАЩ (Department d, NUMERIC[10,2] N) = 
    GROUP SUM salary(Employee e) IF department(e) = d AND salary(e) > N;

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди N рдХреЗ рдЕрдирдВрдд рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдЙрдкрдпреБрдХреНрдд рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЗрд╕ рдкрд░ MATERIALIZED рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗред рддреЛ рдпрд╣ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╕реАрдорд╛ рд╣реИ, рддрдХрдиреАрдХреА рдирд╣реАрдВ (рдЕрд░реНрдерд╛рдд рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ)ред рдЕрдиреНрдпрдерд╛, рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИрдВ. рдЖрдк рдЧреНрд░реБрдкрд┐рдВрдЧ, рд╕реЙрд░реНрдЯрд┐рдВрдЧ, AND рдФрд░ OR, рдкрд╛рд░реНрдЯрд┐рд╢рди, рд░рд┐рдХрд░реНрд╕рди рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдЖрд▓реЗрдЦ рдХреА рд╕рдорд╕реНрдпрд╛ 2.2 рдореЗрдВ, рдЖрдк рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ MATERIALIZED рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

bought '╨Ъ╤Г╨┐╨╕╨╗' (Customer c, Product p, INTEGER y) = 
    GROUP SUM sum(Detail d) IF 
        customer(order(d)) = c AND 
        product(d) = p AND 
        extractYear(date(order(d))) = y MATERIALIZED;
rating '╨а╨╡╨╣╤В╨╕╨╜╨│' (Customer c, Product p, INTEGER y) = 
    PARTITION SUM 1 ORDER DESC bought(c, p, y), p BY c, y MATERIALIZED;
SELECT contactName(Customer c), name(Product p) WHERE rating(c, p, 1997) < 3;

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

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

parent = DATA Group (Group);

рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рд░рд┐рдХрд░реНрд╕рди рддрд░реНрдХ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

level (Group child, Group parent) = RECURSION 1l IF child IS Group AND parent == child
                                                             STEP 2l IF parent == parent($parent);
isParent (Group child, Group parent) = TRUE IF level(child, parent) MATERIALIZED;

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

childrenCount (Group g) = GROUP SUM 1 IF isParent(Group child, g);

SQL рдХреНрд╡реЗрд░реА рдореЗрдВ рдХреЛрдИ CTE рдирд╣реАрдВ рд╣реЛрдЧрд╛. рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЧреНрд░реБрдк рдмрд╛рдп рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

CLASS Order '╨Ч╨░╨║╨░╨╖';
date '╨Ф╨░╤В╨░' = DATA DATE (Order);

CLASS OrderDetail '╨б╤В╤А╨╛╨║╨░ ╨╖╨░╨║╨░╨╖╨░';
order '╨Ч╨░╨║╨░╨╖' = DATA Order (OrderDetail);
date '╨Ф╨░╤В╨░' (OrderDetail d) = date(order(d)) MATERIALIZED INDEXED;

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

рд▓рд╛рдн

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

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

рдПрдирд╛рд▓реЙрдЧ

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

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

рджреВрд╕рд░реЗ, рдЙрди рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ:

рдУрд░реЗрдХрд▓

5.3.8.4 рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдмрдВрдз

рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИ:

  • рднреМрддрд┐рдХ рджреГрд╢реНрдп рдореЗрдВ рдЧреИрд░-рджреЛрд╣рд░рд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ SYSDATE рдФрд░ ROWNUM.
  • рднреМрддрд┐рдХ рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП RAW or LONG RAW рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкреНрд░рдХрд╛рд░ред
  • рдЗрд╕рдореЗрдВ a рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ SELECT рд╕реВрдЪреА рд╕рдмрдХреНрд╡реЗрд░реА.
  • рдЗрд╕рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RANKрдореЗрдВ) SELECT рдЦрдВрдбред
  • рдпрд╣ рдЙрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдЬрд┐рд╕ рдкрд░ a XMLIndex рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдЗрд╕рдореЗрдВ a рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ MODEL рдЦрдВрдбред
  • рдЗрд╕рдореЗрдВ a рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ HAVING рдПрдХ рдЙрдк рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рдЦрдВрдб.
  • рдЗрд╕рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд╡реЗрд░реАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреАрдВ ANY, ALLрдпрд╛, NOT EXISTS.
  • рдЗрд╕рдореЗрдВ a рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ [START WITH тАж] CONNECT BY рдЦрдВрдбред
  • рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдПрдХрд╛рдзрд┐рдХ рд╡рд┐рд╡рд░рдг рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреАрдВред
  • ON COMMIT рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рджреВрд░рд╕реНрде рд╡рд┐рд╡рд░рдг рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреАрдВред
  • рдиреЗрд╕реНрдЯреЗрдб рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдПрдХ рдЬреБрдбрд╝рд╛рд╡ рдпрд╛ рд╕рдореБрдЪреНрдЪрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдореВрд░реНрдд рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдПрдХ рдХреЗ рд╕рд╛рде рдореВрд░реНрдд рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ GROUP BY рдЦрдВрдб рд╕реВрдЪрдХрд╛рдВрдХ-рд╕рдВрдЧрдард┐рдд рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪрдпрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

5.3.8.5 рдХреЗрд╡рд▓ рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдкрд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз

рдХреЗрд╡рд▓ рдЬреЙрдЗрди рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрдЧреНрд░реАрдЧреЗрдЯ рд╡рд╛рд▓реЗ рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдкрд░ рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ:

  • рд╕реЗ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзрдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдмрдВрдз"ред
  • рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ GROUP BY рдЦрдВрдб рдпрд╛ рд╕рдореБрдЪреНрдЪрдп.
  • рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ FROM рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП SELECT рдХреНрд╡реЗрд░реА рдХреА рд╕реВрдЪреА.
  • рд╕рднреА рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░реЛрд╡рд┐рдбреНрд╕ рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рд▓реЙрдЧ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП FROM рдХреНрд╡реЗрд░реА рдХреА рд╕реВрдЪреА.
  • рдЖрдк рд╕рд░рд▓ рдЬреЛрдбрд╝ рд╡рд╛рд▓реА рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдПрдХ рддреЗрдЬрд╝ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреМрддрд┐рдХ рджреГрд╢реНрдп рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реИ SELECT рдмрдпрд╛рдиред

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

  • рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдПрдХ рдмрд╛рд╣рд░реА рдЬреБрдбрд╝рд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рдЬреБрдбрд╝рд╛рд╡ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдореЗрдВ рдРрд╕рд╛ рдЬреБрдбрд╝рд╛рд╡ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рдЖрдВрддрд░рд┐рдХ рдЬреБрдбрд╝рд╛рд╡ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
  • RSI SELECT рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕реНрддрдВрднреЛрдВ рдкрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

5.3.8.6 рд╕рдореБрдЪреНрдЪрдп рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдкрд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз

рд╕рдореБрдЪреНрдЪрдп рдпрд╛ рдЬреБрдбрд╝рд╛рд╡ рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдкрд░ рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ:

рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рд╕рдорд░реНрдерд┐рдд рд╣реИ ON COMMIT рдФрд░ ON DEMAND рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ:

  • рднреМрддрд┐рдХ рджреГрд╢реНрдп рдореЗрдВ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рднреМрддрд┐рдХ рджреГрд╢реНрдп рд▓реЙрдЧ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рднреМрддрд┐рдХ рджреГрд╢реНрдп рд▓реЙрдЧ рдореЗрдВ:
    • рднреМрддрд┐рдХ рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
    • рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ ROWID рдФрд░ INCLUDING NEW VALUES.
    • рд╡рд┐рд╡рд░рдг рджреЗрдВ SEQUENCE рдпрджрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЗрдиреНрд╕рд░реНрдЯ/рдбрд╛рдпрд░реЗрдХреНрдЯ-рд▓реЛрдб, рдбрд┐рд▓реАрдЯ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рддреЛ рдХреНрд▓реЙрдЬред

  • рдХреЗрд╡рд▓ SUM, COUNT, AVG, STDDEV, VARIANCE, MIN рдФрд░ MAX рддреЗрдЬрд╝ рд░рд┐рдлреНрд░реЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
  • COUNT(*) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╕рдордЧреНрд░ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рд╕рдореБрдЪреНрдЪрдп рдЬреИрд╕реЗ AVG(AVG(x)) or AVG(x)+ AVG(x) рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред
  • рдЬреИрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореБрдЪреНрдЪрдп рдХреЗ рд▓рд┐рдП AVG(expr), рдЕрдиреБрд░реВрдк COUNT(expr) рдЕрдирд┐рд╡рд╛рд░реНрдп рдЙрдкрд╕реНрдерд┐рддрд┐ред рдУрд░реЗрдХрд▓ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ SUM(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред
  • If VARIANCE(expr) or STDDEV(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, COUNT(expr) рдФрд░ SUM(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП. рдУрд░реЗрдХрд▓ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ SUM(expr *expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред
  • RSI SELECT рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдореЗрдВ рдХреЙрд▓рдо рдХрдИ рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдиреЗрд╕реНрдЯреЗрдб рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
  • RSI SELECT рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП GROUP BY рдХреЙрд▓рдоред
  • рднреМрддрд┐рдХ рджреГрд╢реНрдп рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рджреВрд░рд╕реНрде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИред
  • рдЕрдЧрд░ рдЖрдк рдП CHAR рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рд▓реЙрдЧ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдорд╛рд╕реНрдЯрд░ рд╕рд╛рдЗрдЯ рдХреЗ рд╡рд░реНрдг рд╕реЗрдЯ рдФрд░ рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рд╕рдорд╛рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
  • рдпрджрд┐ рднреМрддрд┐рдХ рджреГрд╢реНрдп рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рддреЛ рддреЗрдЬрд╝ рд░рд┐рдлреНрд░реЗрд╢ рдХреЗрд╡рд▓ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдбреАрдПрдордПрд▓ рдЖрд╡реЗрд╖рдг рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рд▓реЛрдб рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИред
    • рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░ MIN or MAX рд╕рдореБрдЪреНрдЪрдп
    • рдЬрд┐рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдореВрд░реНрдд рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ SUM(expr) рд▓реЗрдХрд┐рди рдирд╣реАрдВ COUNT(expr)
    • рдмрд┐рдирд╛ рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░ COUNT(*)

    рдРрд╕реЗ рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рдХреЛ рдХреЗрд╡рд▓-рд╕рдореНрдорд┐рд▓рд┐рдд рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

  • рдХреЗ рд╕рд╛рде рдПрдХ рднреМрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг MAX or MIN рдпрджрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ рддреЛ рдбрд┐рд▓реАрдЯ рдпрд╛ рдорд┐рд╢реНрд░рд┐рдд рдбреАрдПрдордПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдмрд╛рдж рддреЗрдЬреА рд╕реЗ рд░реАрдлреНрд░реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ WHERE рдЦрдВрдбред
    рдбрд┐рд▓реАрдЯ рдпрд╛ рдорд┐рд╢реНрд░рд┐рдд рдбреАрдПрдордПрд▓ рдХреЗ рдмрд╛рдж рдЕрдзрд┐рдХрддрдо/рдорд┐рдирдЯ рддреЗрдЬрд╝ рд░рд┐рдлреНрд░реЗрд╢ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрдиреНрд╕рд░реНрдЯ-рдУрдирд▓реА рдХреЗрд╕ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо/рдиреНрдпреВрдирддрдо рдорд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдкреБрдирдГ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдЧрд░реВрдХ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред
  • рдирд╛рдорд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдпрд╛ рдЙрдкрд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп FROM рдХреНрд▓реЙрдЬ рдХреЛ рддреБрд░рдВрдд рддрд╛рдЬрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдмрд╢рд░реНрддреЗ рдХрд┐ рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдХрд┐рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд▓рдп рд╣реЛрдЧрд╛, рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ Oracle рдбреЗрдЯрд╛рдмреЗрд╕ SQL тАЛтАЛрднрд╛рд╖рд╛ рд╕рдВрджрд░реНрдн.
  • рдпрджрд┐ рдХреЛрдИ рдмрд╛рд╣рд░реА рдЬреБрдбрд╝рд╛рд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЪрдпрди рдФрд░ рдЬреЛрдбрд╝ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ WHERE рдЦрдВрдбред
  • рдмрд╛рд╣рд░реА рдЬреБрдбрд╝рд╛рд╡ рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХ рд╕рдордЧреНрд░ рджреГрд╢реНрдп рдкрд╛рд░рдВрдкрд░рд┐рдХ рдбреАрдПрдордПрд▓ рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рд▓реЛрдб рдХреЗ рдмрд╛рдж рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдмрд╢рд░реНрддреЗ рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рд╕рд╛рде рд╣реА, рдЗрдирд░ рдЬреЙрдЗрди рдЯреЗрдмрд▓ рдХреЗ рдЬреЙрдЗрди рдХреЙрд▓рдо рдкрд░ рдЕрджреНрд╡рд┐рддреАрдп рдмрд╛рдзрд╛рдПрдВ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдмрд╛рд╣рд░реА рдЬреЛрдбрд╝ рд╣реИрдВ, рддреЛ рд╕рднреА рдЬреЛрдбрд╝ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП ANDs рдФрд░ рд╕рдорд╛рдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (=) рдСрдкрд░реЗрдЯрд░ред
  • рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП CUBE, ROLLUP, рд╕рдореВрд╣реАрдХрд░рдг рд╕реЗрдЯ, рдпрд╛ рдЙрдирдХрд╛ рд╕рдВрдпреЛрдЬрди, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ:
    • RSI SELECT рд╕реВрдЪреА рдореЗрдВ рд╕рдореВрд╣реАрдХрд░рдг рд╡рд┐рднреЗрджрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдпрд╛ рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ GROUPING_ID рд╕рднреА рдкрд░ рдХрд╛рд░реНрдп рдХрд░реЗрдВ GROUP BY рднрд╛рд╡ рдпрд╛ GROUPING рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ GROUP BY рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ GROUP BY рднреМрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЦрдВрдб рд╣реИ "GROUP BY CUBE(a, b)", рдлрд┐рд░ SELECT рд╕реВрдЪреА рдореЗрдВ рдпрд╛ рддреЛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП "GROUPING_ID(a, b)" рдпрд╛ "GROUPING(a) AND GROUPING(b)┬╗ рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХреЛ рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
    • GROUP BY рдХрд┐рд╕реА рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рдореВрд╣реАрдХрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "GROUP BY a, ROLLUP(a, b)"рдпрд╣ рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧреНрд░реБрдкрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ"(a), (a, b), AND (a)"ред

5.3.8.7 рдпреВрдирд┐рдпрди рдСрд▓ рдХреЗ рд╕рд╛рде рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдкрд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз

рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдореВрд░реНрдд рд░реВрдк рджрд┐рдпрд╛ UNION ALL рд╕реЗрдЯ рдСрдкрд░реЗрдЯрд░ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ REFRESH FAST рд╡рд┐рдХрд▓реНрдк рдпрджрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд░реНрддреЗрдВ рдкреВрд░реА рд╣реЛрддреА рд╣реИрдВ:

  • рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдореЗрдВ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП UNION ALL рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдСрдкрд░реЗрдЯрд░.

    RSI UNION ALL рдСрдкрд░реЗрдЯрд░ рдХреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рд╕рдмрдХреНрд╡реЗрд░реА рдХреЗ рдЕрдВрджрд░ рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдж UNION ALL рдореЗрдВ рдПрдХ рд╕рдмрдХреНрд╡реЗрд░реА рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ FROM рдЦрдВрдб рдмрд╢рд░реНрддреЗ рдХрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдлреЙрд░реНрдо рдХреА рд╣реЛ SELECT * FROM (рджреЗрдЦреЗрдВ рдпрд╛ рд╕рдмрдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде UNION ALL) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░:

    рд╡реНрдпреВ рд╡реНрдпреВ_рд╡рд┐рдж_рдпреВрдирд┐рдпрдирдСрд▓ рдПрдПрд╕ рдмрдирд╛рдПрдВ (рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рд╕реА.рд░реЛрд╡рд┐рдб рдХреНрд░рд┐рдб, рд╕реА.рдХрд╕реНрдЯ_рдЖрдИрдбреА, 2 рдЙрдорд░рдХрд░ рдЪреБрдиреЗрдВ рд╕реА рдЬрд╣рд╛рдВ рд╕реА.рдХрд╕реНрдЯ_рд▓рд╛рд╕реНрдЯ_рдирд╛рдо = 'рд╕реНрдорд┐рде' рдпреВрдирд┐рдпрди рд╕рднреА рдЪреБрдиреЗрдВ рд╕реА.рд░реЛрд╡рд┐рдб рдХреНрд░рд┐рдб, рд╕реА.рдХрд╕реНрдЯ_рдЖрдИрдбреА, рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ 3 рдЙрдорд░рдХрд░ рдЪреБрдиреЗрдВ рд╕реА рдЬрд╣рд╛рдВ рд╕реА.рдХрд╕реНрдЯ_рд▓рд╛рд╕реНрдЯ_рдирд╛рдо = 'рдЬреЛрдиреНрд╕'); рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рдмрдирд╛рдПрдВ рдпреВрдирд┐рдпрдирдСрд▓_рдЗрдирд╕рд╛рдЗрдб_рд╡реНрдпреВ_рдПрдорд╡реА рдЪрдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдВрдЧ рдкрд░ рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ * view_with_unionall рд╕реЗ;
    

    рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреГрд╢реНрдп view_with_unionall рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

  • рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реА рдмреНрд▓реЙрдХ рдореЗрдВ UNION ALL рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдореБрдЪреНрдЪрдп рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреМрддрд┐рдХ рджреГрд╢реНрдп рдпрд╛ рдЬреЛрдбрд╝ рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

    рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рддреЗрдЬрд╝ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдЙрдкрдпреБрдХреНрдд рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рд▓реЙрдЧ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
    рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдУрд░реЗрдХрд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ рдПрдХрд▓ рддрд╛рд▓рд┐рдХрд╛ рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХреЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЛ рдХреЗрд╡рд▓ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рд╣реА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ROWID рдХреЙрд▓рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ SELECT рд╕реВрдЪреА рдФрд░ рднреМрддрд┐рдХ рджреГрд╢реНрдп рд▓реЙрдЧ рдореЗрдВред рдпрд╣ рджреГрд╢реНрдп рдХреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ view_with_unionall.

  • RSI SELECT рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реА рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП UNION ALL рдорд╛рд░реНрдХрд░, рдФрд░ UNION ALL рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП UNION ALL рд╢рд╛рдЦрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рд░реНрдХрд░ рдХреЙрд▓рдо рдХреЛ рдЙрд╕реА рдХреНрд░рдорд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП SELECT рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реА рдмреНрд▓реЙрдХ рдХреА рд╕реВрдЪреАред рджреЗрдЦрдирд╛ "рдпреВрдирд┐рдпрди рд╕рднреА рдорд╛рд░реНрдХрд░ рдФрд░ рдХреНрд╡реЗрд░реА рдкреБрдирд░реНрд▓реЗрдЦрди┬╗рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП UNION ALL рдЪрд┐рд╣реНрдирдХред
  • рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреИрд╕реЗ рдмрд╛рд╣рд░реА рдЬреБрдбрд╝рд╛рд╡, рдХреЗрд╡рд▓-рд╕рдореНрдорд┐рд▓рд┐рдд рд╕рдордЧреНрд░ рднреМрддрд┐рдХ рджреГрд╢реНрдп рдХреНрд╡реЗрд░реА рдФрд░ рджреВрд░рд╕реНрде рддрд╛рд▓рд┐рдХрд╛рдПрдБ рднреМрддрд┐рдХ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ UNION ALL. рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рднреМрддрд┐рдХ рджреГрд╢реНрдп, рдЬрд┐рдирдореЗрдВ рдЬреЛрдбрд╝ рдпрд╛ рд╕рдореБрдЪреНрдЪрдп рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдХреЛ рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм UNION ALL рдпрд╛ рджреВрд░рд╕реНрде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рддреЗрдЬреА рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреМрддрд┐рдХ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рддрд╛ рдЖрд░рдВрднреАрдХрд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ 9.2.0 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП UNION ALL.

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

Microsoft SQL рд╕рд░реНрд╡рд░

рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ

SET рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ рдлрд╝рдВрдХреНрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рд╡рд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ CREATE INDEX рджреГрд╢реНрдп рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП.
  • рдЬрдм рдЖрдк рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ IGNORE_DUP_KEY рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрдВрдж (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЛ-рднрд╛рдЧ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпреЛрдЬрдирд╛.рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ.
  • рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП WITH SCHEMABINDING рд╡рд┐рдХрд▓реНрдк.
  • рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ-рднрд╛рдЧ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, ..
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреА рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП NO SQL, рдФрд░ рдмрд╛рд╣рд░реА рдкрд╣реБрдВрдЪ рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП NO.
  • рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рд░рдирдЯрд╛рдЗрдо (рд╕реАрдПрд▓рдЖрд░) рдлрд╝рдВрдХреНрд╢рди рджреГрд╢реНрдп рдХреА рдЪрдпрди рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╕реНрдЯрд░реНрдб рдЗрдВрдбреЗрдХреНрд╕ рдХреБрдВрдЬреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рд╕реАрдПрд▓рдЖрд░ рдлрд╝рдВрдХреНрд╢рди рджреГрд╢реНрдп рдХреЗ WHERE рдХреНрд▓реЙрдЬ рдпрд╛ рджреГрд╢реНрдп рдореЗрдВ JOIN рдСрдкрд░реЗрд╢рди рдХреЗ ON рдХреНрд▓реЙрдЬ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред
  • рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реАрдПрд▓рдЖрд░ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╕реАрдПрд▓рдЖрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЧреБрдг рд╕реЗрдЯ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

    рд╕рдВрдкрддреНрддрд┐
    рдиреЛрдЯ

    рдирд┐рдпрддрд┐рд╡рд╛рджреА = рд╕рддреНрдп
    Microsoft .NET Framework рд╡рд┐рдзрд┐ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

    рд╕рдЯреАрдХ = рд╕рддреНрдп
    .NET Framework рд╡рд┐рдзрд┐ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

    рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ = рдХреЛрдИ рдПрд╕рдХреНрдпреВрдПрд▓ рдирд╣реАрдВ
    DataAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ DataAccessKind.None рдкрд░ рдФрд░ SystemDataAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ SystemDataAccessKind.None рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рдмрд╛рд╣рд░реА рдкрд╣реБрдВрдЪ = рдирд╣реАрдВ
    рдпрд╣ рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реАрдПрд▓рдЖрд░ рд░реВрдЯреАрди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ NO рд╣реИред

  • рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреГрд╢реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП WITH SCHEMABINDING рд╡рд┐рдХрд▓реНрдк.
  • рджреГрд╢реНрдп рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рджреГрд╢реНрдп рдХреЗ рд╕рдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИрдВред рджреГрд╢реНрдп рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛.
  • рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ SELECT рдХрдерди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Transact-SQL рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:

    COUNT
    рд░реЛрд╕реЗрдЯ рдлрд╝рдВрдХреНрд╢рди (OPENDATASOURCE, OPENQUERY, OPENROWSET, рддрдерд╛ OPENXML)
    OUTER рдЬреБрдбрд╝рддрд╛ рд╣реИ (LEFT, RIGHTрдпрд╛, FULL)

    рд╡реНрдпреБрддреНрдкрдиреНрди рддрд╛рд▓рд┐рдХрд╛ (рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд)ред SELECT рдореЗрдВ рдмрдпрд╛рди FROM рдЙрдкрд╡рд╛рдХреНрдп)
    рд╕реНрд╡ рдорд┐рд▓рддреА рд╣реИ
    рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ SELECT * or SELECT <table_name>.*

    DISTINCT
    STDEV, STDEVP, VAR, VARPрдпрд╛, AVG
    рд╕рд╛рдорд╛рдиреНрдп рддрд╛рд▓рд┐рдХрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рд╕реАрдЯреАрдИ)

    рдирд╛рд╡1, рдЯреЗрдХреНрд╕реНрдЯ, ntext, рдХреА рдЫрд╡рд┐, рдПрдХреНрд╕рдПрдордПрд▓рдпрд╛, рдлрд╝рд╛рдЗрд▓ рдзрд╛рд░рд╛ рдХреЙрд▓рдо
    рд╕рдмрдХреНрд╡реЗрд░реА
    OVER рдЦрдВрдб, рдЬрд┐рд╕рдореЗрдВ рд░реИрдВрдХрд┐рдВрдЧ рдпрд╛ рд╕рдордЧреНрд░ рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ

    рдкреВрд░реНрдг-рдкрд╛рда рд╡рд┐рдзреЗрдп (CONTAINS, FREETEXT)
    SUM рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рдЕрд╢рдХреНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ
    ORDER BY

    рд╕реАрдПрд▓рдЖрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдордЧреНрд░ рдлрд╝рдВрдХреНрд╢рди
    TOP
    CUBE, ROLLUPрдпрд╛, GROUPING SETS рдСрдкрд░реЗрдЯрд░реЛрдВ

    MIN, MAX
    UNION, EXCEPTрдпрд╛, INTERSECT рдСрдкрд░реЗрдЯрд░реЛрдВ
    TABLESAMPLE

    рддрд╛рд▓рд┐рдХрд╛ рдЪрд░
    OUTER APPLY or CROSS APPLY
    PIVOT, UNPIVOT

    рд╡рд┐рд░рд▓ рд╕реНрддрдВрдн рд╕реЗрдЯ
    рдЗрдирд▓рд╛рдЗрди (рдЯреАрд╡реАрдПрдл) рдпрд╛ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЯреЗрдмрд▓-рд╡реИрд▓реНрдпреВ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдПрдордПрд╕рдЯреАрд╡реАрдПрдл)
    OFFSET

    CHECKSUM_AGG

    1 рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдирд╛рд╡ рд╕реНрддрдВрдн; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕реЗ рдХреЙрд▓рдореЛрдВ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░реНрдб рдЗрдВрдбреЗрдХреНрд╕ рдХреБрдВрдЬреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • If GROUP BY рдореМрдЬреВрдж рд╣реИ, рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП COUNT_BIG(*) рдФрд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП HAVING. рдЗрди GROUP BY рдкреНрд░рддрд┐рдмрдВрдз рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдХреНрд╡реЗрд░реА рдЕрдкрдиреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЗрдиреНрд╣реЗрдВ рд╕рдВрддреБрд╖реНрдЯ рди рдХрд░реЗ GROUP BY рдкреНрд░рддрд┐рдмрдВрдзред
  • рдпрджрд┐ рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ a рд╢рд╛рдорд┐рд▓ рд╣реИ GROUP BY рдХреНрд▓реЙрдЬ, рдЕрджреНрд╡рд┐рддреАрдп рдХреНрд▓рд╕реНрдЯрд░реНрдб рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдХреБрдВрдЬреА рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓рдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ GROUP BY рдЦрдВрдбред

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

рджреГрд╢реНрдп рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рджреГрд╢реНрдп рдХреЗ рд╕рдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИрдВред рджреГрд╢реНрдп рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛.

рд╣рдорд╛рд░реА рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рдЕрдиреНрдп рднреМрддрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рд╕рднреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдЦрд╝рддреНрдо рдХрд░ рджреЗрддрд╛ рд╣реИред
рд╕рд╛рде рд╣реА, рдпрд╣ рд╕реАрдорд╛ (рдФрд░ рдкрд╛рда рдореЗрдВ рдЖрдЧреЗ) рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдмрд╣реБрдд рдХрдо рдХрд░ рджреЗрддреА рд╣реИ:

рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ SELECT рдХрдерди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Transact-SQL рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:

COUNT
рд░реЛрд╕реЗрдЯ рдлрд╝рдВрдХреНрд╢рди (OPENDATASOURCE, OPENQUERY, OPENROWSET, рддрдерд╛ OPENXML)
OUTER рдЬреБрдбрд╝рддрд╛ рд╣реИ (LEFT, RIGHTрдпрд╛, FULL)

рд╡реНрдпреБрддреНрдкрдиреНрди рддрд╛рд▓рд┐рдХрд╛ (рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд)ред SELECT рдореЗрдВ рдмрдпрд╛рди FROM рдЙрдкрд╡рд╛рдХреНрдп)
рд╕реНрд╡ рдорд┐рд▓рддреА рд╣реИ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрд▓рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ SELECT * or SELECT <table_name>.*

DISTINCT
STDEV, STDEVP, VAR, VARPрдпрд╛, AVG
рд╕рд╛рдорд╛рдиреНрдп рддрд╛рд▓рд┐рдХрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рд╕реАрдЯреАрдИ)

рдирд╛рд╡1, рдЯреЗрдХреНрд╕реНрдЯ, ntext, рдХреА рдЫрд╡рд┐, рдПрдХреНрд╕рдПрдордПрд▓рдпрд╛, рдлрд╝рд╛рдЗрд▓ рдзрд╛рд░рд╛ рдХреЙрд▓рдо
рд╕рдмрдХреНрд╡реЗрд░реА
OVER рдЦрдВрдб, рдЬрд┐рд╕рдореЗрдВ рд░реИрдВрдХрд┐рдВрдЧ рдпрд╛ рд╕рдордЧреНрд░ рд╡рд┐рдВрдбреЛ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ

рдкреВрд░реНрдг-рдкрд╛рда рд╡рд┐рдзреЗрдп (CONTAINS, FREETEXT)
SUM рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рдЕрд╢рдХреНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ
ORDER BY

рд╕реАрдПрд▓рдЖрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдордЧреНрд░ рдлрд╝рдВрдХреНрд╢рди
TOP
CUBE, ROLLUPрдпрд╛, GROUPING SETS рдСрдкрд░реЗрдЯрд░реЛрдВ

MIN, MAX
UNION, EXCEPTрдпрд╛, INTERSECT рдСрдкрд░реЗрдЯрд░реЛрдВ
TABLESAMPLE

рддрд╛рд▓рд┐рдХрд╛ рдЪрд░
OUTER APPLY or CROSS APPLY
PIVOT, UNPIVOT

рд╡рд┐рд░рд▓ рд╕реНрддрдВрдн рд╕реЗрдЯ
рдЗрдирд▓рд╛рдЗрди (рдЯреАрд╡реАрдПрдл) рдпрд╛ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЯреЗрдмрд▓-рд╡реИрд▓реНрдпреВ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдПрдордПрд╕рдЯреАрд╡реАрдПрдл)
OFFSET

CHECKSUM_AGG

рдмрд╛рд╣рд░реА рдЬреЛрдбрд╝, рдпреВрдирд┐рдпрди, рдСрд░реНрдбрд░ рдмрд╛рдп рдФрд░ рдЕрдиреНрдп рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВред рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реВрдЪреА рд╕рдВрднрд╡рддрдГ рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реЛрдЧреА.

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣реЗрдВ рддреЛ: рдПрд▓рдЬреАрдкреАрдПрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ (рдЖрдЗрдП рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдзреНрдпрд╛рди рджреЗрдВ) рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ рдмрдирд╛рдо рдХреЛрдИ рдирд╣реАрдВ (рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рддрдХрдиреАрдХреА рдирд╣реАрдВ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрдВрддреНрд░ рдХреЛ рд╕рдВрдмрдВрдзрдкрд░рдХ рддрд░реНрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реНрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдпрд╣ рдХрд╛рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ? PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИ рдЬреЛ рдкреНрд░рд╢реНрди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдб. рдФрд░ рдвреЗрд░ рд╕рд╛рд░реЗ рдЗрдлреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ рд╣реА рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╣реАрдиреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреИрд╕реЗ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рд╡рд░реНрддрди рд╕рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ