Advertisement
S_Madanska

13.10.22

Oct 13th, 2022
1,468
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 7.65 KB | None | 0 0
  1.  
  2. ---------------------------------------------------------------
  3. -----------------------TRADECOMPANY ---------------------------
  4. ---------------------------------------------------------------
  5.  
  6. --Демо: Въведи по един запис във всяка от таблиците
  7.  
  8.     INSERT INTO REGIONS (NAME)
  9.     VALUES('ИЗТОЧНА ЕВРОПА')
  10.  
  11.     SELECT * FROM REGIONS
  12.  
  13.     INSERT INTO COUNTRIES(COUNTRY_ID, NAME, REGION_ID)
  14.     VALUES('BG', 'БЪЛГАРИЯ', 1)
  15.  
  16.     SELECT * FROM COUNTRIES
  17.  
  18.     INSERT INTO CUSTOMERS(CUSTOMER_ID, COUNTRY_ID, FNAME, LNAME, ADDRESS, EMAIL, GENDER)
  19.     VALUES(100, 'BG', 'ТОДОР', 'ИЛИЕВ','ГР. ПЛОВДИВ УЛ. РОДОПИ 22', '[email protected]', DEFAULT)
  20.  
  21.     SELECT * FROM CUSTOMERS
  22.  
  23.     INSERT INTO JOBS (JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
  24.     VALUES('SA_REP', 'ТЪРГОВСКИ ПРЕДСТАВИТЕЛ', 2000, 5000)
  25.  
  26.     SELECT * FROM JOBS
  27.  
  28.     INSERT INTO DEPARTMENTS (DEPARTMENT_ID, NAME , COUNTRY_ID, CITY, STATE, ADDRESS, POSTAL_CODE)
  29.     VALUES(10, 'ПРОДАЖБИ', 'BG', 'ГР. ПЛОВДИВ', 'ГР. ПЛОВДИВ','ГР. ПЛОВДИВ УЛ. РОДОПИ 22', '4000')
  30.  
  31.     SELECT * FROM DEPARTMENTS
  32.  
  33.     INSERT INTO EMPLOYEES (EMPLOYEE_ID, FNAME, LNAME, EMAIL, PHONE, HIRE_DATE, SALARY, JOB_ID, DEPARTMENT_ID)
  34.     VALUES(1, 'МАРИЯ', 'ПЕТРОВА', '[email protected]', '08923455677', CONVERT(DATE, '13-10-2022', 105), 3000,'SA_REP', 10)
  35.  
  36.     SELECT * FROM EMPLOYEES
  37.     SELECT GETDATE()
  38.  
  39.     INSERT INTO PRODUCTS(PRODUCT_ID, NAME, PRICE, DESCR)
  40.     VALUES(1, 'FLASH ADATA', 15.50, 'BLACK 32GB')
  41.  
  42.     SELECT * FROM PRODUCTS
  43.  
  44.     INSERT INTO ORDERS(ORDER_ID, ORDER_DATE, CUSTOMER_ID, EMPLOYEE_ID, SHIP_ADDRESS)
  45.     VALUES(10, GETDATE(), 100, 1, NULL)
  46.  
  47.     SELECT * FROM ORDERS
  48.  
  49.     INSERT INTO ORDER_ITEMS (ORDER_ID, PRODUCT_ID, UNIT_PRICE, QUANTITY)
  50.     VALUES(10, 1, 15, 2)
  51.  
  52.     SELECT * FROM ORDER_ITEMS
  53.  
  54. --Демо: Промяна на заплатата на служител с даден идентификатор:
  55.  UPDATE EMPLOYEES
  56.  SET SALARY = 4000
  57.  WHERE EMPLOYEE_ID = 1
  58.  
  59.  SELECT * FROM EMPLOYEES
  60.  
  61. --Демо: Поръчката е анулирана -  изтрий реда и от таблицата ORDERS:
  62.  DELETE FROM ORDERS
  63.  
  64.  SELECT * FROM ORDERS
  65.  SELECT * FROM ORDER_ITEMS
  66.  
  67.  
  68. /*Задача 3-1.
  69.     Да се изтрият всички редове от всички таблици в базата от данни, след което да
  70.     се въведат данните чрез командите от inserts_mssql.sql файла. */
  71.  
  72.   --DELETE FROM ORDERS
  73.   --DELETE FROM ORDER_ITEMS
  74.   DELETE FROM EMPLOYEES
  75.    DELETE FROM JOBS
  76.     DELETE FROM DEPARTMENTS
  77.      DELETE FROM PRODUCTS
  78.       DELETE FROM CUSTOMERS
  79.        DELETE FROM COUNTRIES
  80.         DELETE FROM REGIONS
  81.  
  82. --Обхват – BETWEEN, NOT BETWEEN
  83.     SELECT *
  84.      FROM PRODUCTS
  85.     WHERE PRICE NOT BETWEEN 1 AND 1000
  86.      ------------------------------------------------------
  87.  
  88. --Принадлежност към множество – IN, NOT IN.
  89.     SELECT *
  90.      FROM CUSTOMERS
  91.     WHERE COUNTRY_ID in ('BG', 'DE')
  92.     --WHERE COUNTRY_ID ='BG' AND  COUNTRY_ID ='DE'
  93.  ------------------------------------------------------
  94. --Търсене на неизвестни стойности – IS [NOT] NULL.
  95.  
  96.  /*Поле със стойност NULL е празно поле. Това е липса на стойност. Стойността на NULL е различна от 0 или интервал.  
  97. Ако column в таблица е разрешено да сърържа null стойности можете да вмъкнете нов запис или да актуализирате запис, без да добавите стойност в нея. Тогава полето ще бъде запазено с NULL стойност.
  98. Не е. възможно да се тестват стойности за NULL с оператори за сравнение =, <, <>. Вместо тях използваме операторите IS NULL и IS NOT NULL.
  99. */
  100.     SELECT *
  101.       FROM EMPLOYEES
  102.      WHERE MANAGER_ID IS NOT NULL
  103.  
  104.     SELECT *
  105.       FROM EMPLOYEES
  106.      WHERE MANAGER_ID IS  NULL
  107.   ------------------------------------------------------
  108. /*Наколко условия за търсене се обединяват с AND или/и OR.
  109.  
  110. Приоритетът на логическите оператори е
  111. 1). NOT
  112. 2). AND
  113. 3). OR
  114. Скобите променят приоритета.*/
  115.  
  116.   SELECT *
  117.   FROM CUSTOMERS
  118.   WHERE COUNTRY_ID='BG'
  119.   AND (GENDER='F' OR LNAME='ПЕТРОВ')
  120.  
  121. ---Wildcards [more info: --https://www.w3schools.com/sql/sql_wildcards.asp ]
  122.     SELECT * FROM CUSTOMERS
  123.     WHERE ADDRESS LIKE '%,_София%'
  124.  
  125.  
  126. /*Задача 3-2.
  127.     Да се увеличи количеството с 2 броя и да се намали единичната цена с 5% на
  128.     продукт с идентификатор 2254 в поръчка с идентификатор 2354. */
  129.     SELECT *
  130.     FROM ORDER_ITEMS
  131.     WHERE PRODUCT_ID = 2254 AND ORDER_ID = 2354
  132.  
  133.     UPDATE  ORDER_ITEMS
  134.     SET QUANTITY +=2 , UNIT_PRICE *= 0.95
  135.     WHERE PRODUCT_ID = 2254 AND ORDER_ID = 2354
  136.  
  137.     SELECT *
  138.     FROM ORDER_ITEMS
  139.     WHERE PRODUCT_ID = 2254 AND ORDER_ID = 2354
  140.  
  141. /*Задача 3-3.
  142.     Да се изтрие служител с идентификатор 183.*/
  143.     SELECT EMPLOYEE_ID FROM EMPLOYEES
  144.     WHERE EMPLOYEE_ID = 183
  145.  
  146.     DELETE FROM EMPLOYEES
  147.     WHERE EMPLOYEE_ID = 183
  148. -------------------------------------------------------------------------------------------
  149. /* Пример 4-1.
  150.     Да се изведат имената, датите на назначаване и заплатите на всички служители. */
  151.     SELECT FNAME + ' ' + LNAME AS NAME,
  152.            --CONCAT(FNAME,' ', LNAME) AS [EMPLOYEE NAME],
  153.            HIRE_DATE,
  154.            SALARY
  155.     FROM EMPLOYEES
  156.  
  157.  
  158. /*Пример 4-2.
  159.     Да се изведат всички данни за продуктите,
  160.     с цена по-голяма от 2000.
  161.     Резултатът нека бъде подреден по цена на продукт възходящо.*/
  162.     SELECT * FROM PRODUCTS
  163.     WHERE PRICE > 2000
  164.     ORDER BY PRICE --- DEFAULT ASC /DESC-НИЗХОДЯЩО
  165.  
  166. /*Пример 4-3.
  167.     Да се изведе броя на всички служители.*/
  168.     --AGG: SUM, MIN, MAX, AVG, COUNT(*)/(COLUMN)
  169.     SELECT * FROM EMPLOYEES
  170.  
  171.     SELECT COUNT(EMPLOYEE_ID) AS [броя на всички служители]
  172.     FROM EMPLOYEES
  173.  
  174.  
  175. /*Пример 4-4.  
  176.     Да се изведе броя служители, групирани по отдела, в който работят.*/
  177.     SELECT COUNT(EMPLOYEE_ID) AS [броя на всички служители],
  178.            DEPARTMENT_ID
  179.     FROM EMPLOYEES
  180.     GROUP BY DEPARTMENT_ID
  181.  
  182. -------------------------------------------------------------------------------------------
  183. /*Задача. Да се изведат общата сума на заплатите и броя служители в отдел 60.*/
  184.     SELECT SUM(SALARY) [общата сума на заплатите],
  185.            COUNT(EMPLOYEE_ID) 'броя служители в отдел 60'
  186.     FROM EMPLOYEES
  187.     WHERE DEPARTMENT_ID = 60
  188.  
  189. /*Задача.
  190.     За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
  191.     поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.*/
  192.     SELECT SUM(UNIT_PRICE*QUANTITY) 'обща стойност на поръчката',
  193.            ORDER_ID
  194.     FROM ORDER_ITEMS
  195.     GROUP BY ORDER_ID
  196.     ORDER BY 'обща стойност на поръчката' DESC
  197.     --ORDER BY 1 DESC
  198.  
  199.  
  200.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement