Advertisement
S_Madanska

22.10

Oct 22nd, 2020 (edited)
171
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 7.43 KB | None
  1. --Демо:
  2.     --Въведи по един запис във всяка от таблиците
  3.     INSERT INTO REGIONS(NAME)
  4.     VALUES('EAST EUROPE')
  5.     --поверка:
  6.     SELECT * FROM REGIONS
  7.  
  8.     INSERT INTO COUNTRIES(COUNTRY_ID, NAME, REGION_ID)
  9.     VALUES('BG', 'BULGARIA', 1)
  10.     --поверка:
  11.     SELECT * FROM COUNTRIES
  12.  
  13.     INSERT INTO CUSTOMERS(CUSTOMER_ID, COUNTRY_ID, FNAME, LNAME, ADDRESS, EMAIL, GENDER)
  14.     VALUES(1001, 'BG', 'GEORGE', 'PENEV', 'BUL. BULGARIA 100, PLOVDIV', 'gpenev@gmail.com', 'M')
  15.     --поверка:
  16.     SELECT * FROM CUSTOMERS
  17.  
  18.     INSERT INTO JOBS(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
  19.     VALUES('SA_REP', 'TRADER', 9000, 17000)
  20.     --поверка:
  21.     SELECT * FROM JOBS
  22.  
  23.     INSERT INTO DEPARTMENTS(DEPARTMENT_ID, NAME, COUNTRY_ID, CITY, STATE, ADDRESS, POSTAL_CODE)
  24.     VALUES(80, 'TRADING', 'BG','PLOVDIV', 'PLOVDIV', 'BUL. BULGARIA 102', '4000')
  25.     --поверка:
  26.     SELECT * FROM DEPARTMENTS
  27.  
  28.     INSERT INTO EMPLOYEES(EMPLOYEE_ID, FNAME, LNAME, EMAIL, PHONE, HIRE_DATE, JOB_ID, SALARY, DEPARTMENT_ID)
  29.     VALUES(1501, 'PETER', 'MALINOV', 'pmalinov@abv.bg', '0894567890', CONVERT(date, '22-10-2020', 105), 'SA_REP', 19000, 80)
  30.     --поверка:
  31.     SELECT * FROM EMPLOYEES
  32.  
  33.     INSERT INTO PRODUCTS(PRODUCT_ID, NAME, DESCR, PRICE)
  34.     VALUES(20001, 'Samsung Galaxy S10E', 'Samsung Galaxy S10E, 128gb, DUAL SIM, BLACK COLOR', 1400)
  35.     --поверка:
  36.      SELECT * FROM PRODUCTS
  37.  
  38.     INSERT ORDERS(ORDER_ID, CUSTOMER_ID, EMPLOYEE_ID, SHIP_ADDRESS, ORDER_DATE)
  39.     VALUES(1, 1001, 1501, 'BUL. BULGARIA 108, PLOVDIV', CONVERT(datetime, '23-10-2020 10:30', 105))
  40.     --поверка:
  41.     SELECT * FROM ORDERS
  42.  
  43.     INSERT INTO ORDER_ITEMS(ORDER_ID, PRODUCT_ID, UNIT_PRICE, QUANTITY)
  44.     VALUES(1, 20001, 1400, 2)
  45.     --поверка:
  46.     SELECT * FROM ORDER_ITEMS
  47.  
  48.     SELECT * FROM ORDERS
  49.     SELECT * FROM REGIONS
  50.     SELECT * FROM PRODUCTS
  51.     SELECT * FROM EMPLOYEES
  52.     SELECT * FROM DEPARTMENTS
  53.     SELECT * FROM JOBS
  54.     SELECT * FROM COUNTRIES
  55.     SELECT * FROM COUNTRIES
  56.  
  57. --Демо:
  58.     --Промяна на заплатата на служител с даден идентификатор:
  59.     UPDATE EMPLOYEES
  60.     SET SALARY = 20200
  61.     WHERE EMPLOYEE_ID = 1501
  62.  
  63. --Демо:
  64.     --Поръчката е анулирана -  изтрий реда и от таблицата ORDERS:
  65.     DELETE FROM ORDERS
  66.     WHERE ORDER_ID = 1
  67.  
  68.     --поверка:
  69.     SELECT * FROM ORDER_ITEMS   -- заради on delete cascade
  70.     SELECT * FROM ORDERS
  71.  
  72. /* Задачи:
  73. Задача 3-1.
  74.     Да се изтрият всички редове от всички таблици в базата от данни, след което да
  75.     се въведат данните чрез командите от inserts_mssql.sql файла. */
  76.  
  77.     DELETE FROM PRODUCTS
  78.     DELETE FROM EMPLOYEES
  79.     DELETE FROM DEPARTMENTS
  80.     DELETE FROM CUSTOMERS
  81.     DELETE FROM JOBS
  82.     DELETE FROM COUNTRIES
  83.     DELETE FROM REGIONS
  84.  
  85.     --проверка:
  86.     SELECT * FROM ORDER_ITEMS
  87.     SELECT * FROM ORDERS
  88.     SELECT * FROM REGIONS
  89.     SELECT * FROM PRODUCTS
  90.     SELECT * FROM EMPLOYEES
  91.     SELECT * FROM DEPARTMENTS
  92.     SELECT * FROM JOBS
  93.     SELECT * FROM COUNTRIES
  94.     SELECT * FROM COUNTRIES
  95.  
  96. --За да работим всички "на чисто" изтрихме таблиците, които създадохме с:
  97.     DROP TABLE ORDER_ITEMS
  98.     DROP TABLE ORDERS
  99.     DROP TABLE PRODUCTS
  100.     DROP TABLE DEPARTMENTS
  101.     DROP TABLE EMPLOYEES
  102.     DROP TABLE CUSTOMERS
  103.     DROP TABLE COUNTRIES
  104.     DROP TABLE JOBS
  105.     DROP TABLE REGIONS
  106.  
  107. --След което изпълнихме готовия код от приложeнието в ръководството (файловете са качени и в mindmap точно под препадката за този pastebin - така, че тези, които не са ги изпълнили с мен по време на упражнения могат да ги намерят и там), за да създадем наново таблиците,
  108. -- вече създадени изпълнихме и записите, за да се попълнят даннни в тях автоматично.
  109.  
  110. --Продължихме със задачите по-долу :)
  111.  
  112. /*Задача 3-2.
  113.     Да се увеличи количеството с 2 броя и да се намали единичната цена с 5% на
  114.     продукт с идентификатор 2254 в поръчка с идентификатор 2354.*/
  115.  
  116.     SELECT UNIT_PRICE, QUANTITY
  117.     FROM ORDER_ITEMS
  118.     WHERE ORDER_ID = 2354 AND PRODUCT_ID =2254
  119.  
  120.     --промените:
  121.     UPDATE ORDER_ITEMS
  122.     SET UNIT_PRICE *= 0.95, QUANTITY += 2
  123.     WHERE ORDER_ID = 2354 AND PRODUCT_ID =2254
  124.  
  125.     --проверка след като сме направили промените:
  126.     SELECT UNIT_PRICE, QUANTITY
  127.     FROM ORDER_ITEMS
  128.     WHERE ORDER_ID = 2354 AND PRODUCT_ID =2254
  129.  
  130. --Задача 3-3.
  131.     --Да се изтрие служител с идентификатор 183.
  132.     DELETE FROM EMPLOYEES
  133.     WHERE EMPLOYEE_ID = 183
  134.  
  135.     SELECT * FROM EMPLOYEES
  136.    
  137.  
  138. -------------------------------------------------------------------------------------------
  139. --Пример 4-1.
  140.     --Да се изведат имената, датите на назначаване и заплатите на всички служители.
  141.  
  142.     SELECT FNAME,
  143.            LNAME,
  144.            HIRE_DATE,
  145.            SALARY
  146.       FROM EMPLOYEES
  147.  
  148. /*Пример 4-2.
  149.     Да се изведат всички данни за продуктите, с цена по-голяма от 2000. Резултатът
  150.     нека бъде подреден по цена на продукт възходящо.*/
  151.  
  152.       SELECT *
  153.         FROM PRODUCTS
  154.        WHERE PRICE > 2000
  155.     ORDER BY PRICE
  156.  
  157. --Пример 4-3.
  158.     --Да се изведе броя на всички служители.
  159.  
  160.     SELECT COUNT(EMPLOYEE_ID) -- забележи в резултатния набо няма име - no column name
  161.       FROM EMPLOYEES
  162.  
  163. --Пример 4-4.
  164.     --Да се изведе броя служители, групирани по отдела, в който работят.
  165.       SELECT COUNT(EMPLOYEE_ID) AS [COUNT EMP], --с AS можем да поставим име в рамките на заявката(временно)
  166.          DEPARTMENT_ID
  167.         FROM EMPLOYEES
  168.     GROUP BY DEPARTMENT_ID
  169.  
  170. -------------------------------------------------------------------------------------------
  171. --4.2.1. Задачи
  172. --Задача 4-1.
  173.     --Да се изведат имената, заплатите и идентификаторите на длъжностите на
  174.     --служителите, работещи в отдели 50 и 80. Резултатът да е подреден по фамилия на служител във възходящ ред.
  175.  
  176.       SELECT FNAME,
  177.              LNAME,
  178.              SALARY,
  179.              JOB_ID
  180.         FROM EMPLOYEES
  181.        WHERE DEPARTMENT_ID = 50 OR DEPARTMENT_ID = 80
  182.     ORDER BY LNAME ASC
  183.  
  184.  
  185. --Задача 4-2.
  186.     --Да се изведат общата сума на заплатите и броя служители в отдел 60.
  187.  
  188.     SELECT SUM(SALARY) AS [ сума на заплатите ],
  189.            COUNT(EMPLOYEE_ID)  AS [броя служители ]
  190.       FROM EMPLOYEES
  191.      WHERE DEPARTMENT_ID = 60
  192.  
  193. --Задача 4-3. --за домашна
  194.     --За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
  195.     --поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.
Advertisement
RAW Paste Data Copied
Advertisement