Advertisement
S_Madanska

2_zadochno

Sep 18th, 2022 (edited)
1,104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 13.00 KB | None | 0 0
  1. ---------------------------------------------------------------
  2. -----------------------TRADECOMPANY ---------------------------
  3. ---------------------------------------------------------------
  4.  
  5. --Демо:
  6. --Въведи по един запис във всяка от таблиците
  7.  
  8. --Демо:
  9. --Промяна на заплатата на служител с даден идентификатор:
  10.  
  11. --Демо:
  12. --Поръчката е анулирана -  изтрий реда и от таблицата ORDERS:
  13.  
  14.  
  15. /*Задача 3-1.
  16. Да се изтрият всички редове от всички таблици в базата от данни, след което да
  17. се въведат данните чрез командите от inserts_mssql.sql файла. */
  18.  
  19.  
  20. /*Задача 3-2.
  21. Да се увеличи количеството с 2 броя на
  22. продукт с идентификатор 2254 в поръчка с идентификатор 2354.*/
  23.  
  24. --Задача 3-3.
  25. --Да се изтрие служител с идентификатор 183.
  26.  
  27. -------------------------------------------------------------------------------------------
  28. --Пример 4-1.
  29. --Да се изведат имената, датите на назначаване и заплатите на всички служители.
  30.  
  31. /*Пример 4-2.
  32. Да се изведат всички данни за продуктите, с цена по-голяма от 2000. Резултатът
  33. нека бъде подреден по цена на продукт възходящо.*/
  34.  
  35. --Пример 4-3.
  36. --Да се изведе броя на всички служители.
  37.  
  38. --Пример 4-4.
  39. --Да се изведе броя служители, групирани по отдела, в който работят.
  40.  
  41. -------------------------------------------------------------------------------------------
  42. --Задача 4-1.
  43. --Да се изведат имената, заплатите и идентификаторите на длъжностите на
  44. --служителите, работещи в отдели 50 и 80. Резултатът да е подреден по фамилия на служител във възходящ ред.
  45.  
  46. --Задача 4-2.
  47. --Да се изведат общата сума на заплатите и броя служители в отдел 60.
  48.  
  49.  
  50. --Задача 4-3.
  51. --За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
  52. --поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.
  53.  
  54. -------------------------------------------------------------------------------------------
  55. -------------------------------------Set operators-----------------------------------------
  56. --Условия:
  57. --Броят на колоните във всички заявки трябва да бъде еднакъв;
  58. --Колоните трябва да бъдат от съвместими типове от данни.
  59.  
  60. ---------------------------------------UNION ----------------------------------------------
  61. /*  Резултатни набори, които се обединяват. В целия израз може да присъства само една клауза ,
  62.     ORDER BY накрая сортираща обединения резултат. */
  63.  
  64. --Пример 4-5.
  65. --Да се изведат идентификаторите на държавите, в които има клиенти или отдели на фирмата.
  66.  
  67. --Пример 4-6.
  68. --Да се изведат идентификаторите на държавите, в които има клиенти или отдели на фирмата.
  69. --Нека в резултатния набор участват и дублиращите се записи.
  70.  
  71.  
  72. /*Задача 4-4.
  73. Да се изведат всички малки имена на клиенти и служители с евентуалните
  74. повторения, сортирани в низходящ ред по име. */
  75.  
  76.  
  77. /*Задача 4-5.
  78. Да се изведат име и фамилия на клиенти и служители без повторения, а като
  79. трета колона за клиентите да се използва израз, генериращ низа „Клиент
  80. (<идентификатор>)“, за служителите – „Служител (<идентификатор>)“. */
  81.  
  82.  
  83. ----------------------------------INTERSECT(сечение)---------------------------------------
  84. /*Резултатът съдържа общите за двата резултатни набора редове, без дубликати.
  85.  
  86. Пример 4-7.
  87. Да се изведат id на държавите, в които има клиенти и отдели на фирмата едновременно.*/
  88.  
  89. --Задача 4-6.
  90. --Да се изведат общите собствени имена на клиенти и служители.
  91.  
  92. ----------------------------------EXCEPT---------------------------------------------------
  93. /*връща редовете, върнати от първата заявка, които не се срещат измежду редове от втората. */
  94.  
  95. --Пример 4-8.
  96. --Изведи id на държавите, в които има клиенти и в същото време няма отдели на фирмата.
  97.  
  98.  
  99. /*Задача 4-7.
  100. Да се изведат собствени имена на клиенти, които не се срещат сред тези на служители.*/
  101.  
  102.  
  103. -------------------------------------------------------------------------------------------
  104. ------------------------------------ JOIN -------------------------------------------------
  105. --JOIN се използва за извличане на данни от две или повече таблици, като редовете им се
  106. --комбинират чрез логическа връзка между таблиците, която може да бъде във FROM или WHERE.
  107. --Обикновено тази връзка е първичен/външен ключ, но не задължително.
  108.  
  109.  
  110. -----------------------------------------------------------------------------------------
  111. -----------------------------INNER JOIN или просто JOIN----------------------------------
  112. -----------------------------------------------------------------------------------------
  113. --Извеждат редовете от две/повече таблици, които имат съвпадащи стойности в колоните,
  114. --посочени в условието за сравнение.
  115.  
  116. --Пример 4-10.
  117. --  Да се изведат държавите и регионите, в които се намират.
  118.  
  119. --Пример 4-11.
  120. --  Изведи имена на клиенти, имена на държавите от които са, и имена на регионите на държавите.
  121.  
  122.  
  123. -----------------------------------------------------------------------------------------
  124. -------------------------------Видове OUTER JOIN-----------------------------------------
  125. -----------------------------------------------------------------------------------------
  126.  
  127. --Пример 4-12.
  128. --  Да се изведат регионите и държавите, които се намират в тях. Резултатният
  129. --  набор да включва и регионите, в които няма въведени държави.
  130.  
  131.  
  132. --Пример 4-13.
  133. --  Да се изведат държавите и регионите, в които се намират.
  134. --  Резултатния набор да включва държавите, за които няма въведен регион.
  135.  
  136.  
  137. /*Пример 4-14.
  138. Да се изведат държавите и регионите, в които се намират.
  139. Резултатния набор да включва държавите, за които няма въведен регион и регионите,
  140. за които няма въведени държави.*/
  141.  
  142.  
  143. -----------------------------------------------------------------------------------------
  144. ----------------------------4.6.6. Други JOIN вариации---------------------------------
  145. -----------------------------------------------------------------------------------------
  146.  
  147. /*Пример 4-16.
  148. Да се изведат отделите, в които има назначени служители.*/
  149.  
  150.  
  151. --Пример 4-17.
  152. --  Да се изведат имената на клиентите, които все още не са правили поръчки.
  153.  
  154.  
  155. --Пример 4-18.
  156. --  Да се изведат комбинациите от всички региони и държави, сортирани поиме на държава.
  157.  
  158.  
  159. --Задача 4-8.
  160. --  Извлечи идентификатори, дати на поръчките и имена на служители, които са ги обработили.
  161.  
  162. --Задача 4-9.
  163. --  Да се изведат имената на всички клиенти и id на поръчките им.
  164. --  В резултатния набор да участват и клиентите, които все още не са правили поръчки.
  165.  
  166. --Задача 4-11.
  167. --  Да се изведат имената на всички клиенти, които са от държави в регион „Западна Европа“
  168.  
  169. -----------------------------------------------------------------------------------------
  170. ---------------------------------4.7.1. TOP ---------------------------------------------
  171. --  TOP връща първите N реда в неопределен ред, за желаната подредба използваме ORDER BY!
  172. -----------------------------------------------------------------------------------------
  173.  
  174. -- Пример 4-19.
  175. -- 7-те продукта с най-ниска цена.
  176.  
  177. --Задача 01
  178. --Изведи имента на клиентите, които са от 'DE', но не са правили поръчки до момента
  179.  
  180. -----------------------------------------------------------------------------------------
  181. ---------------------------------4.7.2. OFFSET и FETCH ----------------------------------
  182. -----------------------------------------------------------------------------------------
  183.  
  184. /* Пример 4-21.
  185. петимата служители, започвайки от 10-ти ред, подредени по дата на постъпване.
  186. Първата заявка ще покаже всички за демонстрация, втората ще извърши подбора.*/
  187.  
  188.  
  189. /*Задача 4-12.
  190. вторите 10 най-добре платени служители (подредени по заплата низходящо).*/
  191.      
  192.  
  193. /* Задача 4-13.
  194. Да се изведат име, фамилия и пол на клиентите, направили последните 5 поръчки.*/
  195.  
  196. ----------------------------------------------------------------------------------------
  197. -----------------------------Изгледи = Views--------------------------------------------
  198. -----------------------------Създаване на изгледи---------------------------------------
  199.  
  200. --Пример 5-1.
  201. --Да се създаде изглед, който съдържа име и фамилия на клиентите, както и
  202. --номер и дата на поръчките, които те са направили.
  203.  
  204. -----------------------------Промяна на изгледи-----------------------------------------
  205. --Пример 5-2.
  206. --Да се модифицира горният изглед така, че да съдържа и колона с името на
  207. --съответния служител, обработил поръчката.
  208.  
  209. -- Пример 5-3.
  210. -- Да се модифицира горния изглед така, че да съдържа само поръчките,
  211. -- обработени от служител с идентификатор = 167.
  212.  
  213. -- Пример 5-4.
  214. -- Да се създаде изглед, съдържащ име и фамилия на служител и общата сума
  215. -- на поръчките, които той е обработил.
  216.  
  217. -- Пример 5-5.
  218. -- Да се създаде изглед, който съдържа имена, отдел и заплата на 5-мата
  219. -- служители с най-висока заплата. За да бъдат извлечени служителите,
  220. -- подредени по заплата, очевидно ще трябва да бъдат сортирани по този критерий.
  221.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement