SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдЕрднреНрдпрд╛рд╕рдХреНрд░рдо рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдкреВрд░реНрд╡реА "MS SQL рд╕рд░реНрд╡реНрд╣рд░ рд╡рд┐рдХрд╕рдХ" рдЖрдореНрд╣реА рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рджреБрд╕рд░реЗ рдЙрдкрдпреБрдХреНрдд рднрд╛рд╖рд╛рдВрддрд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХрд╛рдВрд╕рд╛рдареА рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЗ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрд╣реЗ. рдореА рдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рддреАрд▓ рдирд╡рдирд╡реАрди рд╢реЛрдз рдЖрдгрд┐ рдирд╡реАрди рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдд рд░рд╛рд╣рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ рдЖрдгрд┐ рд░рд┐рд▓реЗрд╢рдирд▓ рдЖрдгрд┐ NoSQL рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рдХрд╛рдо рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕рдЪреА рднреВрдорд┐рдХрд╛ рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреА рд╣реЛрдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдорд▓рд╛ рджрд┐рд╕рддреЗ. рдЬрдЯрд┐рд▓ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛, рдХреЗрд╡рд│ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдЪ рдХреБрдЪрдХрд╛рдореА рдард░рдд рдирд╛рд╣реАрдд рддрд░ NoSQL рджреЗрдЦреАрд▓. рдЕрдиреЗрдХрджрд╛, рдХрдиреЗрдХреНрд╢рди рд╕реНрддрд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рдЖрдХрд╛рд░ рд╡рд╛рдврдд рдЕрд╕рддрд╛рдирд╛, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдХрдореА рд╣реЛрддреЗ. рдЖрдгрд┐ рдЬрд╕рдЬрд╕реЗ рд╕рдВрдмрдВрдз рдЕрдзрд┐рдХ рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдЪреЗ рд╣реЛрдд рдЬрд╛рддрд╛рдд, рддрд╕рддрд╕реЗ рдЬреЙрдЗрдирдЪреА рд╕рдВрдЦреНрдпрд╛рд╣реА рд╡рд╛рдврддреЗ.

рдЕрд░реНрдерд╛рдд, рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбреЗрд▓рдордзреНрдпреЗ рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд╛рдп рдЖрд╣реЗрдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд╣реЛрдгрд╛рд░реЗ CTEs рд╡рд╛рдкрд░рдгреЗ), рдкрд░рдВрддреБ рд╣реЗ рдЕрджреНрдпрд╛рдк рдЙрдкрд╛рдп рдЖрд╣реЗрдд. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, SQL рд╕рд░реНрд╡реНрд╣рд░ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдЪреЗ рдПрдХрд╛рдзрд┐рдХ рд╕реНрддрд░ рд╕рд╣рдЬрдкрдгреЗ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рджреЛрдиреНрд╣реА рд╕рд░рд▓реАрдХреГрдд рдЖрд╣реЗрдд, рдЖрдгрд┐ рдореНрд╣рдгреВрди рддреНрдпрд╛рдВрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврддреЗ. рдХреЛрдбрдЪреЗ рдкреНрд░рдорд╛рдг рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдЭрд╛рд▓реЗ рдЖрд╣реЗ.

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

рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡реНрд╣рд░рдордзреАрд▓ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ рдЬрд┐рдереЗ рдбреЗрдЯрд╛ рдЕрддреНрдпрдВрдд рдПрдХрдореЗрдХрд╛рдВрд╢реА рдЬреЛрдбрд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЪрд╛рдВрдЧрд▓реЗ-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдмрдВрдз рдЖрд╣реЗрдд.

рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓

рдЖрд▓реЗрдЦ рд╣рд╛ рд╢рд┐рд░реЛрдмрд┐рдВрджреВ (рдиреЛрдбреНрд╕) рдЖрдгрд┐ рдХрдбрд╛ (рд╕рдВрдмрдВрдз, рдзрд╛рд░) рдпрд╛рдВрдЪрд╛ рд╕рдВрдЪ рдЖрд╣реЗ. рд╢рд┐рд░реЛрдмрд┐рдВрджреВ рд╕рдВрд╕реНрдерд╛рдВрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛рдд рдЖрдгрд┐ рдХрд┐рдирд╛рд░реА рд╕рдВрдмрдВрдзрд╛рдВрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛рдд рдЬреНрдпрд╛рдВрдЪреНрдпрд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреНрдпреЗ рдорд╛рд╣рд┐рддреА рдЕрд╕реВ рд╢рдХрддреЗ.

рдЖрд▓реЗрдЦ рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбреЗрд▓ рдШрдЯрдХрд╛рдВрдирд╛ рдЖрд▓реЗрдЦ рдореНрд╣рдгреВрди рддрдпрд╛рд░ рдХрд░рддреЛ. рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╢рд┐рд░реЛрдмрд┐рдВрджреВ рдЖрдгрд┐ рдХрдбрд╛ рдЖрд╣реЗрдд. рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЗ рд╢рд┐рд░реЛрдмрд┐рдВрджреВ рдЖрдгрд┐ рдХрдбрд╛ рдпрд╛рдВрдЪреЗ рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд. рдХрдиреЗрдХреНрд╢рди рд╣реЗ рд╢рд┐рд░реЛрдмрд┐рдВрджреВрдВрдЪреЗ рдХрдиреЗрдХреНрд╢рди рдЖрд╣реЗ.

рдЗрддрд░ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓реНрд╕рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╕реНрдерд╛рдВрдордзреАрд▓ рд╕рдВрдмрдВрдзрд╛рдВрдирд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреЗрддрд╛рдд. рдореНрд╣рдгреВрди, рдкрд░рджреЗрд╢реА рдХреА рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдорд╛рдзреНрдпрдорд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╕рдВрдмрдВрдзрд╛рдВрдЪреА рдЧрдгрдирд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рдХреЗрд╡рд│ рд╢рд┐рд░реЛрдмрд┐рдВрджреВ рдЖрдгрд┐ рдХрд┐рдирд╛рд░реА рдЕреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рд╡рд╛рдкрд░реВрди рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.

рдЖрдзреБрдирд┐рдХ рдЬрдЧрд╛рдд, рдореЙрдбреЗрд▓рд┐рдВрдЧ рд╕рдВрдмрдВрдзрд╛рдВрдирд╛ рд╡рд╛рдврддреНрдпрд╛ рдЬрдЯрд┐рд▓ рддрдВрддреНрд░рд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдирд╛рддреЗрд╕рдВрдмрдВрдзрд╛рдВрдЪреЗ рдореЙрдбреЗрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдЖрд▓реЗрдЦрд╛рдЪреЗ рд╢рд┐рд░реЛрдмрд┐рдВрджреВ рдЖрдгрд┐ рдХрдбрд╛ рдирд╡реАрди рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЯреЗрдмрд▓реНрд╕ рдореНрд╣рдгреВрди рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЬрд╛рддрд╛рдд: NODE рдЖрдгрд┐ EDGE. рдЖрд▓реЗрдЦ рдХреНрд╡реЗрд░реА MATCH() рдирд╛рд╡рд╛рдЪреЗ рдирд╡реАрди T-SQL рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░рддрд╛рдд. рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рддреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд░реВрдкрд╛рдВрддрд░рдгрд╛рдЪреА рдЧрд░рдЬ рди рдкрдбрддрд╛ рддреБрдордЪреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.

рдЖрд▓реЗрдЦ рдореЙрдбреЗрд▓рдЪреЗ рдлрд╛рдпрджреЗ

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

рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рднрд╡рд┐рд╖реНрдпрд╛рдд рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░реВрди рдЕрдиреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рдлрд╛рдпрджрд╛ рд╣реЛрдИрд▓.

рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рд┐рдВрдЧ: рд░рд┐рд▓реЗрд╢рдирд▓ рддреЗ рдЖрд▓реЗрдЦ рдореЙрдбреЗрд▓

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЙрджрд╛рд╣рд░рдг:

рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреНрдпрд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд╛рд╕рд╣ рд╕рдВрд╕реНрдерд╛рддреНрдордХ рд╕рдВрд░рдЪрдиреЗрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ: рдПрдХ рдХрд░реНрдордЪрд╛рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рд╕ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЛ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╡рд░рд┐рд╖реНрда рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рд╕ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЛ, рдЗрддреНрдпрд╛рджреА. рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдкрдиреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди, рдпрд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдд рдХрд┐рддреАрд╣реА рд╕реНрддрд░ рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдкрд░рдВрддреБ рд╕реНрддрд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЬрд╕рдЬрд╢реА рд╡рд╛рдврдд рдЬрд╛рддреЗ, рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдирд╛рддреЗрд╕рдВрдмрдВрдзрд╛рдВрдЪреА рдЧрдгрдирд╛ рдХрд░рдгреЗ рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рдХрдареАрдг рд╣реЛрдд рдЬрд╛рддреЗ. рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреА рдкрджрд╛рдиреБрдХреНрд░рдореЗ, рд╡рд┐рдкрдгрдирд╛рддреАрд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд┐рдВрд╡рд╛ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рдирдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рдгреЗ рдЦреВрдк рдХрдареАрдг рдЖрд╣реЗ. рдПрд╕рдХреНрдпреВрдПрд▓ рдЧреНрд░рд╛рдл рд╡рд┐рд╡рд┐рдз рд╕реНрддрд░рд╛рдВрдЪреНрдпрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд╕реЗ рдХрд░реВ рд╢рдХрддреЛ рддреЗ рдкрд╛рд╣реВ.

рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рд╕рд╛рдареА рдЖрдкрдг рдПрдХ рд╕рд╛рдзреЗ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓ рдмрдирд╡реВ. рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреЗ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░реВ EMP рдЖрдпрдбреА рд╕рд╣ EMPNO рдЖрдгрд┐ рд╕реНрддрдВрдн рдПрдордЬреАрдЖрд░, рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдЪреНрдпрд╛ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХрд╛рдЪрд╛ (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ) рдУрд│рдЦрдХрд░реНрддрд╛ рджрд░реНрд╢рд╡рд┐рдд рдЖрд╣реЗ. рдкрджрд╛рдиреБрдХреНрд░рдорд╛рдмрджреНрджрд▓рдЪреА рд╕рд░реНрд╡ рдорд╛рд╣рд┐рддреА рдпрд╛ рд╕рд╛рд░рдгреАрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рд╕реНрддрдВрдн рд╡рд╛рдкрд░реВрди рдЪреМрдХрд╢реА рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ EMPNO ╨╕ рдПрдордЬреАрдЖрд░.

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреА рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╕реНрд╡рд░реВрдкрд╛рдд рдЪрд╛рд░ рд╕реНрддрд░рд╛рдВрдЪреНрдпрд╛ рдиреЗрд╕реНрдЯрд┐рдВрдЧрд╕рд╣ рд╕рдорд╛рди рд╕рдВрд╕реНрдерд╛рддреНрдордХ рд╕рдВрд░рдЪрдирд╛ рдореЙрдбреЗрд▓ рджрд░реНрд╢рд╡рддреЗ. рдХрд░реНрдордЪрд╛рд░реА рд╣реЗ рдЯреЗрдмрд▓рдордзреАрд▓ рдЖрд▓реЗрдЦрд╛рдЪреЗ рд╢рд┐рд░реЛрдмрд┐рдВрджреВ рдЖрд╣реЗрдд EMP. "рдХрд░реНрдордЪрд╛рд░реА" рд╣реА рд╕рдВрд╕реНрдерд╛ "рд╕рдмрдорд┐рдЯ" (рд░рд┐рдкреЛрд░реНрдЯ рдЯреВ) рдХрдиреЗрдХреНрд╢рдирджреНрд╡рд╛рд░реЗ рд╕реНрд╡рддрдГрд╢реА рдЬреЛрдбрд▓реЗрд▓реА рдЕрд╕рддреЗ. рдЖрд▓реЗрдЦрд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ, рджреБрд╡рд╛ рдореНрд╣рдгрдЬреЗ рдПрдХ рдХрд┐рдирд╛рд░ (EDGE) рдЬреЛ рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреЗ рдиреЛрдбреНрд╕ (NODE) тАЛтАЛрдЬреЛрдбрддреЛ.

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдЪрд▓рд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЯреЗрдмрд▓ рдмрдирд╡реВ EMP рдЖрдгрд┐ рд╡рд░реАрд▓ рдЖрдХреГрддреАрдиреБрд╕рд╛рд░ рддреЗрдереЗ рдореВрд▓реНрдпреЗ рдЬреЛрдбрд╛.

CREATE TABLE EMP
(EMPNO INT NOT NULL,
ENAME VARCHAR(20),
JOB VARCHAR(10),
MGR INT,
JOINDATE DATETIME,
SALARY DECIMAL(7, 2),
COMMISIION DECIMAL(7, 2),
DNO INT)
 
INSERT INTO EMP VALUES
(7369, 'SMITH', 'CLERK', 7902, '02-MAR-1970', 8000, NULL, 2),
(7499, 'ALLEN', 'SALESMAN', 7698, '20-MAR-1971', 1600, 3000, 3),
(7521, 'WARD', 'SALESMAN', 7698, '07-FEB-1983', 1250, 5000, 3),
(7566, 'JONES', 'MANAGER', 7839, '02-JUN-1961', 2975, 50000, 2),
(7654, 'MARTIN', 'SALESMAN', 7698, '28-FEB-1971', 1250, 14000, 3),
(7698, 'BLAKE', 'MANAGER', 7839, '01-JAN-1988', 2850, 12000, 3),
(7782, 'CLARK', 'MANAGER', 7839, '09-APR-1971', 2450, 13000, 1),
(7788, 'SCOTT', 'ANALYST', 7566, '09-DEC-1982', 3000, 1200, 2),
(7839, 'KING', 'PRESIDENT', NULL, '17-JUL-1971', 5000, 1456, 1),
(7844, 'TURNER', 'SALESMAN', 7698, '08-AUG-1971', 1500, 0, 3),
(7876, 'ADAMS', 'CLERK', 7788, '12-MAR-1973', 1100, 0, 2),
(7900, 'JAMES', 'CLERK', 7698, '03-NOV-1971', 950, 0, 3),
(7902, 'FORD', 'ANALYST', 7566, '04-MAR-1961', 3000, 0, 2),
(7934, 'MILLER', 'CLERK', 7782, '21-JAN-1972', 1300, 0, 1)

рдЦрд╛рд▓реАрд▓ рдЪрд┐рддреНрд░ рдХрд░реНрдордЪрд╛рд░реА рджрд░реНрд╢рд╡рд┐рддреЗ:

  • рд╕рд╣ рдХрд░реНрдордЪрд╛рд░реА EMPNO 7369 7902 рдкрд╛рд│рддреЛ;
  • рд╕рд╣ рдХрд░реНрдордЪрд╛рд░реА EMPNO 7902 7566 рдЪреЗ рдкрд╛рд▓рди рдХрд░рддреЗ
  • рд╕рд╣ рдХрд░реНрдордЪрд╛рд░реА EMPNO 7566 7839 рдЪреЗ рдкрд╛рд▓рди рдХрд░рддреЗ

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЖрддрд╛ рддреНрдпрд╛рдЪ рдбреЗрдЯрд╛рдЪреЗ рдЖрд▓реЗрдЦ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдкрд╛рд╣реВ. EMPLOYEE рд╢рд┐рд░реЛрдмрд┐рдВрджреВрдордзреНрдпреЗ рдЕрдиреЗрдХ рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рд╕реНрд╡рддрдГрд╢реАрдЪ "рдЧреМрдг" рдирд╛рддреЗрд╕рдВрдмрдВрдзрд╛рдиреЗ (EmplReportsTo) рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗрдд. EmplReportsTo рд╣реЗ рдирд╛рддреНрдпрд╛рдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ.

рдПрдЬ рдЯреЗрдмрд▓ (EDGE) рдордзреНрдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреЗрдЦреАрд▓ рдЕрд╕реВ рд╢рдХрддрд╛рдд.

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЪрд▓рд╛ рдиреЛрдб рдЯреЗрдмрд▓ EmpNode рдмрдирд╡реВ

рдиреЛрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЕрдЧрджреА рд╕реЛрдкреА рдЖрд╣реЗ: рдЕрднрд┐рд╡реНрдпрдХреНрддреАрд╕рд╛рдареА рд╕рд╛рд░рдгреА рддрдпрд╛рд░ рдХрд░рд╛ рд╢реЗрд╡рдЯреА рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ "рдиреЛрдб рдореНрд╣рдгреВрди".

