Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Демо:
- --Въведи по един запис във всяка от таблиците
- INSERT INTO REGIONS(NAME)
- VALUES('EAST EUROPE')
- --поверка:
- SELECT * FROM REGIONS
- INSERT INTO COUNTRIES(COUNTRY_ID, NAME, REGION_ID)
- VALUES('BG', 'BULGARIA', 1)
- --поверка:
- SELECT * FROM COUNTRIES
- INSERT INTO CUSTOMERS(CUSTOMER_ID, COUNTRY_ID, FNAME, LNAME, ADDRESS, EMAIL, GENDER)
- --поверка:
- SELECT * FROM CUSTOMERS
- INSERT INTO JOBS(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
- VALUES('SA_REP', 'TRADER', 9000, 17000)
- --поверка:
- SELECT * FROM JOBS
- INSERT INTO DEPARTMENTS(DEPARTMENT_ID, NAME, COUNTRY_ID, CITY, STATE, ADDRESS, POSTAL_CODE)
- VALUES(80, 'TRADING', 'BG','PLOVDIV', 'PLOVDIV', 'BUL. BULGARIA 102', '4000')
- --поверка:
- SELECT * FROM DEPARTMENTS
- INSERT INTO EMPLOYEES(EMPLOYEE_ID, FNAME, LNAME, EMAIL, PHONE, HIRE_DATE, JOB_ID, SALARY, DEPARTMENT_ID)
- VALUES(1501, 'PETER', 'MALINOV', '[email protected]', '0894567890', CONVERT(date, '22-10-2020', 105), 'SA_REP', 19000, 80)
- --поверка:
- SELECT * FROM EMPLOYEES
- INSERT INTO PRODUCTS(PRODUCT_ID, NAME, DESCR, PRICE)
- VALUES(20001, 'Samsung Galaxy S10E', 'Samsung Galaxy S10E, 128gb, DUAL SIM, BLACK COLOR', 1400)
- --поверка:
- SELECT * FROM PRODUCTS
- INSERT ORDERS(ORDER_ID, CUSTOMER_ID, EMPLOYEE_ID, SHIP_ADDRESS, ORDER_DATE)
- VALUES(1, 1001, 1501, 'BUL. BULGARIA 108, PLOVDIV', CONVERT(datetime, '23-10-2020 10:30', 105))
- --поверка:
- SELECT * FROM ORDERS
- INSERT INTO ORDER_ITEMS(ORDER_ID, PRODUCT_ID, UNIT_PRICE, QUANTITY)
- VALUES(1, 20001, 1400, 2)
- --поверка:
- SELECT * FROM ORDER_ITEMS
- SELECT * FROM ORDERS
- SELECT * FROM REGIONS
- SELECT * FROM PRODUCTS
- SELECT * FROM EMPLOYEES
- SELECT * FROM DEPARTMENTS
- SELECT * FROM JOBS
- SELECT * FROM COUNTRIES
- SELECT * FROM COUNTRIES
- --Демо:
- --Промяна на заплатата на служител с даден идентификатор:
- UPDATE EMPLOYEES
- SET SALARY = 20200
- WHERE EMPLOYEE_ID = 1501
- --Демо:
- --Поръчката е анулирана - изтрий реда и от таблицата ORDERS:
- DELETE FROM ORDERS
- WHERE ORDER_ID = 1
- --поверка:
- SELECT * FROM ORDER_ITEMS -- заради on delete cascade
- SELECT * FROM ORDERS
- /* Задачи:
- Задача 3-1.
- Да се изтрият всички редове от всички таблици в базата от данни, след което да
- се въведат данните чрез командите от inserts_mssql.sql файла. */
- DELETE FROM PRODUCTS
- DELETE FROM EMPLOYEES
- DELETE FROM DEPARTMENTS
- DELETE FROM CUSTOMERS
- DELETE FROM JOBS
- DELETE FROM COUNTRIES
- DELETE FROM REGIONS
- --проверка:
- SELECT * FROM ORDER_ITEMS
- SELECT * FROM ORDERS
- SELECT * FROM REGIONS
- SELECT * FROM PRODUCTS
- SELECT * FROM EMPLOYEES
- SELECT * FROM DEPARTMENTS
- SELECT * FROM JOBS
- SELECT * FROM COUNTRIES
- SELECT * FROM COUNTRIES
- --За да работим всички "на чисто" изтрихме таблиците, които създадохме с:
- DROP TABLE ORDER_ITEMS
- DROP TABLE ORDERS
- DROP TABLE PRODUCTS
- DROP TABLE DEPARTMENTS
- DROP TABLE EMPLOYEES
- DROP TABLE CUSTOMERS
- DROP TABLE COUNTRIES
- DROP TABLE JOBS
- DROP TABLE REGIONS
- --След което изпълнихме готовия код от приложeнието в ръководството (файловете са качени и в mindmap точно под препадката за този pastebin - така, че тези, които не са ги изпълнили с мен по време на упражнения могат да ги намерят и там), за да създадем наново таблиците,
- -- вече създадени изпълнихме и записите, за да се попълнят даннни в тях автоматично.
- --Продължихме със задачите по-долу :)
- /*Задача 3-2.
- Да се увеличи количеството с 2 броя и да се намали единичната цена с 5% на
- продукт с идентификатор 2254 в поръчка с идентификатор 2354.*/
- SELECT UNIT_PRICE, QUANTITY
- FROM ORDER_ITEMS
- WHERE ORDER_ID = 2354 AND PRODUCT_ID =2254
- --промените:
- UPDATE ORDER_ITEMS
- SET UNIT_PRICE *= 0.95, QUANTITY += 2
- WHERE ORDER_ID = 2354 AND PRODUCT_ID =2254
- --проверка след като сме направили промените:
- SELECT UNIT_PRICE, QUANTITY
- FROM ORDER_ITEMS
- WHERE ORDER_ID = 2354 AND PRODUCT_ID =2254
- --Задача 3-3.
- --Да се изтрие служител с идентификатор 183.
- DELETE FROM EMPLOYEES
- WHERE EMPLOYEE_ID = 183
- SELECT * FROM EMPLOYEES
- -------------------------------------------------------------------------------------------
- --Пример 4-1.
- --Да се изведат имената, датите на назначаване и заплатите на всички служители.
- SELECT FNAME,
- LNAME,
- HIRE_DATE,
- SALARY
- FROM EMPLOYEES
- /*Пример 4-2.
- Да се изведат всички данни за продуктите, с цена по-голяма от 2000. Резултатът
- нека бъде подреден по цена на продукт възходящо.*/
- SELECT *
- FROM PRODUCTS
- WHERE PRICE > 2000
- ORDER BY PRICE
- --Пример 4-3.
- --Да се изведе броя на всички служители.
- SELECT COUNT(EMPLOYEE_ID) -- забележи в резултатния набо няма име - no column name
- FROM EMPLOYEES
- --Пример 4-4.
- --Да се изведе броя служители, групирани по отдела, в който работят.
- SELECT COUNT(EMPLOYEE_ID) AS [COUNT EMP], --с AS можем да поставим име в рамките на заявката(временно)
- DEPARTMENT_ID
- FROM EMPLOYEES
- GROUP BY DEPARTMENT_ID
- -------------------------------------------------------------------------------------------
- --4.2.1. Задачи
- --Задача 4-1.
- --Да се изведат имената, заплатите и идентификаторите на длъжностите на
- --служителите, работещи в отдели 50 и 80. Резултатът да е подреден по фамилия на служител във възходящ ред.
- SELECT FNAME,
- LNAME,
- SALARY,
- JOB_ID
- FROM EMPLOYEES
- WHERE DEPARTMENT_ID = 50 OR DEPARTMENT_ID = 80
- ORDER BY LNAME ASC
- --Задача 4-2.
- --Да се изведат общата сума на заплатите и броя служители в отдел 60.
- SELECT SUM(SALARY) AS [ сума на заплатите ],
- COUNT(EMPLOYEE_ID) AS [броя служители ]
- FROM EMPLOYEES
- WHERE DEPARTMENT_ID = 60
- --Задача 4-3. --за домашна
- --За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
- --поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement