{"id":267,"date":"2008-05-09T20:14:07","date_gmt":"2008-05-09T20:14:07","guid":{"rendered":"http:\/\/6teen.ru\/?p=93"},"modified":"2008-08-27T04:28:05","modified_gmt":"2008-08-27T00:28:05","slug":"7312","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=267","title":{"rendered":"\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0432 SQL"},"content":{"rendered":"<p>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0432 SQL<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"width: 580px; height: 320px; overflow: auto; padding: 6px; margin: 0px; border: 1px inset #000000;\">\r\n<div>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0432 SQL  \u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0432 SQL. \u0427\u0430\u0441\u0442\u044c 1.  \u0414\u0435\u0440\u0435\u0432\u043e - \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0434 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0430. \u0413\u0440\u0430\u0444\u044b - \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u0443\u0433\u0430\u043c\u0438. \u041a\u0430\u0436\u0430\u044f \u0434\u0443\u0433\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0443\u0437\u043b\u0430\u043c\u0438. \u0412 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435, \u0443\u0437\u043b\u044b - \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0438, \u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u0434\u0443\u0433\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u0438\u044f. \u0412 \u043f\u0435\u0440\u0435\u0447\u043d\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0443\u0437\u043b\u044b - \u043c\u043e\u0434\u0443\u043b\u0438 (\u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0434\u043e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439), \u0438 \u0434\u0443\u0433\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \"\u0441\u0434\u0435\u043b\u0430\u043d \u0438\u0437\".  \u0412\u0435\u0440\u0448\u0438\u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u043c. \u0412 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435, \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a; \u0432 \u043f\u0435\u0440\u0435\u0447\u043d\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u044d\u0442\u043e \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c. \u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e - \u044d\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432; \u0412 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, n-\u043c\u0435\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e - \u0442\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c n \u0443\u0437\u043b\u043e\u0432 - \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432.  \u0423\u0437\u043b\u044b \u0434\u0435\u0440\u0435\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u044c\u044f\u043c\u0438. \u0412 \u043f\u0435\u0440\u0435\u0447\u043d\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u044d\u0442\u043e - \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u0430 \u0434\u0435\u0442\u0430\u043b\u044c. \u041f\u043e\u0442\u043e\u043c\u043a\u0438, \u0438\u043b\u0438 \u0434\u0435\u0442\u0438, \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0437\u043b\u0430 - \u0432\u0441\u0435 \u0443\u0437\u043b\u044b \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0435, \u0438\u043c\u0435\u0435\u044e\u0449\u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0443\u0437\u0435\u043b \u043a\u043e\u0440\u0435\u043d\u0435\u043c.  \u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0447\u0430\u0441\u0442\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b. (\u0421\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a 1) \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 (\u0441\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a 2); \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043d\u043e\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0432 SQL \u0432 \u0432\u0438\u0434\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432.  \u0412 SQL, \u043b\u044e\u0431\u044b\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u044f\u0432\u043d\u043e \u044f\u0432\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438.. \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u0422.\u0435. \u043e\u0434\u0438\u043d \u0441\u0442\u043e\u043b\u0431\u0435\u0446 - \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0443\u0437\u0435\u043b, \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 - \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u0443\u0437\u0435\u043b (\u043f\u0430\u0440\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0434\u0443\u0433\u0443 \u0432 \u0433\u0440\u0430\u0444\u0435). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441 \u0448\u0435\u0441\u0442\u044c\u044e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c\u0438:  \tCREATE TABLE Personnel( \t\temp\tCHAR(20)\t\tPRIMARY KEY, \t\tboss\tCHAR(20)\t\tREFERENCES Personnel(emp), \t\tsalary\tDECIMAL(6,2)\tNOT NULL \t);  \tPersonnel: \temp\tboss\tsalary \t========================== \t'Jerry'\tNULL\t1000.00 \t'Bert'\t'Jerry'\t 900.00 \t'Chuck'\t'Jerry'\t 900.00 \t'Donna'\t'Chuck'\t 800.00 \t'Eddie'\t'Chuck'\t 700.00 \t'Fred'\t'Chuck'\t 600.00  \u042d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438. \u041f\u0415\u0420\u0412\u0418\u0427\u041d\u042b\u0419 \u041a\u041b\u042e\u0427 - emp, \u043d\u043e \u0441\u0442\u043e\u043b\u0431\u0435\u0446 boss - \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043d\u0435\u0433\u043e, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439. REFERENCES \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a\u043e\u043c, \u0442\u043e\u0433\u043e \u043a\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u043c. \u041e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 'Jerry' \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u043c\u044f \u043d\u0430 'Geraldo', \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u0438\u043e\u043d\u043d\u043e\u0435 \u0442\u043e\u043a-\u0448\u043e\u0443? \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u0441\u043a\u0430\u0434\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 'Bert' \u0438 'Chuck'.  \u0414\u0440\u0443\u0433\u043e\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 - \u0442\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043f\u0443\u0442\u044c. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0438\u043c\u044f \u0431\u043e\u0441\u0441\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043b\u0443\u0436\u0430\u0449\u0435\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441, \u0442\u0438\u043f\u0430:  \tSELECT B1.emp, 'bosses', E1.emp \tFROM Personnel AS B1, Personnel AS E1 \tWHERE B1.emp = E1.boss;  \u041d\u043e \u043a\u043e\u0435-\u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u0430\u0435\u0442 \u0412\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0430. \u0411\u043e\u0441\u0441 \u0412\u0430\u0448\u0435\u0433\u043e \u0431\u043e\u0441\u0441\u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u043b\u0430\u0441\u0442\u044c \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0412\u0430\u043c, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0432\u0432\u0435\u0440\u0445 \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0434\u0432\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0432 \u0434\u0435\u0440\u0435\u0432\u0435, \u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u0430\u043c\u043e\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0442\u0438\u043f\u0430:  \tSELECT B1.emp, 'bosses', E2.emp \tFROM Personnel AS B1, Personnel AS E1, Personnel AS E2 \tWHERE B1.emp = E1.boss AND E1.emp = E2.boss;  \u0427\u0442\u043e\u0431\u044b \u0438\u0434\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 \u0434\u0432\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0433\u043b\u0443\u0431\u0436\u0435 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435, \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0442 \u043e\u0431\u0440\u0430\u0437\u0435\u0446:  \tSELECT B1.emp, 'bosses', E3.emp \tFROM Personnel AS B1, Personnel AS E1, \t\tPersonnel AS E2, Personnel AS E3 \tWHERE B1.emp = E1.boss \t\tAND E1.emp = E2.boss \t\tAND E2.emp = E3.boss;  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0412\u044b \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u043e\u043a\u0430 \u0412\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u0443\u0441\u0442\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e.  \u041b\u0438\u0441\u0442\u044c\u044f \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u0412 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0445 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0439\u0442\u0438: \u042d\u0442\u043e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0438, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0431\u043e\u0441\u0441\u043e\u043c \u043a\u043e\u043c\u0443 \u043b\u0438\u0431\u043e \u0435\u0449\u0435 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438:  \tSELECT *     \tFROM Personnel AS E1 \tWHERE NOT EXISTS( \t\tSELECT * \t\tFROM Personnel AS E2 \t\tWHERE E1.emp = E2.boss);  \u0423 \u043a\u043e\u0440\u043d\u044f \u0434\u0435\u0440\u0435\u0432\u0430 boss - NULL:  \tSELECT * \tFROM Personnel \tWHERE boss IS NULL;  \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043d\u0438\u0437 \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443. \u041a\u0430\u043a \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0436\u0430\u043b\u043e\u0432\u0430\u043d\u044c\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043b\u0443\u0436\u0430\u0449\u0435\u0433\u043e \u0438 \u0435\u0433\u043e\/\u0435\u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445; \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:  \tTotal Salaries \temp\tboss\tsalary \t========================== \t'Jerry'\tNULL\t4900.00 \t'Bert'\t'Jerry'\t 900.00 \t'Chuck'\t'Jerry'\t3000.00 \t'Donna'\t'Chuck'\t 800.00 \t'Eddie'\t'Chuck'\t 700.00 \t'Fred'\t'Chuck'\t 600.00  \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432.  \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0442.\u043a. SQL - \u044f\u0437\u044b\u043a, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u041a\u043e\u0440\u0435\u043d\u044c \u0434\u0435\u0440\u0435\u0432\u0430 - \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u043a-\u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u043f\u0440\u0435\u0434\u043a\u0430.  \u0418\u043c\u0435\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b. \u041e\u0434\u0438\u043d \u043f\u0443\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c, \u0447\u0442\u043e \u0412\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0435 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \"\u043e\u0432\u0430\u043b\u044b\" \u0432\u043d\u0443\u0442\u0440\u0438 \u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u043b\u0438\u043d\u0438\u0438 \u043a\u0440\u0430\u044f \u043a\u0430\u043a \u0432\u0435\u0440\u0435\u0432\u043a\u0438. \u041a\u043e\u0440\u0435\u043d\u044c - \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0432\u0430\u043b \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0437\u043b\u044b. \u041b\u0438\u0441\u0442\u044c\u044f - \u0441\u0430\u043c\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043e\u0432\u0430\u043b\u044b, \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435, \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u043c. \u042d\u0442\u043e - \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \"\u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432\", \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u0434\u0435\u043b\u0430\u043d \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445, \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438.  \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0447\u0435\u0440\u0432\u044c, \u043f\u043e\u043b\u0437\u0430\u044e\u0449\u0438\u0439 \u043f\u043e \"\u0443\u0437\u043b\u0430\u043c \u0438 \u0434\u0443\u0433\u0430\u043c\" \u0434\u0435\u0440\u0435\u0432\u0430. \u0427\u0435\u0440\u0432\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u0432\u0435\u0440\u0445\u0443, \u0441 \u043a\u043e\u0440\u0435\u043d\u044f, \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u0443\u044e \u043f\u043e\u0435\u0437\u0434\u043a\u0443 \u0432\u043e\u043a\u0440\u0443\u0433 \u0434\u0435\u0440\u0435\u0432\u0430.  \u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u0440\u0432\u044c \u0441\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0435\u0434\u0438\u043d\u0438\u0446\u044b. \u041a\u043e\u0433\u0434\u0430 \u0447\u0435\u0440\u0432\u044c \u043f\u0440\u0438\u0431\u044b\u0432\u0430\u0435\u0442 \u0432 \u0443\u0437\u0435\u043b, \u043e\u043d \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u043f\u043e\u0441\u0435\u0442\u0438\u043b \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a. \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0434\u0432\u0430 \u043d\u043e\u043c\u0435\u0440\u0430, \u043e\u0434\u0438\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438 \u043e\u0434\u0438\u043d\u043e \u0434\u043b\u044f \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.  \u042d\u0442\u043e \u0434\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Personnel \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434, \u0441 \u043b\u0435\u0432\u044b\u043c\u0438 \u0438 \u043f\u0440\u0430\u0432\u044b\u043c\u0438 \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438 \u0432 \u0432\u0438\u0434\u0435:  \tCREATE TABLE Personnel( \t\temp\tCHAR(10)\t\tPRIMARY KEY, \t\tsalary\tDECIMAL(6,2)\tNOT NULL, \t\tleft\tINTEGER\t\tNOT NULL, \t\tright\tINTEGER\t\tNOT NULL);  \tPersonnel \temp\tsalary\tleft\tright \t============================== \t'Jerry'\t1000.00  1\t12 \t'Bert'\t 900.00  2\t 3 \t'Chuck'\t 900.00  4\t11 \t'Donna'\t 800.00  5\t 6 \t'Eddie'\t 700.00  7\t 8 \t'Fred'\t 600.00  9\t10  \u041a\u043e\u0440\u0435\u043d\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u0435\u0442 1 \u0432 \u043b\u0435\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0438 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432 (2*n) \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u044c: \u0447\u0435\u0440\u0432\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0434\u0432\u0430\u0436\u0434\u044b, \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0441 \u043b\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0441 \u043f\u0440\u0430\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043b\u0436\u0435\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432 \u0432\u043e \u0432\u0441\u0435\u043c \u0434\u0435\u0440\u0435\u0432\u0435.  \u0412 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043b\u0435\u0432\u044b\u043c\u0438 \u0438 \u043f\u0440\u0430\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043b\u0438\u0441\u0442\u044c\u0435\u0432 - \u0432\u0441\u0435\u0433\u0434\u0430 1. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0442\u0435 \u0447\u0435\u0440\u0432\u044f, \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043b\u0438\u0441\u0442\u0430, \u043f\u043e\u043a\u0430 \u043e\u043d \u043f\u043e\u043b\u0437\u0435\u0442 \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043b\u0438\u0441\u0442\u044c\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c:  \tSELECT * \tFROM Personnel \tWHERE (right - left) = 1;  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0443\u043b\u043e\u0432\u043a\u0443, \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0438\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430:  \tSELECT * \tFROM Personnel \tWHERE left = (right - 1);  \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e SQL \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0435\u0443, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u043d\u0435 \u0438\u0441\u043f\u043e\u0440\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 (left - right) = 1, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430.  \u0412 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 - \u0438\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u043f\u0443\u0442\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0438 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430\u043c\u0438 BETWEEN. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435\u0445 \u0431\u043e\u0441\u0441\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c:  \tSELECT :myworker, B1.emp, (right - left) AS height \tFROM Personnel AS B1, Personnel AS E1 \tWHERE E1.left BETWEEN B1.left AND B1.right \tAND E1.right BETWEEN B1.left AND B1.right \tAND E1.emp = :myworker;  \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 height, \u0442\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0431\u043e\u0441\u0441 \u043e\u0442 \u0441\u043b\u0443\u0436\u0430\u0449\u0435\u0433\u043e. \u041c\u043e\u0434\u0435\u043b\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 (\u0433\u0434\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 = (right - left)) \u0447\u0435\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u0432 \u043d\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435\u0441\u044f. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043a\u043e\u0440\u0435\u043d\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440.  \u0423\u0440\u043e\u0432\u0435\u043d\u044c, \u0447\u0438\u0441\u043b\u043e \u0434\u0443\u0433 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0443\u0440\u043e\u0432\u043d\u0438 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c, \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0442\u044c:  \tSELECT E1.emp, B1.emp, COUNT(*) - 1 AS levels \tFROM Personnel AS B1, Personnel AS E1 \tWHERE E1.left BETWEEN B1.left AND B1.right \tAND E1.right BETWEEN B1.left AND B1.right \tAND E1.node = :myworker \tAND B1.node = :mymanager;  (COUNT(*) - 1) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0443\u0437\u043b\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0430\u043a \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443\u0437\u0435\u043b - \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u0443\u0440\u043e\u0432\u043d\u0438, \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u0435\u0431\u044f.  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043e\u0431\u0449\u0438\u0445 \u0431\u043e\u0441\u0441\u043e\u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u0443\u0436\u0430\u0449\u0438\u0445, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442 \u043f\u0443\u0442\u0438 \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442 \u0443\u0437\u043b\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u044e\u0442 (COUNT(*) &gt; 1). \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0441\u0430\u043c\u044b\u0445 \u0431\u043b\u0438\u0437\u043a\u0438\u0445 \u043e\u0431\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u043a\u043e\u0432 \u0434\u0432\u0443\u0445 \u0443\u0437\u043b\u043e\u0432, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442 \u043f\u0443\u0442\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0442 \u0443\u0437\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 (COUNT(*) &gt; 1), \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439.  \u0412\u0435\u0440\u0448\u0438\u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u043c. \u0423\u0437\u043b\u044b \u0434\u0435\u0440\u0435\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u044c\u044f\u043c\u0438. \u041f\u043e\u0442\u043e\u043c\u043a\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0437\u043b\u0430 - \u0443\u0437\u043b\u044b \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0432\u044c\u044f, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u043a\u043e\u0440\u043d\u0435\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0443\u0437\u0435\u043b.  \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0442.\u043a. SQL - \u044f\u0437\u044b\u043a, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u041a\u043e\u0440\u0435\u043d\u044c \u0434\u0435\u0440\u0435\u0432\u0430 - \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u043a-\u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u043f\u0440\u0435\u0434\u043a\u0430.  c Joe Celko DBMS Online - March 1996 Translated by SDM  \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432. \u0427\u0430\u0441\u0442\u044c 2.  \u042f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u0412\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u044e \u0437\u0430 \u043c\u0430\u0440\u0442 1996, \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f. \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435. \u041d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 (\u0441\u043c. \u041b\u0438\u0441\u0442\u0438\u043d\u0433 1) \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0435. \u042f \u0431\u0443\u0434\u0443 \u043f\u043e\u0432\u0441\u044e\u0434\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.  \u0414\u0435\u0440\u0435\u0432\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 1 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043a\u0430\u043a A) \u0433\u0440\u0430\u0444 \u0438 \u0411) \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u0412\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u043a\u0442\u043e-\u0442\u043e - \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0433\u043e-\u0442\u043e \u0435\u0449\u0435 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e \u043b\u0435\u0432\u044b\u0435 \u0438 \u043f\u0440\u0430\u0432\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430- \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u0438\u0445 \u0431\u043e\u0441\u0441\u043e\u0432.  \u0414\u0440\u0443\u0433\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u043d\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 - \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u0438- \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b, \u0442.\u0435. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u0438 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0430\u043a\u0442 \u043f\u0440\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0435, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438, \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435.  \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0434\u0435\u0440\u0435\u0432\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u0444\u043e\u043c \u0431\u0435\u0437 \u0446\u0438\u043a\u043b\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c \u043d\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u0412\u0430\u0441 \u0432 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u043f\u0435\u0442\u043b\u0435, \u043a\u043e\u0433\u0434\u0430 \u0412\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0435 \u0438\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u0414\u0440\u0443\u0433\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e- \u0442\u043e, \u0447\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u044c \u043e\u0442 \u043a\u043e\u0440\u043d\u044f \u0434\u043e \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u0412 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u043f\u0443\u0442\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0438 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430\u043c\u0438 BETWEEN. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0432\u0441\u0435\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0439, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c:  \tSELECT 'Mary', \tP1.emp, (P1.rgt - P1.lft) AS size \tFROM Personnel AS P1, Personnel AS P2 \tWHERE P2.emp = 'Mary' \tAND P2.lft BETWEEN P1.lft AND P1.rgt;  \tMary\temp\tsize \t====\t===\t==== \tMary\tAlbert\t  27 \tMary\tCharles\t  13 \tMary\tFred\t   9 \tMary\tJim\t   5 \tMary\tMary\t   1  \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e, \u043a\u043e\u0433\u0434\u0430 size = 1, \u0412\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u0434\u0435\u043b\u043e \u0421 \u041c\u044d\u0440\u0438 \u043a\u0430\u043a \u0441 \u0435\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0431\u043e\u0441\u0441\u043e\u043c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439.  \u041c\u043e\u0434\u0435\u043b\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u0448\u043d\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0439 size (size = right - left) \u0447\u0435\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043a\u043e\u0440\u0435\u043d\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 size. JOIN \u0438 ORDER BY \u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u043a\u0430\u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u0433\u0440\u0430\u0444\u0430 \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438. \u041f\u043b\u044e\u0441, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438.  \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0443\u0437\u043b\u0430 - \u0447\u0438\u0441\u043b\u043e \u0434\u0443\u0433 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u043e\u043c \u0438 \u043a\u043e\u0440\u043d\u0435\u043c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0443\u0437\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c:  \tSELECT P2.emp, COUNT(*) AS level \tFROM Personnel AS P1, Personnel AS P2 \tWHERE P2.lft BETWEEN P1.lft AS P2 \tGROUP BY P2.emp;  \t\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0443\u0440\u043e\u0432\u043d\u0438 \u0441\u0440\u0435\u0434\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:  \temp\tlevel \t===\t===== \tAlbert\t1 \tBert\t2 \tCharles\t2 \tDiane\t2 \tEdward\t3 \tFred\t3 \tGeorge\t3 \tHeidi\t3 \tIgor\t4 \tJim\t4 \tKathy\t4 \tLarry\t4 \tMary\t5 \tNed\t5  \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043d\u0438\u0433\u0430\u0445 \u043f\u043e \u0442\u0435\u043e\u0440\u0438\u0438 \u0433\u0440\u0430\u0444\u043e\u0432, \u043a\u043e\u0440\u0435\u043d\u044c \u0438\u043c\u0435\u0435\u0442 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u043d\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e. \u0415\u0441\u043b\u0438 \u0412\u0430\u043c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u044d\u0442\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \"(COUNT(*)-1)\".  \u0421\u0430\u043c\u043e\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0441 \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u043c BETWEEN- \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.  \u0410\u0433\u0440\u0435\u0433\u0430\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u044c\u044f\u0445.  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435. \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u0430 \u043e\u0431\u0449\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0443 \u0431\u043e\u0441\u0441\u0430:  \tSELECT P1.emp, SUM(P2.salary) AS payroll \tFROM Personnel AS P1, Personnel AS P2 \tWHERE P2.lft BETWEEN P1.lft AND P1.rgt \tGROUP BY P1.emp;  \temp\tpayroll \t===\t======= \tAlbert\t7800.00 \tBert\t1650.00 \tCharles\t3250.00 \tDiane\t1900.00 \tEdward\t 750.00 \tFred\t1600.00 \tGeorge\t 750.00 \tHeidi\t1000.00 \tIgor\t 500.00 \tJim\t 300.00 \tKathy\t 100.00 \tLarry\t 100.00 \tMary\t 100.00 \tNed\t 100.00  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u0443\u0432\u043e\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0436\u0430\u0449\u0435\u0433\u043e \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u0434 \u043d\u0438\u043c\/\u043d\u0435\u0439. \u0423\u043b\u043e\u0432\u043a\u0430 \u0432 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 - \u0442\u043e, \u0447\u0442\u043e \u0412\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043a\u043b\u044e\u0447, \u043d\u043e \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043b\u0435\u0432\u044b\u0435 \u0438 \u043f\u0440\u0430\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041e\u0442\u0432\u0435\u0442 - \u043d\u0430\u0431\u043e\u0440 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:  \tDELETE FROM Personnel \tWHERE lft BETWEEN \t(SELECT lft FROM Personnel WHERE emp = :downsized) \tAND \t(SELECT rgt FROM Personnel WHERE emp = :downsized);  \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432. \u042d\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0434\u0435\u0440\u0435\u0432\u0443, \u0442.\u043a. \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 BETWEEN \u0432 \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432, \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0441 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0412\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043b\u0438\u0441\u0442\u044c\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442 (right-left=1), \u0438 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0447\u0438\u0441\u043b\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f left \u0438 right \u0435\u0433\u043e \u043a\u043e\u0440\u043d\u044f.  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0412\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0432 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u0442\u0435\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u043e\u0432 - \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u043b\u0435\u0432\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u0440\u043d\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u0438 \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443:  \tCREATE PROCEDURE DropTree (downsized IN CHAR(10) NOT NULL) \tBEGIN ATOMIC \tDECLARE dropemp CHAR(10) NOT NULL; \tDECLARE droplft INTEGER NOT NULL; \tDECLARE droprgt INTEGER NOT NULL;  \t--\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430:  \tSELECT emp, lft, rgt \tINTO dropemp, droplft, droprgt \tFROM Personnel \tWHERE emp = downsized;  \t--\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e...  \tDELETE FROM Personnel \tWHERE lft BETWEEN droplft and droprgt;  \t--\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u043f\u043b\u043e\u0442\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438:  \tUPDATE Personnel \tSET lft = CASE \tWHEN lft &gt;  droplf \tTHEN lft - (droprgt - droplft + 1) \tELSE lft END, \trgt = CASE \tWHEN rgt &gt;  droplft \tTHEN rgt - (droprgt - droplft + 1) \tELSE rgt END;END;  \u0420\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u043e \u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u044d\u0442\u043e \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f.  \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0442\u044f\u0436\u0435\u043b\u0435\u0435 \u0447\u0435\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u044b\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432. \u041a\u043e\u0433\u0434\u0430 \u0412\u044b \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0435 \u0443\u0437\u0435\u043b \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u0430\u043a \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0435. \u0418\u043c\u0435\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043f\u0443\u0442\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043a \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0434\u0435\u0442\u0435\u0439 \u043a \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043e\u0442\u0435\u0446 \u0443\u043c\u0438\u0440\u0430\u0435\u0442, \u0438 \u0441\u0430\u043c\u044b\u0439 \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0441\u044b\u043d \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 2). \u0421\u0430\u043c\u044b\u0439 \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043a\u0440\u0430\u0439\u043d\u0438\u0439 \u043b\u0435\u0432\u044b\u0439 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u0443\u0437\u0435\u043b \u043f\u043e\u0434 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c. \u041e\u0434\u043d\u0430\u043a\u043e \u0441 \u044d\u0442\u043e\u0439 \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u0438\u043c\u0435\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0445 \u0434\u0435\u0442\u0435\u0439, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u0445, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0432\u043d\u0438\u0437 \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443, \u043f\u043e\u043a\u0430 \u0412\u044b \u043d\u0435 \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u043a \u043b\u0438\u0441\u0442\u0443.  \u0412\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043a \u043f\u0440\u0435\u0434\u043a\u0443 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 (\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u0430\u043c\u043e\u0447\u043a\u0430 \u0443\u043c\u0438\u0440\u0430\u0435\u0442, \u0438 \u0434\u0435\u0442\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0431\u0430\u0431\u0443\u0448\u043a\u043e\u0439), \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 3. \u042d\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u0412\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0435 \u0443\u0437\u0435\u043b, \u0438 \u0435\u0433\u043e \u0434\u0435\u0442\u0438 \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0432 \u0443\u0437\u043b\u0430\u0445 \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043a\u0430. \u041e\u0434\u043d\u0430\u043a\u043e, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b, \u043f\u0440\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430, \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u0440\u0430\u043d\u0438\u0435\u043c. \u0418\u043c\u0435\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u0437\u043b\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430. \u041d\u0438\u0436\u0435 - \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0430\u044f \u044d\u0442\u043e:  \tCREATE PROCEDURE DropNode (downsized IN CHAR(10) NOT NULL) \tBEGIN ATOMIC \tDECLARE dropemp CHAR(10) NOT NULL; \tDECLARE droplft INTEGER NOT NULL; \tDECLARE droprgt INTEGER NOT NULL;  \t--\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430:  \tSELECT emp, lft, rgt \tINTO dropemp, droplft, droprgt \tFROM Personnel \tWHERE emp = downsized;  \t--\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e...  \tDELETE FROM Personnel \tWHERE emp = downsized;  \t--\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u043f\u043b\u043e\u0442\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438:  \tUPDATE Personnel \tSET lft = CASE \tWHEN lft BETWEEN droplft AND droprgt THEN lft - 1 \tWHEN lft &gt;  droprgt THEN lft - 2 \tELSE lft END \trgt = CASE \tWHEN rgt BETWEEN droplft AND droprgt THEN rgt - 1 \tWHEN rgt &gt;  droprgt THEN rgt -2 \tELSE rgt END; \tWHERE lft &gt;  droplft; \tEND;  \t\u041b\u0438\u0441\u0442\u0438\u043d\u0433 1  \tCREATE TABLE Personnel \t(emp\tCHAR(10)\t\tPRIMARY KEY, \tsalary\tDECIMAL(8,2)\tNOT NULL CHECK(salary &gt; = 0.00), \tlft\tINTEGER\t\tNOT NULL, \trgt\tINTEGER\t\tNOT NULL, \tCHECK(lft &lt;  rgt));  \tINSERT INTO Personnel VALUES ('Albert', 1000.00, 1, 28); \tINSERT INTO Personnel VALUES ('Bert', 900.00, 2, 5); \tINSERT INTO Personnel VALUES ('Charles', 900.00, 6, 19); \tINSERT INTO Personnel VALUES ('Diane', 900.00, 20, 27); \tINSERT INTO Personnel VALUES ('Edward', 750.00, 3, 4); \tINSERT INTO Personnel VALUES ('Fred', 800.00, 7, 16); \tINSERT INTO Personnel VALUES ('George', 750.00, 17, 18); \tINSERT INTO Personnel VALUES ('Heidi', 800.00, 21, 26); \tINSERT INTO Personnel VALUES ('Igor', 500.00, 8, 9); \tINSERT INTO Personnel VALUES ('Jim', 100.00, 10, 15); \tINSERT INTO Personnel VALUES ('Kathy', 100.00, 22, 23); \tINSERT INTO Personnel VALUES ('Larry', 100.00, 24, 25); \tINSERT INTO Personnel VALUES ('Mary', 100.00, 11, 12); \tINSERT INTO Personnel VALUES ('Ned', 100.00, 13, 14);  \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0442\u044f\u0436\u0435\u043b\u0435\u0435 \u0447\u0435\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u044b\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432. \u041a\u043e\u0433\u0434\u0430 \u0412\u044b \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0435 \u0443\u0437\u0435\u043b \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u0430\u043a \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0435. \u0418\u043c\u0435\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u043f\u0443\u0442\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043a \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0434\u0435\u0442\u0435\u0439 \u043a \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043e\u0442\u0435\u0446 \u0443\u043c\u0438\u0440\u0430\u0435\u0442, \u0438 \u0441\u0430\u043c\u044b\u0439 \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0441\u044b\u043d \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441. \u0421\u0430\u043c\u044b\u0439 \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043a\u0440\u0430\u0439\u043d\u0438\u0439 \u043b\u0435\u0432\u044b\u0439 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u0443\u0437\u0435\u043b \u043f\u043e\u0434 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c. \u0412\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u043a \u043f\u0440\u0435\u0434\u043a\u0443 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 (\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u0430\u043c\u043e\u0447\u043a\u0430 \u0443\u043c\u0438\u0440\u0430\u0435\u0442, \u0438 \u0434\u0435\u0442\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0431\u0430\u0431\u0443\u0448\u043a\u043e\u0439).  c Joe Celko DBMS Online - April 1996 Translated by SDM  \u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0432 SQL. \u0427\u0430\u0441\u0442\u044c 3.  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u043d\u0430\u0448\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0434\u043b\u044f \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0432 SQL. \u042f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043c\u043e\u0438\u0445 \u043f\u0440\u0435\u0434\u0438\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u0431\u0443\u0434\u0443 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c, \u0447\u0442\u043e \u0412\u044b \u0432\u0441\u0435 \u0435\u0449\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 \u043a\u043e\u043f\u0438\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u044b Personnel, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 (DBMS, \u043c\u0430\u0440\u0442 1996, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 24). \u0415\u0441\u043b\u0438 \u0412\u044b \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u0438\u0442\u044c \u043c\u043e\u0435\u0433\u043e \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044f, \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u044f \u0438\u0445.  \u041c\u0435\u043d\u044f \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441, ANSI \u0438 ISO \u043f\u0440\u043e\u0431\u0443\u044e\u0442 \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f \u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0434\u043b\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043e\u0432 \u0438 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u043c SQL\/PSM. \u041e\u0434\u043d\u0430\u043a\u043e, \u044d\u0442\u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0435\u0449\u0435 \u043d\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e-\u043a\u043e\u0434 \u0438\u043b\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f. \u042f \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0430 \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u043d\u043e \u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SQL\/PSM, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d.  \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0445\u0438\u0442\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0432 SQL \u044d\u0442\u043e \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0447\u0438\u0441\u0442\u043e\u0433\u043e SQL. \u0411\u044b\u043b\u043e \u0431\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u0438 \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u0437 \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 \u043a\u043e\u043b\u043b\u0435\u0434\u0436\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432.  \u0427\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u043c\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c \u0442\u043e, \u0447\u0442\u043e \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0412\u0430\u043c. \u041d\u043e \u044f \u0445\u043e\u0447\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0447\u0438\u0441\u0442\u043e\u043c SQL, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0442\u043e \u0436\u0435, \u0447\u0442\u043e \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435, \u044f \u0431\u0443\u0434\u0443 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0441 \u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e\u0439 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e.  \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0412\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0441\u043b\u0443\u0447\u0430\u044f\u043c. \u0415\u0441\u043b\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0443\u0437\u043b\u043e\u0432, \u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e - \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u043c\u0435\u0435\u0442 \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b, \u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 - \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442 \u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 1 \u0438 \u043f\u0440\u0430\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 2. \u041f\u0440\u0438\u0440\u043e\u0434\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0430\u043a\u043e\u0432\u0430, \u0447\u0442\u043e \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u043d\u044e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u0441 \u0434\u0432\u0443\u043c\u044f \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438 - \u043a\u043e\u0440\u0435\u043d\u044c \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0442\u043e\u043c\u043a\u0438. \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0430 \u0431\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  \tCREATE TABLE Personnel \t(emp CHAR(10) NOT NULL PRIMARY KEY, \tboss CHAR(10));  \tPersonnel  \temp\tboss \t================= \t'Albert'\tNULL \t'Bert'\t'Albert' \t'Charles'\t'Albert' \t'Diane'\t'Albert'  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 \u0432 \u0435\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443:  \tCREATE TABLE WorkingTree( \temp CHAR (10), \tboss CHAR(10), \tlft INTEGER NOT NULL DEFAULT 0, \trgt INTEGER NOT NULL DEFAULT 0);  \u0418\u0437 \u043f\u0440\u0435\u0434\u0438\u0434\u0443\u0449\u0438\u0445 \u0430\u0431\u0437\u0430\u0446\u0435\u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u0412\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u044c \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u043c\u0435\u0435\u0442 \u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u0438 \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0443\u0437\u043b\u043e\u0432 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u041f\u0443\u0441\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 boss \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043d\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430. \u0412 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430:  \tINSERT INTO WorkingTree \t--convert the root node \tSELECT P0.boss, P0.boss, 1, \t2 * (SELECT COUNT(*) + 1 \t\tFROM Personnel AS P1 \t\tWHERE P0.boss = P1.boss) \t\tFROM Personnel AS P0;  \u0422\u0435\u043f\u0435\u0440\u044c, \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u043e\u0441\u0441 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 - \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043a\u043b\u044e\u0447\u0430; \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 emp char(10):  \tINSERT INTO WorkingTree \t--convert the children \tSELECT DISTINCT P0.emp, P0.boss, \t2 * (SELECT COUNT(DISTINCT emp) \tFROM Personnel AS P1 \tWHERE P1.emp &lt;  P0.emp \tAND P0.boss IN (P1.emp, P1.boss)), \t2 * (SELECT COUNT(DISTINCT emp) \tFROM Personnel AS P1 \tWHERE P1.emp &lt;  P0.emp \tAND P0.boss IN (P1.boss, P1.emp)) + 1 \tFROM Personnel AS P0;  \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u043b\u0435\u0441 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 - \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0435\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0433\u0435\u043d\u0435\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0410\u043b\u044c\u0431\u0435\u0440\u0442\u0430 - \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0410\u043b\u044c\u0431\u0435\u0440\u0442\u0430 \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043a\u0430, \u0433\u0435\u043d\u0435\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0411\u0435\u0440\u0442\u0430 - \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0411\u0435\u0440\u0442\u0430 \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043a\u0430, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. (\u042d\u0442\u0430 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u0445 1 \u0438 2.  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u043d\u0435\u043b\u0438\u0441\u0442\u043e\u0432\u044b\u0435 \u0443\u0437\u043b\u044b, \u043d\u0435\u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0435 \u0443\u0437\u043b\u044b, \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 emp \u0438 boss, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 WorkingTree \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442 \u0443\u0437\u043b\u044b \u043a\u0430\u043a \u043a\u043e\u0440\u0435\u043d\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0438 \u043a\u0430\u043a \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u0432 \u0434\u0440\u0443\u0433\u043e\u043c. \u0417\u0430\u043f\u0440\u043e\u0441 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u0441\u0435\u0431\u044f \u0432\u0435\u0441\u0442\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c NULL \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 boss \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441\u043c\u0435\u0436\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0412\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 WorkingTree \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c:  \tDELETE FROM WorkingTree \tWHERE boss IS NULL OR emp IS NULL;  \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0441\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u0412\u044b \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0435\u0441\u044c \u0432 \u0441\u043f\u043e\u0441\u043e\u0431\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043a \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043a\u0443. \u041d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:  \u041d\u0430\u0439\u0442\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430.  \u041d\u0430\u0439\u0442\u0438 \u043c\u0435\u0441\u0442\u043e, \u043a\u0443\u0434\u0430 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0440\u0435\u0432\u043e-\u043f\u0440\u0435\u0434\u043e\u043a.  \u0420\u0430\u0437\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e-\u043f\u0440\u0435\u0434\u043e\u043a \u0432 \u0442\u043e\u0447\u043a\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438.  \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0432 \u0442\u043e\u0447\u043a\u0443 \u0432\u0441\u0442\u0430\u0432\u043a\u0438.  \u041d\u0430 \u043d\u0435\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u0412\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u0431\u044b \u044d\u0442\u0438 \u0448\u0430\u0433\u0438 \u0432\u043c\u0435\u0441\u0442\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432. \u0412\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0437\u0430\u0434\u0430\u0432\u0430\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u043c\u0435\u0447\u0430\u044f \u0444\u0430\u043a\u0442\u044b:  Q)\u041a\u0430\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e-\u043f\u0440\u0435\u0434\u043e\u043a \u0438 \u0435\u0433\u043e \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0432 \u043b\u0435\u0441\u0443? A)\u0418\u0449\u0435\u043c \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u043e-\u043f\u0440\u0435\u0434\u043a\u0435 \u0438 \u043a\u043e\u0440\u043d\u0435\u043c \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430;  Q)\u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e-\u043f\u0440\u0435\u0434\u043e\u043a? A)\u042d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430, \u0440\u0430\u0432\u043d\u044b\u0439 (2 * (select count(*) from \u041f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043e\u0435)).  Q)\u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0432\u0441\u0442\u0430\u0432\u043a\u0438? A)\u042d\u0442\u043e - \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0440\u0435\u0434\u043a\u0430, \u0433\u0434\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 emp \u0440\u0430\u0432\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e boss \u0432 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043b\u0435\u0432\u0435\u0435 \u043b\u0435\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0443\u0437\u043b\u0430. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u044e\u0442 \u0412\u0430\u043c \u0447\u0438\u0441\u043b\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0435 \u043a\u043e \u0432\u0441\u0435\u043c \u043b\u0435\u0432\u044b\u043c \u0438 \u043f\u0440\u0430\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u0442\u043e\u0447\u043a\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438.  \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u044d\u0442\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c- \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432 \u0442\u0430\u0431\u043b. 1.  \u041f\u0420\u0418\u041c\u0415\u0427\u0410\u041d\u0418\u0415 \u041f\u0415\u0420\u0415\u0412\u041e\u0414\u0427\u0418\u041a\u0410: \u042f \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043e\u043d \u0438\u043c\u0435\u043b \u0432 \u0432\u0438\u0434\u0443 \u043d\u0430\u0441\u0447\u0435\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0438 \u0447\u0435\u0440\u0442\u0430 \u043d\u0435 \u043f\u043e\u043d\u044f\u043b \u0432 \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 :)))) \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0432\u0441\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0442\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u0435 \u043c\u043d\u0435, pls, \u043f\u0438\u0441\u044c\u043c\u043e\u043c :)))  \u0412\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0439 \u0434\u0432\u0430 \u0434\u0435\u0440\u0435\u0432\u0430:  \tCREATE PROCEDURE TreeMerge(superior NOT NULL, subordinate NOT NULL) \tBEGIN \tDECLARE size INTEGER NOT NULL; \tDECLARE insert_point INTEGER NOT NULL; \tSET size = 2 * (SELECT COUNT(*) FROM WorkingTree WHERE emp = subordinate); \tSET insert_point = ( \t\tSELECT MIN(lft) \t\tFROM WorkingTree \t\tWHERE emp = subordinate AND boss = superior) - 1;  \tUPDATE WorkingTree \tSET boss = CASE WHEN boss = subordinate \t\t\tTHEN CASE WHEN emp = subordinate \t\t\t\tTHEN NULL \t\t\t\tELSE superior END \t\t\t\tELSE boss END,  \tlft = CASE WHEN (boss = superior AND lft &gt;  size) \t\tTHEN lft + size \t\tELSE CASE WHEN boss = subordinate AND emp &lt;&gt;  subordinate \t\t\tTHEN lft + insert_point \t\t\tELSE lft END \t\tEND,  \trgt = CASE WHEN (boss = superior AND rgt &gt;  size) \t\tTHEN rgt + size \t\tELSE CASE WHEN boss = subordinate AND emp &lt;&gt;  subordinate \t\t\tTHEN rgt + insert_point \t\t\tELSE rgt END \t\tEND  \tWHERE boss IN (superior, subordinate);  \t--\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438 \u043a\u043e\u0440\u043d\u044f \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \tDELETE FROM WorkingTree WHERE boss IS NULL OR emp IS NULL;   \tEND;  \u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043f\u0430\u0440\u044b \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0438 \u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 WorkingTree \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u044b\u043c, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u0431\u043e\u0441\u0441\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:  \tCREATE VIEW AllPairs (superior, subordinate) \tAS \tSELECT W1.boss, W1.emp \tFROM WorkingTree AS W1 \tWHERE EXISTS( SELECT * FROM WorkingTree AS W2 WHERE W2.boss = W1.emp) \tAND W1.boss &lt;&gt;  W1.emp;  \u041d\u043e \u0412\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043f\u0430\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0412\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0438\u0442\u0435 \u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443. \u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u043f\u0430\u0440\u0443, \u0431\u0435\u0440\u0435\u043c \u043a\u0440\u0430\u0439\u043d\u044e\u044e \u043b\u0435\u0432\u0443\u044e \u043f\u0430\u0440\u0443 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430:  \tCREATE VIEW LeftmostPairs(superior, subordinate) \tAS \tSELECT DISTINCT superior, \t\t(SELECT MIN(subordinate) \t\tFROM AllPairs AS A2 \t\tWHERE A1.superior = A2.superior) \tFROM AllPairs AS A1 \tWHERE superior = (SELECT MIN(superior) FROM AllPairs);  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0412\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c - \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0440\u0430\u043d\u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 - \u0438 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u043b\u044c\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u043b\u0435\u0441 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0446\u0438\u043a\u043b WHILE, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u044e\u0448\u0438\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 LeftmostPairs \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b. \u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0432\u043e \u0432\u0441\u0435\u0439 \u0445\u0440\u0430\u043d\u0438\u043c\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435.  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 1 C1 row in superior y y y y n y n C2 row in subord n n n n y y n C3 lft &gt; cut n n y y - - - C4 rgt &gt; cut n y n y - - -  A1 \u041e\u0448\u0438\u0431\u043a\u0430   1   1 A2 lft := lft + size    1 A3 rgt := rgt + size  1  2 A4 lft := lft 1 2     1 A5 rgt := rgt 2      2 A6 lft := lft + cut     1 A7 rgt := rgt + cut     2  c Joe Celko DBMS Online - May 1996 Translated by SDM<\/div><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0432 SQL<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[151,434],"tags":[470,692],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/267"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=267"}],"version-history":[{"count":2,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":844,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/267\/revisions\/844"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}