CREATE TABLE dbo.EmpNode(
ID Int Identity(1,1),
EMPNO NUMERIC(4) NOT NULL,
ENAME VARCHAR(10),
MGR NUMERIC(4),
DNO INT
) AS NODE;

рдЖрддрд╛ рд░реЗрдЧреНрдпреБрд▓рд░ рдЯреЗрдмрд▓рдордзреАрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд╛рдл рдЯреЗрдмрд▓рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реВ. рдкреБрдвреЗ рдЗрдиреНрд╕рд░реНрдЯ рд░рд┐рд▓реЗрд╢рдирд▓ рдЯреЗрдмрд▓рдордзреВрди рдбреЗрдЯрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ EMP.

INSERT INTO EmpNode(EMPNO,ENAME,MGR,DNO) select empno,ename,MGR,dno from emp

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рд╡рд┐рд╢реЗрд╖ рд╕реНрддрдВрднрд╛рддреАрд▓ рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рдЯреЗрдмрд▓рдордзреНрдпреЗ $node_id_* рдиреЛрдб рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ JSON рдореНрд╣рдгреВрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпрд╛ рд╕рд╛рд░рдгреАрдЪреНрдпрд╛ рдЙрд░реНрд╡рд░рд┐рдд рд╕реНрддрдВрднрд╛рдВрдордзреНрдпреЗ рдиреЛрдбрдЪреЗ рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд.

рдХрдбрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ (EDGE)

рдПрдЬ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╣реЗ рдиреЛрдб рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ, рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдХреАрд╡рд░реНрдб рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ "рдПрдЬ рдПрдЬ".

CREATE TABLE empReportsTo(Deptno int) AS EDGE

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдЖрддрд╛ рд╕реНрддрдВрдн рд╡рд╛рдкрд░реВрди рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдордзреАрд▓ рдХрдиреЗрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВрдпрд╛ EMPNO ╨╕ рдПрдордЬреАрдЖрд░. рд╕рдВрд╕реНрдерд╛рддреНрдордХ рд░рдЪрдирд╛ рдЖрдХреГрддреА рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХрд╕реЗ рд▓рд┐рд╣рд╛рдпрдЪреЗ рддреЗ рджрд░реНрд╢рд╡рддреЗ рдЗрдиреНрд╕рд░реНрдЯ.

INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 1),
   	(SELECT $node_id FROM EmpNode WHERE id = 13),20);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 2),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),10);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 3),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),10)
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 4),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 5),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 6),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 7),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 8),
   	(SELECT $node_id FROM EmpNode WHERE id = 4),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 9),
   	(SELECT $node_id FROM EmpNode WHERE id = 9),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 10),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 11),
   	(SELECT $node_id FROM EmpNode WHERE id = 8),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 12),
   	(SELECT $node_id FROM EmpNode WHERE id = 6),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 13),
   	(SELECT $node_id FROM EmpNode WHERE id = 4),30);
INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 14),
   	(SELECT $node_id FROM EmpNode WHERE id = 7),30);

рдбреАрдлреЙрд▓реНрдЯ рдПрдЬ рдЯреЗрдмрд▓рдордзреНрдпреЗ рддреАрди рдХреЙрд▓рдо рдЕрд╕рддрд╛рдд. рдкрд╣рд┐рд▓рд╛, $edge_id тАФ JSON рдлреЙрд░реНрдордордзреНрдпреЗ рдПрдЬ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░. рдЗрддрд░ рджреЛрди ($from_id ╨╕ $to_id) рдиреЛрдбреНрд╕рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рдирдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рд╛. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХрдбрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгрдзрд░реНрдо рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ рдЖрд╣реЗ Deptno.

рд╕рд┐рд╕реНрдЯрдо рджреГрд╢реНрдпреЗ

рдкреНрд░рдгрд╛рд▓реА рджреГрд╢реНрдпрд╛рдд sys.tables рджреЛрди рдирд╡реАрди рд╕реНрддрдВрдн рджрд┐рд╕реВ рд▓рд╛рдЧрд▓реЗ рдЖрд╣реЗрдд:

  1. is_edge
  2. is_node

SELECT t.is_edge,t.is_node,*
FROM sys.tables t
WHERE name like 'emp%'

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдПрд╕рдПрд╕рдПрдордПрд╕

рдЖрд▓реЗрдЦрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЧреНрд░рд╛рдл рдЯреЗрдмрд▓реНрд╕ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗрдд. рдиреЛрдб рдЯреЗрдмрд▓ рдЖрдпрдХреЙрди рдмрд┐рдВрджреВрдиреЗ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдХрд╛рда рдЯреЗрдмрд▓ рдЪрд┐рдиреНрд╣ рджреЛрди рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрддреБрд│рд╛рдВрд╕рд╣ (рдереЛрдбреЗ рдЪрд╖реНрдореНрдпрд╛рд╕рд╛рд░рдЦреЗ) рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдореЕрдЪ рдЕрднрд┐рд╡реНрдпрдХреНрддреА

рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдореЕрдЪ CQL (Cypher Query Language) рд╡рд░реВрди рдШреЗрддрд▓реЗ. рдЧреНрд░рд╛рдлрдЪреНрдпрд╛ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреА рдЪреМрдХрд╢реА рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╣рд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рдорд╛рд░реНрдЧ рдЖрд╣реЗ. CQL рдПрдХрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдиреЗ рд╕реБрд░реВ рд╣реЛрддреЛ рдореЕрдЪ.

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

MATCH (<graph_search_pattern>)
 
<graph_search_pattern>::=
    {<node_alias> {
                 	{ <-( <edge_alias> )- }
               	| { -( <edge_alias> )-> }
             	<node_alias>
             	}
 	}
 	[ { AND } { ( <graph_search_pattern> ) } ]
 	[ ,...n ]
 
<node_alias> ::=
    node_table_name | node_alias
 
<edge_alias> ::=
    edge_table_name | edge_alias

рдЙрджрд╛рд╣рд░рдгреЗ

рдЪрд▓рд╛ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгреЗ рдкрд╛рд╣реВ.

рдЦрд╛рд▓реА рджрд┐рд▓реЗрд▓реА рдХреНрд╡реЗрд░реА рд╕реНрдорд┐рде рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЬреНрдпрд╛ рдХрд░реНрдордЪрд╛рд▒реНрдпрд╛рдВрдирд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрддрд╛рдд рддреЗ рджрд╛рдЦрд╡рддреЗ.

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR
FROM
    empnode e, empnode e1, empReportsTo m
WHERE
    MATCH(e-(m)->e1)
and e.ENAME='SMITH'

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЦрд╛рд▓реАрд▓ рдХреНрд╡реЗрд░реА рд╕реНрдорд┐рдерд╕рд╛рдареА рджреНрд╡рд┐рддреАрдп-рд╕реНрддрд░реАрдп рдХрд░реНрдордЪрд╛рд░реА рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ. рд╡рд╛рдХреНрдп рдХрд╛рдврд▓реЗ рддрд░ WHERE, рдирдВрддрд░ рдкрд░рд┐рдгрд╛рдо рд╕рд░реНрд╡ рдХрд░реНрдордЪрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрд▓.

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR
FROM
    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2
WHERE
    MATCH(e-(m)->e1-(m1)->e2)
and e.ENAME='SMITH'

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЖрдгрд┐ рд╢реЗрд╡рдЯреА, рддреГрддреАрдп-рд╕реНрддрд░реАрдп рдХрд░реНрдордЪрд╛рд░реА рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рдВрд╕рд╛рдареА рд╡рд┐рдирдВрддреА.

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR,E3.EMPNO,e3.ENAME,E3.MGR
FROM
    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2, empReportsTo M2, empnode e3
WHERE
    MATCH(e-(m)->e1-(m1)->e2-(m2)->e3)
and e.ENAME='SMITH'

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп
рдЖрддрд╛ рд╕реНрдорд┐рдердЪреЗ рдмреЙрд╕ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рджрд┐рд╢рд╛ рдмрджрд▓реВрдпрд╛.

