Advertisement
madanska

view/modify_view

Nov 17th, 2019
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.80 KB | None | 0 0
  1. --------------------------------------------------------------------------
  2. -----------------------------Изгледи = Views------------------------------
  3. --------------------------------------------------------------------------
  4.  
  5. --  Създаване на изгледи
  6.  
  7. --1. Да се създаде изглед, който съдържа номерата на поръчките,
  8. -- датата им, името на клиента, направил поръчката.
  9. CREATE VIEW CustomerOrders
  10. AS
  11. SELECT c.FNAME +  ' ' + c.LNAME as Customer,
  12.        o.ORDER_ID,
  13.        o.ORDER_DATE
  14.   FROM ORDERS o, CUSTOMERS c
  15.  WHERE o.CUSTOMER_ID = c.CUSTOMER_ID
  16.  
  17. SELECT * FROM CustomerOrders
  18.  
  19. --2. Да се модифицира горния изглед така, че да съдържа и колона
  20. -- с името на съответния служител, обработил поръчката.
  21.  
  22. ALTER VIEW CustomerOrders
  23. AS
  24. SELECT c.FNAME +  ' ' + c.LNAME as Customer,
  25.        o.ORDER_ID,
  26.        o.ORDER_DATE,
  27.        e.FNAME + ' ' + e.LNAME as Employee
  28.   FROM ORDERS o, CUSTOMERS c, EMPLOYEES e
  29.  WHERE e.EMPLOYEE_ID = o.EMPLOYEE_ID
  30.    AND o.CUSTOMER_ID = c.CUSTOMER_ID
  31.  
  32. --3. Да се модифицира горния изглед така, че да съдържа само поръчките,
  33. --обработени от служител с идентификатор = 167.
  34.  
  35. ALTER VIEW CustomerOrders
  36. AS
  37. SELECT C.FNAME + ' ' + C.LNAME AS Customers,
  38.        O.ORDER_ID,
  39.        O.ORDER_DATE,
  40.        E.FNAME + ' ' + E.LNAME AS Employees
  41.   FROM EMPLOYEES E, ORDERS O, CUSTOMERS C
  42.  WHERE E.EMPLOYEE_ID = O.EMPLOYEE_ID
  43.    AND O.CUSTOMER_ID = C.CUSTOMER_ID
  44.    AND E.EMPLOYEE_ID = 167
  45.  
  46.  -- 4. Да се създаде изглед, съдържащ име и фамилия на служител,
  47.  -- максимална сума на поръчка, която той е обработил,
  48.  -- както и общата сума на поръчките, които е обработил.
  49.  
  50.  CREATE VIEW EmployeeOrders
  51.  AS
  52.   SELECT E.FNAME,
  53.          E.LNAME,
  54.          MAX(ORD.TOTAL) MaxSum,
  55.          SUM(ORD.TOTAL) TotalPrice
  56.     FROM EMPLOYEES E,
  57.          (SELECT O.EMPLOYEE_ID,
  58.                  SUM(OI.UNIT_PRICE*OI.QUANTITY) AS Total
  59.             FROM ORDERS O, ORDER_ITEMS OI
  60.            WHERE O.ORDER_ID = OI.ORDER_ID
  61.         GROUP BY O.ORDER_ID, O.EMPLOYEE_ID) ORD
  62.    WHERE E.EMPLOYEE_ID = ORD.EMPLOYEE_ID
  63. GROUP BY E.EMPLOYEE_ID, E.FNAME, E.LNAME
  64.  
  65. SELECT * FROM EmployeeOrders
  66. ORDER BY TotalPrice DESC
  67.  
  68. --------------------------------------------------------------------------
  69. --  Манипулиране на данни през изглед
  70.  
  71. -- 1.Да се създаде изглед, който да съдържа колони с идентификатор,
  72. -- държава и име на клиент от таблицата CUSTOMERS.
  73. CREATE VIEW UpdateCustomerView
  74. AS
  75. SELECT CUSTOMER_ID,
  76.        COUNTRY_ID,
  77.        FNAME,
  78.        LNAME  
  79.   FROM CUSTOMERS
  80.  
  81. INSERT INTO UpdateCustomerView(CUSTOMER_ID, COUNTRY_ID,  FNAME, LNAME)
  82.      VALUES (2, 'BG', 'Plamen', 'Georgiev')
  83.  
  84. --INSERT INTO UpdateCustomerView(CUSTOMER_ID, COUNTRY_ID,  FNAME, LNAME)
  85. --VALUES (2, 'BG', 'Plamen', 'Georgiev')
  86.  
  87. SELECT * FROM UpdateCustomerView
  88.  
  89. ---------------------------------------------------------------------------
  90. -- Променяне на данни през изглед
  91.  
  92. --1. Да се промени името на клиент с идентификатор ‘2’.
  93.  
  94. UPDATE UpdateCustomerView
  95.    SET LNAME = 'Stoychev'
  96.  WHERE CUSTOMER_ID = 2
  97.  
  98. ---------------------------------------------------------------------------
  99.  
  100. -- Изтриване на данни през изглед
  101. --1. Да се изтрие клиент с идентификатор ‘2’.
  102.  
  103. DELETE FROM UpdateCustomerView
  104. WHERE CUSTOMER_ID = 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement