Advertisement
S_Madanska

m

Feb 13th, 2021
148
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 17.04 KB | None
  1. /*Задача 3-2.
  2.     Да се увеличи количеството с 2 броя и да се намали единичната цена с 5% на
  3.     продукт с идентификатор 2254 в поръчка с идентификатор 2354.*/
  4.  
  5. --Задача 3-3.
  6.     --Да се изтрие служител с идентификатор 183.
  7.  
  8. -------------------------------------------------------------------------------------------
  9. --Пример 4-1.
  10.     --Да се изведат имената, датите на назначаване и заплатите на всички служители.
  11.  
  12. /*Пример 4-2.
  13.     Да се изведат всички данни за продуктите, с цена по-голяма от 2000. Резултатът
  14.     нека бъде подреден по цена на продукт възходящо.*/
  15.  
  16. --Пример 4-3.
  17.     --Да се изведе броя на всички служители.
  18.  
  19. --Пример 4-4.
  20.     --Да се изведе броя служители, групирани по отдела, в който работят.
  21.  
  22. -------------------------------------------------------------------------------------------
  23. --4.2.1. Задачи
  24. --Задача 4-1.
  25.     --Да се изведат имената, заплатите и идентификаторите на длъжностите на
  26.     --служителите, работещи в отдели 50 и 80. Резултатът да е подреден по фамилия на служител във възходящ ред.
  27.  
  28. --Задача 4-2.
  29.     --Да се изведат общата сума на заплатите и броя служители в отдел 60.
  30.  
  31.  
  32. --Задача 4-3.
  33.     --За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
  34.     --поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.
  35.  
  36.  
  37. -------------------------------------Set operators-----------------------------------------
  38. ---------------------------------------UNION ------------------------------------------
  39. /*Резултатните набори, които се обединяват, трябва да отговарят на следните условия:
  40. -Всяка заявка в оператора UNION трябва да има еднакъв брой колони;
  41. -Колоните трябва да имат съвместими типове от данни;
  42. -В целия израз може да присъства само една клауза ORDER BY накрая, сортираща обединения резултат.
  43. */
  44.  
  45. --Пример 4-5.
  46.     --Да се изведат идентификаторите на държавите, в които има клиенти или отдели на фирмата.
  47.  
  48. --Пример 4-6.
  49.     --Да се изведат идентификаторите на държавите, в които има клиенти или отдели на фирмата.
  50.     --Нека в резултатния набор участват и дублиращите се записи.
  51.  
  52.  
  53. /*
  54. 4.3.1. Задачи
  55. Задача 4-4.
  56.     Да се изведат всички малки имена на клиенти и служители с евентуалните
  57.     повторения, сортирани в низходящ ред по име. */
  58.  
  59.  
  60. /*Задача 4-5.
  61.     Да се изведат име и фамилия на клиенти и служители без повторения, а като
  62.     трета колона за клиентите да се използва израз, генериращ низа „Клиент
  63.     (<идентификатор>)“, за служителите – „Служител (<идентификатор>)“. */
  64.  
  65.  
  66. ----------------------------------INTERSECT(сечение)---------------------------------------
  67. /*резултата съдържа общите за двата резултатни набора редове, без дубликати.
  68. условия:
  69.      -Броят на колоните във всички заявки трябва да бъде еднакъв;
  70.      -Колоните трябва да бъдат от съвместими типове от данни.
  71.  
  72. Пример 4-7.
  73.     Да се изведат id на държавите, в които има клиенти и отдели на фирмата едновременно.
  74. */
  75.  
  76. --Задача 4-6.
  77. --  Да се изведат общите собствени имена на клиенти и служители.
  78.  
  79. ----------------------------------EXCEPT---------------------------------------------------
  80. /*връща редовете, върнати от първата заявка, които не се срещат измежду редове от втората.
  81. условия:
  82.     -Броят на колоните във двете заявки трябва да бъде еднакъв;
  83.     -Колоните трябва да бъдат от съвместими типове от данни. */
  84.  
  85. --Пример 4-8.
  86. --  Изведи id на държавите, в които има клиенти и в същото време няма отдели на фирмата.
  87.  
  88.  
  89. /*4.5.1. Задачи
  90. Задача 4-7.
  91.     Да се изведат собствени имена на клиенти, които не се срещат сред тези на служители.*/
  92.  
  93.  
  94. -------------------------------------------------------------------------------------------
  95. ------------------------------------ JOIN -------------------------------------------------
  96. --JOIN се използва за извличане на данни от две или повече таблици, като редовете им се
  97. --комбинират чрез логическа връзка между таблиците, която може да бъде във FROM или WHERE.
  98. --Обикновено тази връзка е първичен/външен ключ, но не задължително.
  99.  
  100.  
  101.  
  102. -------------------------------------INNER JOIN или просто JOIN------------------------------------
  103. --Извеждат редовете от две/повече таблици, които имат съвпадащи стойности в колоните,
  104. --посочени в условието за сравнение.
  105.  
  106. --Пример 4-10.
  107. --  Да се изведат държавите и регионите, в които се намират.
  108.  
  109. --Пример 4-11.
  110. --  Изведи имена на клиенти, имена на държавите от които са, и имена на регионите на държавите.
  111.  
  112.  
  113.  
  114. -------------------------------------Видове OUTER JOIN--------------------------------------------
  115.  
  116. --Пример 4-12.
  117. --  Да се изведат регионите и държавите, които се намират в тях. Резултатният
  118. --  набор да включва и регионите, в които няма въведени държави.
  119.  
  120.  
  121. --Пример 4-13.
  122. --  Да се изведат държавите и регионите, в които се намират.
  123. --  Резултатния набор да включва държавите, за които няма въведен регион.
  124.  
  125.  
  126. /*Пример 4-14.
  127.     Да се изведат държавите и регионите, в които се намират.
  128.     Резултатния набор да включва държавите, за които няма въведен регион и регионите,
  129.     за които няма въведени държави.*/
  130.  
  131.  
  132. /*----------------------------4.6.6. Други JOIN вариации------------------------------
  133.  
  134. Пример 4-15.
  135.     Да се изведат държавите и регионите, в които се намират./*
  136.  
  137. /*Пример 4-16.
  138.     Да се изведат отделите, в които има назначени служители.*/
  139.  
  140.  
  141. --Пример 4-17.
  142. --  Да се изведат имената на клиентите, които все още не са правили поръчки.
  143.  
  144.  
  145. --Пример 4-18.
  146. --  Да се изведат комбинациите от всички региони и държави, сортирани поиме на държава.
  147.  
  148.  
  149. --4.6.7. Задачи
  150.  
  151. --Задача 4-8.
  152. --  Извлечи идентификатори, дати на поръчките и имена на служители, които са ги обработили.
  153.  
  154. --Задача 4-9.
  155. --  Да се изведат имената на всички клиенти и id на поръчките им.
  156. --  В резултатния набор да участват и клиентите, които все още не са правили поръчки.
  157.  
  158.  
  159. --Задача 4-10.
  160. --  Да се изведат имената на продуктите, които не са поръчвани до момента.
  161.  
  162. --Задача 4-11.
  163. --  Да се изведат имената на всички клиенти, които са от n държави в регион „Западна Европа“
  164.  
  165.  
  166. -------------------------------------Видове OUTER JOIN--------------------------------------------
  167.  
  168. --Пример 4-12.
  169. --  Да се изведат регионите и държавите, които се намират в тях. Резултатният
  170. --  набор да включва и регионите, в които няма въведени държави.
  171.  
  172.  
  173. --Пример 4-13.
  174. --  Да се изведат държавите и регионите, в които се намират.
  175. --  Резултатния набор да включва държавите, за които няма въведен регион.
  176.  
  177.  
  178. /*Пример 4-14.
  179.     Да се изведат държавите и регионите, в които се намират.
  180.     Резултатния набор да включва държавите, за които няма въведен регион и регионите,
  181.     за които няма въведени държави.*/
  182.  
  183.  
  184. /*----------------------------4.6.6. Други JOIN вариации------------------------------
  185.  
  186. Пример 4-15.
  187.     Да се изведат държавите и регионите, в които се намират./*
  188.  
  189. /*Пример 4-16.
  190.     Да се изведат отделите, в които има назначени служители.*/
  191.  
  192.  
  193. --Пример 4-17.
  194. --  Да се изведат имената на клиентите, които все още не са правили поръчки.
  195.  
  196.  
  197. --Пример 4-18.
  198. --  Да се изведат комбинациите от всички региони и държави, сортирани поиме на държава.
  199.  
  200.  
  201. --4.6.7. Задачи
  202.  
  203. --Задача 4-8.
  204. --  Извлечи идентификатори, дати на поръчките и имена на служители, които са ги обработили.
  205.  
  206. --Задача 4-9.
  207. --  Да се изведат имената на всички клиенти и id на поръчките им.
  208. --  В резултатния набор да участват и клиентите, които все още не са правили поръчки.
  209.  
  210.  
  211. --Задача 4-10.
  212. --  Да се изведат имената на продуктите, които не са поръчвани до момента.
  213.  
  214. --Задача 4-11.
  215. --  Да се изведат имената на всички клиенти, които са от n държави в регион „Западна Европа“
  216.  
  217. -----------------------------------------------------------------------------------------
  218. ---------------------------------4.7.1. TOP ---------------------------------------------
  219. ---- TOP връща първите N реда в неопределен ред, за желаната подредба използваме ORDER BY!
  220.  
  221. -- Пример 4-19.
  222. -- 7-те продукта с най-ниска цена.
  223.  
  224.  
  225. -- Доп.пример:
  226. -- а) Най-поръчваният продукт  е.... (идентификатор)
  227. -- б) Най-поръчваният продукт  е.... (име)
  228.  
  229. Задача
  230. -- Имена, заплата и длъжността на служителите, които работят в отдел 80 и не са обработвали поръчки до момента;
  231.  
  232.  
  233. -----------------------------------------------------------------------------------------
  234. ---------------------------------4.7.2. OFFSET и FETCH ----------------------------------
  235. -----------------------------------------------------------------------------------------
  236.  
  237. -- Пример 4-20.
  238. -- първите 5 служители, след което вторите 5, сортирани по id.
  239.  
  240. /* Пример 4-21.
  241.    петимата служители, започвайки от 10-ти ред, подредени по дата на постъпване.
  242.    Първата заявка ще покаже всички за демонстрация, втората ще извърши подбора.*/
  243.  
  244. /* 4.7.3. Задачи
  245.    Задача 4-12.
  246.    вторите 10 най-добре платени служители (подредени по заплата низходящо). */
  247.  
  248. /* Задача 4-13.
  249.    Да се изведат име, фамилия и пол на клиентите, направили последните 5 поръчки.*/
  250.  
  251.  
  252.      
  253. -------------------------------------------------------------------------------------
  254. --------------------------------5. Изгледи / Views-----------------------------------
  255. -------------------------------------------------------------------------------------
  256. --  Създаване на изгледи
  257.  
  258. -- Пример 5-1.
  259. -- Да се създаде изглед, който съдържа име и фамилия на клиентите, както и номер и дата
  260. -- на поръчките, които те са направили.
  261. -- Да се изведат данните от изгледа.
  262.  
  263. -- Пример 5-2.
  264. -- Да се модифицира горният изглед така, че да съдържа и колона с името на
  265. -- съответния служител, обработил поръчката.
  266.  
  267. -- Пример 5-3.
  268. -- Да се модифицира горния изглед така, че да съдържа само поръчките,
  269. -- обработени от служител с идентификатор = 167.
  270.  
  271. -- Пример 5-4.
  272. -- Да се създаде изглед, съдържащ име и фамилия на служител и общата сума
  273. -- на поръчките, които той е обработил.
  274.  
  275. -- Пример 5-5.
  276. -- Да се създаде изглед, който съдържа имена, отдел и заплата на 5-мата
  277. -- служители с най-висока заплата. За да бъдат извлечени служителите,
  278. -- подредени по заплата, очевидно ще трябва да бъдат сортирани по този критерий.
  279.  
  280.  
  281.  
  282. ------------------------5.4.Манипулиране на данни чрез изглед -----------------------
  283. -------------------------------------------------------------------------------------
  284. --Следващият изглед CUSTOMERS_COUNTRIES, базиран на JOIN между COUNTRIES и CUSTOMERS,
  285. --ще демонстрира манипулирането на данни.
  286.  
  287. --Пример 5-6.
  288. --Да се добави нов запис в таблицата CUSTOMERS през изгледа CUSTOMERS_COUNTRIES.
  289.  
  290. --5.4.2. Променяне на данни през изглед
  291. ---Пример 5-7.
  292. --Да се промени фамилията на клиент с идентификатор 10.
  293.  
  294. --5.4.3. Изтриване на данни през изглед
  295. --Пример 5-8.
  296. --Да се изтрие клиент с идентификатор 10.
  297.  
  298.  
  299. --5.5.Задачи
  300. --Задача 5-1.
  301. --Да се създаде изглед, който съдържа имената на продуктите и общо поръчано
  302. --количество от продукт.
  303.  
  304. --Задача 5-2.
  305. --Да се създаде изглед, който съдържа десетимата клиенти с най-голям брой
  306. --поръчки. Ако последният клиент има равен брой поръчки с други клиенти, те също да участват в изгледа.
  307.  
Advertisement
RAW Paste Data Copied
Advertisement