SELECT
E.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR,E3.EMPNO,e3.ENAME,E3.MGR
FROM
    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2, empReportsTo M2, empnode e3
WHERE
    MATCH(e<-(m)-e1<-(m1)-e2<-(m2)-e3)

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдирд┐рд╖реНрдХрд░реНрд╖

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдиреЗ рд╕реНрд╡рддрдГрд▓рд╛ рд╡рд┐рд╡рд┐рдз IT рд╡реНрдпрд╡рд╕рд╛рдп рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рд╕рдВрдкреВрд░реНрдг рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭ рд╕реЛрд▓реНрдпреВрд╢рди рдореНрд╣рдгреВрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. SQL рдЧреНрд░рд╛рдлрдЪреА рдкрд╣рд┐рд▓реА рдЖрд╡реГрддреНрддреА рдЦреВрдк рдЖрд╢рд╛рджрд╛рдпрдХ рдЖрд╣реЗ. рдХрд╛рд╣реА рдорд░реНрдпрд╛рджрд╛ рдЕрд╕реВрдирд╣реА, рдЖрд▓реЗрдЦрд╛рдВрдЪреА рдХреНрд╖рдорддрд╛ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдзреАрдЪ рдкреБрд░реЗрд╢реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╣реЗ.

SQL рдЧреНрд░рд╛рдл рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ SQL рдЗрдВрдЬрд┐рдирдордзреНрдпреЗ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдорд╛рдХрд▓рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рдЖрдзреАрдЪ рд╕рд╛рдВрдЧрд┐рддрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗрдд:

рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдЭрдо рд╕рдорд░реНрдерди рдирд╛рд╣реА.

  • рдХреЗрд╡рд│ рджрд┐рд╢рд╛рд╣реАрди рдХрдиреЗрдХреНрд╢рди рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд.
  • рдХрд┐рдирд╛рд░реЗ $from_id рдЖрдгрд┐ $to_id рд╕реНрддрдВрдн рдЕрджреНрдпрддрдирд╛рджреНрд╡рд╛рд░реЗ рдЕрдкрдбреЗрдЯ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реАрдд.
  • рд╕рдВрдХреНрд░рдордгрд╛рддреНрдордХ рдмрдВрдж рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рддреЗ CTE рд╡рд╛рдкрд░реВрди рдорд┐рд│рд╡рддрд╛ рдпреЗрддрд╛рдд.
  • рдЗрди-рдореЗрдорд░реА OLTP рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ.
  • рдЯреЗрдореНрдкреЛрд░рд▓ рдЯреЗрдмрд▓реНрд╕ (рд╕рд┐рд╕реНрдЯрдо-рд╡реНрд╣рд░реНрдЬрди рдХреЗрд▓реЗрд▓реЗ рдЯреЗрдореНрдкреЛрд░рд▓ рдЯреЗрдмрд▓), рддрд╛рддреНрдкреБрд░рддреНрдпрд╛ рд╕реНрдерд╛рдирд┐рдХ рдЖрдгрд┐ рдЧреНрд▓реЛрдмрд▓ рдЯреЗрдмрд▓реНрд╕рдирд╛ рд╕рдкреЛрд░реНрдЯ рдирд╛рд╣реА.
  • рдЯреЗрдмрд▓ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рдЯреЗрдмрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ NODE рдХрд┐рдВрд╡рд╛ EDGE рдореНрд╣рдгреВрди рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд.
  • рдХреНрд░реЙрд╕-рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд.
  • рдирд┐рдпрдорд┐рдд рд╕рд╛рд░рдгреНрдпрд╛рдВрдирд╛ рдЖрд▓реЗрдЦ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдереЗрдЯ рдорд╛рд░реНрдЧ рдХрд┐рдВрд╡рд╛ рд╡рд┐рдЭрд╛рд░реНрдб рдирд╛рд╣реА.
  • рдЖрд▓реЗрдЦ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреЗрд╣реА GUI рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреБрдореНрд╣реА Power BI рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

SQL рд╕рд░реНрд╡реНрд╣рд░ 2017 рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдЪрд╛ рдкрд░рд┐рдЪрдп

рдкреБрдвреЗ рд╡рд╛рдЪрд╛:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