αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆ "αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ MS SQL Server" αž™αžΎαž„αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αžŠαŸαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž˜αž½αž™αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αŸ”

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαž‚αžΊαž‡αžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž•αŸ’αž“αŸ‚αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžαŸ’αž‰αž»αŸ†αž–αŸ’αž™αžΆαž™αžΆαž˜αž’αŸ’αžœαžΎαžαžΆαž˜αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αž αž“αž·αž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžαŸ’αž˜αžΈαŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž“αŸαŸ‡ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αž“αž·αž„ NoSQL αžαŸ’αž‰αž»αŸ†αžƒαžΎαž‰αžαžΆαžαž½αž“αžΆαž‘αžΈαž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž‘αžΎαž„αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰ αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ‚αž”αž”αŸ’αžšαž–αŸƒαžŽαžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αžαŸ‚αž˜αž‘αžΆαŸ†αž„ NoSQL αž˜αž·αž“αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αŸ” αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„αž“αŸƒαž…αŸ†αž“αž½αž“αž“αŸƒαž€αž˜αŸ’αžšαž·αžαžαŸ†αžŽ αž“αž·αž„αž‘αŸ†αž αŸ†αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž˜αžΆαž“αž€αžΆαžšαžαž™αž…αž»αŸ‡αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž αžΎαž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž…αŸ†αž“αž½αž“ JOINs αž€αŸαž€αžΎαž“αž‘αžΎαž„αž•αž„αžŠαŸ‚αžšαŸ”

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž˜αžΆαž“αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜ (αž§αž‘αžΆαž αžšαžŽαŸαž€αžΆαžšαž”αŸ’αžšαžΎ CTEs αž‘αžΎαž„αžœαž·αž‰) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αžαŸ‚αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž˜αž»αžαž„αžΆαžšαž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ SQL Server αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž˜αŸ’αžšαž·αžαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸƒαž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αŸ” αž‘αžΆαŸ†αž„αž‚αŸ†αžšαžΌαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžŸαŸ†αžŽαž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαžΆαž˜αž‰αŸ’αž‰ αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΎαž“αž‘αžΎαž„αŸ” αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž›αŸαžαž€αžΌαžŠαž™αŸ‰αžΆαž„αžŸαŸ†αžαžΆαž“αŸ‹αŸ”

αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαž‚αžΊαž‡αžΆαž—αžΆαžŸαžΆαž”αž‰αŸ’αž…αŸαž‰αž˜αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αŸ” αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜ IT αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžŠαžΌαž…αž‡αžΆ αž”αžŽαŸ’αžαžΆαž‰αžŸαž„αŸ’αž‚αž˜ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„αž€αžΆαžšαž€αŸ’αž›αŸ‚αž„αž”αž“αŸ’αž›αŸ† αž€αžΆαžšαžœαž·αž—αžΆαž‚αž”αžŽαŸ’αžαžΆαž‰αž–αŸαžαŸŒαž˜αžΆαž“αžœαž·αž‘αŸ’αž™αžΆ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαžŸαž„αŸ’αž‚αž˜ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž•αž›αž·αžαž•αž› αž“αž·αž„αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαŸ”

αž˜αž»αžαž„αžΆαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαž“αŸ…αž€αŸ’αž“αž»αž„ SQL Server αž‚αžΊαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΆαž“αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ αž“αž·αž„αž˜αžΆαž“αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αž›αŸ’αž’αŸ”

αž‚αŸ†αžšαžΌαž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

αž€αŸ’αžšαžΆαž αŸ’αžœαž‚αžΊαž‡αžΆαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž…αŸ†αž“αž»αž…αž€αŸ†αž–αžΌαž› (αžαŸ’αž“αžΆαŸ†αž„ αžαŸ’αž“αžΆαŸ†αž„) αž“αž·αž„αž‚αŸ‚αž˜ (αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αž‚αŸ‚αž˜)αŸ” Vertices αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αž’αž„αŸ’αž‚αž—αžΆαž– αž αžΎαž™αž‚αŸ‚αž˜αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž’αžΆαž…αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αŸ”

αž€αŸ’αžšαžΆαž αŸ’αžœαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αŸ†αžšαžΌαž’αž„αŸ’αž‚αž—αžΆαž–αž‡αžΆαž€αŸ’αžšαžΆαž αŸ’αžœαžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž€αŸ’αž“αž»αž„αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈαž€αŸ’αžšαžΆαž αŸ’αžœαŸ” αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αžΊαž”αž‰αŸ’αžˆαžš αž“αž·αž„αž‚αŸ‚αž˜αŸ” αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž‚αžΊαž‡αžΆαž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž“αŸƒαž…αŸ†αž“αž»αž…αž€αŸ†αž–αžΌαž› αž“αž·αž„αž‚αŸ‚αž˜αŸ” αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‚αžΊαž‡αžΆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸƒαž€αŸ†αž–αžΌαž›αŸ”

αž˜αž·αž“αžŠαžΌαž…αž‚αŸ†αžšαžΌαž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαž•αŸ’αžαž›αŸ‹αž’αžΆαž‘αž·αž—αžΆαž–αžŠαž›αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„αž’αž„αŸ’αž‚αž—αžΆαž–αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‚αžŽαž“αžΆαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ„αžšαž”αžšαž‘αŸαžŸ αž¬αžαžΆαž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αŸαŸ” αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž‚αŸ†αžšαžΌαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαŸ‚ vertex αž“αž·αž„ abstractions αž‚αŸ‚αž˜αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž›αŸ„αž€αž“αžΆαž–αŸαž›αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸαŸ‡ αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‚αŸ†αžšαžΌαž‘αžΆαž˜αž‘αžΆαžšαž±αŸ’αž™αž˜αžΆαž“αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž€αžΆαž“αŸ‹αžαŸ‚αž‘αŸ†αž“αžΎαž”αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž‚αŸ†αžšαžΌαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ SQL Server 2017 αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŸαž˜αžαŸ’αžαž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαŸ” αž…αŸ†αž“αž»αž…αž€αŸ†αž–αžΌαž› αž“αž·αž„αž‚αŸ‚αž˜αž“αŸƒαž€αŸ’αžšαžΆαž αŸ’αžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ†αžŽαžΆαž„αž‡αžΆαž”αŸ’αžšαž—αŸαž‘αžαžΆαžšαžΆαž„αžαŸ’αž˜αžΈαŸ– NODE αž“αž·αž„ EDGE αŸ” αžŸαŸ†αžŽαž½αžšαž€αŸ’αžšαžΆαž αŸ’αžœαž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžš T-SQL αžαŸ’αž˜αžΈαž αŸ…αžαžΆ MATCH() αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ SQL Server 2017 αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αžΆαž“αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸƒαž‚αŸ†αžšαžΌαž€αŸ’αžšαžΆαž αŸ’αžœ

αžŸαž–αŸ’αžœαžαŸ’αž„αŸƒαž“αŸαŸ‡ αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αž“αž·αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαž˜αž‘αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž‘αžΎαž„ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αžšαŸ†αž–αžΉαž„αžαžΆαž“αžΉαž„αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αž–αžŸαŸ‹ αž“αž·αž„αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹αŸ” αžαŸ†αžŽαžΆαž„αž€αŸ’αžšαžΆαž αŸ’αžœαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„αž‡αž½αž™αž±αŸ’αž™αž‘αž‘αž½αž›αž”αžΆαž“αž›αž‘αŸ’αž’αž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αŸ”

αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœαž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαŸ”

αž‚αŸ†αžšαžΌαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ– αž–αžΈαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‘αŸ…αž“αžΉαž„αž‚αŸ†αžšαžΌαž€αŸ’αžšαžΆαž αŸ’αžœ

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αž§αž‘αžΆαž αžšαžŽαŸ:

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž„αŸ’αž‚αž—αžΆαž–αžŠαŸ‚αž›αž˜αžΆαž“αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ– αž”αž»αž‚αŸ’αž‚αž›αž·αž€αžšαžΆαž™αž€αžΆαžšαžŽαŸαž‘αŸ…αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαžΆαž™αž€αžΆαžšαžŽαŸαž‘αŸ…αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αžΆαž“αŸ‹αžαŸ’αž–αžŸαŸ‹αŸ”αž›αŸ” αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž…αŸ†αž“αž½αž“αž€αž˜αŸ’αžšαž·αžαžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αž“αŸαŸ‡αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž…αŸ†αž“αž½αž“αž“αŸƒαž€αž˜αŸ’αžšαž·αžαž€αžΎαž“αž‘αžΎαž„ αž€αžΆαžšαž‚αžŽαž“αžΆαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž€αžΆαž“αŸ‹αžαŸ‚αž–αž·αž”αžΆαž€αŸ” αžœαžΆαž–αž·αž”αžΆαž€αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžšαž˜αŸƒαž˜αžΎαž›αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αžšαž”αžŸαŸ‹αž“αž·αž™αŸ„αž‡αž·αž αž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αž€αŸ’αž“αž»αž„αž‘αžΈαž•αŸ’αžŸαžΆαžš αž¬αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αžŸαž„αŸ’αž‚αž˜αŸ” αžŸαžΌαž˜αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› SQL Graph αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αž˜αŸ’αžšαž·αžαž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αž…αžΌαžšαž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž‚αŸ†αžšαžΌαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαžΆαž˜αž‰αŸ’αž‰αŸ” αž”αž„αŸ’αž€αžΎαžαžαžΆαžšαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€ EMP αž‡αžΆαž˜αž½αž™αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ EMPNO αž“αž·αž„αž‡αž½αžšαžˆαžš αž’αžΉαž˜αž‡αžΈαž’αžšA αžŠαŸ‚αž›αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž”αŸ’αžšαž’αžΆαž“ (αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„) αžšαž”αžŸαŸ‹αž“αž·αž™αŸ„αž‡αž·αžαŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αŸ†αž–αžΈαž‹αžΆαž“αžΆαž“αž»αž€αŸ’αžšαž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž“αŸαŸ‡ αž αžΎαž™αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž½αžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž‡αž½αžšαžˆαžš EMPNO ΠΈ αž’αžΉαž˜αž‡αžΈαž’αžš.

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž€αŸαž”αž„αŸ’αž αžΆαž‰αž‚αŸ†αžšαžΌαž‚αŸ†αž“αžΌαžŸαžαžΆαž„ org αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αžšαž·αž XNUMX αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ†αž”αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹αŸ” αž“αž·αž™αŸ„αž‡αž·αžαž‚αžΊαž‡αžΆαž…αŸ†αž“αž»αž…αž€αŸ†αž–αžΌαž›αž“αŸƒαž€αŸ’αžšαžΆαž αŸ’αžœαž–αžΈαžαžΆαžšαžΆαž„ EMP. αž’αž„αŸ’αž‚αž—αžΆαž– "αž“αž·αž™αŸ„αž‡αž·αž" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžαŸ’αž›αž½αž“αžœαžΆαžŠαŸ„αž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ "αž”αž‰αŸ’αž‡αžΌαž“" (αžšαžΆαž™αž€αžΆαžšαžŽαŸαž‘αŸ…) αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž–αžΆαž€αŸ’αž™αž€αŸ’αžšαžΆαž αŸ’αžœ αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž‚αžΊαž‡αžΆαž‚αŸ‚αž˜αž˜αž½αž™ (EDGE) αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αž“αžΆαŸ†αž„ (NODEs) αžšαž”αžŸαŸ‹αž”αž»αž‚αŸ’αž‚αž›αž·αž€αŸ”

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 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 Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαžΌαž˜αž˜αžΎαž›αž€αžΆαžšαžαŸ†αžŽαžΆαž„αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸƒαž€αŸ’αžšαžΆαž αŸ’αžœαž˜αž½αž™αŸ” αžαŸ’αž“αžΆαŸ†αž„ EMPLOYEE αž˜αžΆαž“αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž…αŸ’αžšαžΎαž“ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžαŸ’αž›αž½αž“αžœαžΆαžŠαŸ„αž™αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ "αž”αž‰αŸ’αž‡αžΌαž“" (EmplReportsTo) αŸ” EmplReportsTo αž‚αžΊαž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αž“αŸƒαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αŸ”

αžαžΆαžšαžΆαž„αž‚αŸ‚αž˜ (EDGE) αž€αŸαž’αžΆαž…αž˜αžΆαž“αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž•αž„αžŠαŸ‚αžšαŸ”

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αž”αž„αŸ’αž€αžΎαžαžαžΆαžšαžΆαž„αžαŸ’αž“αžΆαŸ†αž„ EmpNode

αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαžαŸ’αž“αžΆαŸ†αž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ– αž‘αŸ…αž€αž“αŸ’αžŸαŸ„αž˜ αž”αž„αŸ’αž€αžΎαžαžαžΆαžšαžΆαž„ αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹ αž‡αžΆ NODE.

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

αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž…αžΌαžšαž™αžΎαž„αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžαžΆαžšαžΆαž„αž’αž˜αŸ’αž˜αžαžΆαž‘αŸ…αž‡αžΆαž€αŸ’αžšαžΆαž αŸ’αžœαž˜αž½αž™αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹ INSERT αŸ” αž”αž‰αŸ’αž…αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžαžΆαžšαžΆαž„αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ EMP.

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

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αžαŸ’αž“αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž‡αž½αžšαžˆαžšαž–αž·αžŸαŸαžŸ $node_id_* αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‡αžΆ JSON αŸ” αž‡αž½αžšαžˆαžšαžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž“αŸƒαžαžΆαžšαžΆαž„αž“αŸαŸ‡αž˜αžΆαž“αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαžšαž”αžŸαŸ‹αžαŸ’αž“αžΆαŸ†αž„αŸ”

αž”αž„αŸ’αž€αžΎαžαž‚αŸ‚αž˜ (EDGE)

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžαžΆαžšαžΆαž„αž‚αŸ‚αž˜αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžαžΆαžšαžΆαž„αžαŸ’αž“αžΆαŸ†αž„ αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡ αž‡αžΆ EDGE.

CREATE TABLE empReportsTo(Deptno int) AS EDGE

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž…αžΌαžšαž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„αž”αž»αž‚αŸ’αž‚αž›αž·αž€αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‡αž½αžšαžˆαžš EMPNO ΠΈ αž’αžΉαž˜αž‡αžΈαž’αžš. αžαžΆαžšαžΆαž„ org αž”αž„αŸ’αž αžΆαž‰αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž–αžΈαžšαž”αŸ€αž”αžŸαžšαžŸαŸαžš INSERT αŸ”.

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. αž‚αžΊ_αž‚αŸ‚αž˜
  2. is_node

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

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

ធេសធេសធេស

αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αŸ’αžšαžΆαž αŸ’αžœαž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαžαžΆαžšαžΆαž„αž€αŸ’αžšαžΆαž αŸ’αžœαŸ” αžšαžΌαž”αžαŸ†αžŽαžΆαž„αžαžΆαžšαžΆαž„αžαŸ’αž“αžΆαŸ†αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ„αž™αž…αŸ†αžŽαž»αž… αž αžΎαž™αžšαžΌαž”αžαŸ†αžŽαžΆαž„αžαžΆαžšαžΆαž„αž‚αŸ‚αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ„αž™αžšαž„αŸ’αžœαž„αŸ‹αž–αžΈαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‚αŸ’αž“αžΆ (αžŠαŸ‚αž›αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž‡αžΆαžœαŸ‰αŸ‚αž“αžαžΆαž”αž“αŸ’αžαž·αž…)αŸ”

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

αž€αž“αŸ’αžŸαŸ„αž˜ MATCH

αž€αžΆαžšαž”αž‰αŸ’αž…αŸαž‰αž˜αžαž· MATCH αž™αž€αž–αžΈ CQL (Cypher Query Language)αŸ” αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αžœαž·αž’αžΈβ€‹αžŠαŸβ€‹αž˜αžΆαž“β€‹αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αžŸαžΆαž€αžŸαž½αžšβ€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αžŸαž˜αŸ’αž”αžαŸ’αžαž·β€‹αžšαž”αžŸαŸ‹β€‹αž€αŸ’αžšαžΆαž αŸ’αžœαŸ” CQL αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž€αž“αŸ’αžŸαŸ„αž˜ MATCH.

αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’

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

αž§αž‘αž αžšαžŽαŸ

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αžŸαŸ†αžŽαž½αžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž”αž„αŸ’αž αžΆαž‰αž”αž»αž‚αŸ’αž‚αž›αž·αž€αžŠαŸ‚αž› Smith αž“αž·αž„αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αžšαžΆαž™αž€αžΆαžšαžŽαŸαž‘αŸ…αŸ”

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 Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αžŸαŸ†αžŽαž½αžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αž»αž‚αŸ’αž‚αž›αž·αž€ αž“αž·αž„αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž˜αŸ’αžšαž·αžαž‘αžΈαž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SmithαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŠαž€αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž‡αžΌαž“ αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αŸ”

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 Server 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 Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ
αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž…αžΌαžšαž™αžΎαž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αžŸαžŠαŸ…αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž…αŸ…αž αŸ’αžœαžΆαž™αžšαž”αžŸαŸ‹ Smith αŸ”

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 Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

SQL Server 2017 αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαŸ’αž›αž½αž“αžœαžΆαž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž αž‚αŸ’αžšαžΆαžŸαž–αŸαž‰αž›αŸαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžš IT αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž€αŸ†αžŽαŸ‚αžŠαŸ†αž”αžΌαž„αž“αŸƒ SQL Graph αž‚αžΊαž˜αžΆαž“αž‡αŸ„αž‚αž‡αŸαž™αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αž›αŸ‡αž€αŸαžŠαŸ„αž™ αžœαžΆαž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αŸ’αžšαžΆαž αŸ’αžœαŸ”

αž˜αž»αžαž„αžΆαžš SQL Graph αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ SQL αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžšαž½αž…αž˜αž€αž αžΎαž™ SQL Server 2017 αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ polymorphism αŸ”

  • αž˜αžΆαž“αžαŸ‚αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹ unidirectional αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαŸ”
  • Edges αž˜αž·αž“αž’αžΆαž…αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‡αž½αžšαžˆαžš $from_id αž“αž·αž„ $to_id αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαžΆαž˜αžšαž™αŸˆ UPDATE αž”αžΆαž“αž‘αŸαŸ”
  • αž€αžΆαžšαž”αž·αž‘αž’αž“αŸ’αžαžšαž€αžΆαž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ CTEsαŸ”
  • αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžαŸ’αžαž» OLTP αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ”
  • αžαžΆαžšαžΆαž„αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ (αžαžΆαžšαžΆαž„αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ†αžŽαŸ‚αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’) αžαžΆαžšαžΆαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž“αž·αž„αž‡αžΆαžŸαž€αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸαŸ”
  • αž”αŸ’αžšαž—αŸαž‘αžαžΆαžšαžΆαž„ αž“αž·αž„αž’αžαŸαžšαžαžΆαžšαžΆαž„αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαž€αžΆαžŸαžαžΆαž‡αžΆ NODE ឬ EDGE αž”αžΆαž“αž‘αŸαŸ”
  • αžŸαŸ†αžŽαž½αžšαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸαŸ”
  • αž˜αž·αž“αž˜αžΆαž“αžœαž·αž’αžΈαž•αŸ’αž‘αžΆαž›αŸ‹ αž¬αž”αŸ’αžšαž—αŸαž‘αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž€αžΆαžš (αž’αŸ’αž“αž€αž‡αŸ†αž“αž½αž™αž€αžΆαžš) αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αŸ’αž›αŸ‚αž„αžαžΆαžšαžΆαž„αž’αž˜αŸ’αž˜αžαžΆαž‘αŸ…αž‡αžΆαžαžΆαžšαžΆαž„αž€αŸ’αžšαžΆαž αŸ’αžœαž‘αŸαŸ”
  • αž˜αž·αž“αž˜αžΆαž“ GUI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αžšαžΆαž αŸ’αžœαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ Power BI αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αŸ”

αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈ SQL Server 2017 αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αžšαžΆαž αŸ’αžœ

αž’αžΆαž“β€‹αž”αž“αŸ’αžαŸ‚αž˜:

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