Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------------------------------------------------
- -----------------------TRADECOMPANY ---------------------------
- ---------------------------------------------------------------
- --Демо: Въведи по един запис във всяка от таблиците
- INSERT INTO REGIONS (NAME)
- VALUES('ИЗТОЧНА ЕВРОПА')
- SELECT * FROM REGIONS
- INSERT INTO COUNTRIES(COUNTRY_ID, NAME, REGION_ID)
- VALUES('BG', 'БЪЛГАРИЯ', 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', 'ТЪРГОВСКИ ПРЕДСТАВИТЕЛ', 2000, 5000)
- SELECT * FROM JOBS
- INSERT INTO DEPARTMENTS (DEPARTMENT_ID, NAME , COUNTRY_ID, CITY, STATE, ADDRESS, POSTAL_CODE)
- VALUES(10, 'ПРОДАЖБИ', 'BG', 'ГР. ПЛОВДИВ', 'ГР. ПЛОВДИВ','ГР. ПЛОВДИВ УЛ. РОДОПИ 22', '4000')
- SELECT * FROM DEPARTMENTS
- INSERT INTO EMPLOYEES (EMPLOYEE_ID, FNAME, LNAME, EMAIL, PHONE, HIRE_DATE, SALARY, JOB_ID, DEPARTMENT_ID)
- VALUES(1, 'МАРИЯ', 'ПЕТРОВА', '[email protected]', '08923455677', CONVERT(DATE, '13-10-2022', 105), 3000,'SA_REP', 10)
- SELECT * FROM EMPLOYEES
- SELECT GETDATE()
- INSERT INTO PRODUCTS(PRODUCT_ID, NAME, PRICE, DESCR)
- VALUES(1, 'FLASH ADATA', 15.50, 'BLACK 32GB')
- SELECT * FROM PRODUCTS
- INSERT INTO ORDERS(ORDER_ID, ORDER_DATE, CUSTOMER_ID, EMPLOYEE_ID, SHIP_ADDRESS)
- VALUES(10, GETDATE(), 100, 1, NULL)
- SELECT * FROM ORDERS
- INSERT INTO ORDER_ITEMS (ORDER_ID, PRODUCT_ID, UNIT_PRICE, QUANTITY)
- VALUES(10, 1, 15, 2)
- SELECT * FROM ORDER_ITEMS
- --Демо: Промяна на заплатата на служител с даден идентификатор:
- UPDATE EMPLOYEES
- SET SALARY = 4000
- WHERE EMPLOYEE_ID = 1
- SELECT * FROM EMPLOYEES
- --Демо: Поръчката е анулирана - изтрий реда и от таблицата ORDERS:
- DELETE FROM ORDERS
- SELECT * FROM ORDERS
- SELECT * FROM ORDER_ITEMS
- /*Задача 3-1.
- Да се изтрият всички редове от всички таблици в базата от данни, след което да
- се въведат данните чрез командите от inserts_mssql.sql файла. */
- --DELETE FROM ORDERS
- --DELETE FROM ORDER_ITEMS
- DELETE FROM EMPLOYEES
- DELETE FROM JOBS
- DELETE FROM DEPARTMENTS
- DELETE FROM PRODUCTS
- DELETE FROM CUSTOMERS
- DELETE FROM COUNTRIES
- DELETE FROM REGIONS
- --Обхват – BETWEEN, NOT BETWEEN
- SELECT *
- FROM PRODUCTS
- WHERE PRICE NOT BETWEEN 1 AND 1000
- ------------------------------------------------------
- --Принадлежност към множество – IN, NOT IN.
- SELECT *
- FROM CUSTOMERS
- WHERE COUNTRY_ID in ('BG', 'DE')
- --WHERE COUNTRY_ID ='BG' AND COUNTRY_ID ='DE'
- ------------------------------------------------------
- --Търсене на неизвестни стойности – IS [NOT] NULL.
- /*Поле със стойност NULL е празно поле. Това е липса на стойност. Стойността на NULL е различна от 0 или интервал.
- Ако column в таблица е разрешено да сърържа null стойности можете да вмъкнете нов запис или да актуализирате запис, без да добавите стойност в нея. Тогава полето ще бъде запазено с NULL стойност.
- Не е. възможно да се тестват стойности за NULL с оператори за сравнение =, <, <>. Вместо тях използваме операторите IS NULL и IS NOT NULL.
- */
- SELECT *
- FROM EMPLOYEES
- WHERE MANAGER_ID IS NOT NULL
- SELECT *
- FROM EMPLOYEES
- WHERE MANAGER_ID IS NULL
- ------------------------------------------------------
- /*Наколко условия за търсене се обединяват с AND или/и OR.
- Приоритетът на логическите оператори е
- 1). NOT
- 2). AND
- 3). OR
- Скобите променят приоритета.*/
- SELECT *
- FROM CUSTOMERS
- WHERE COUNTRY_ID='BG'
- AND (GENDER='F' OR LNAME='ПЕТРОВ')
- ---Wildcards [more info: --https://www.w3schools.com/sql/sql_wildcards.asp ]
- SELECT * FROM CUSTOMERS
- WHERE ADDRESS LIKE '%,_София%'
- /*Задача 3-2.
- Да се увеличи количеството с 2 броя и да се намали единичната цена с 5% на
- продукт с идентификатор 2254 в поръчка с идентификатор 2354. */
- SELECT *
- FROM ORDER_ITEMS
- WHERE PRODUCT_ID = 2254 AND ORDER_ID = 2354
- UPDATE ORDER_ITEMS
- SET QUANTITY +=2 , UNIT_PRICE *= 0.95
- WHERE PRODUCT_ID = 2254 AND ORDER_ID = 2354
- SELECT *
- FROM ORDER_ITEMS
- WHERE PRODUCT_ID = 2254 AND ORDER_ID = 2354
- /*Задача 3-3.
- Да се изтрие служител с идентификатор 183.*/
- SELECT EMPLOYEE_ID FROM EMPLOYEES
- WHERE EMPLOYEE_ID = 183
- DELETE FROM EMPLOYEES
- WHERE EMPLOYEE_ID = 183
- -------------------------------------------------------------------------------------------
- /* Пример 4-1.
- Да се изведат имената, датите на назначаване и заплатите на всички служители. */
- SELECT FNAME + ' ' + LNAME AS NAME,
- --CONCAT(FNAME,' ', LNAME) AS [EMPLOYEE NAME],
- HIRE_DATE,
- SALARY
- FROM EMPLOYEES
- /*Пример 4-2.
- Да се изведат всички данни за продуктите,
- с цена по-голяма от 2000.
- Резултатът нека бъде подреден по цена на продукт възходящо.*/
- SELECT * FROM PRODUCTS
- WHERE PRICE > 2000
- ORDER BY PRICE --- DEFAULT ASC /DESC-НИЗХОДЯЩО
- /*Пример 4-3.
- Да се изведе броя на всички служители.*/
- --AGG: SUM, MIN, MAX, AVG, COUNT(*)/(COLUMN)
- SELECT * FROM EMPLOYEES
- SELECT COUNT(EMPLOYEE_ID) AS [броя на всички служители]
- FROM EMPLOYEES
- /*Пример 4-4.
- Да се изведе броя служители, групирани по отдела, в който работят.*/
- SELECT COUNT(EMPLOYEE_ID) AS [броя на всички служители],
- DEPARTMENT_ID
- FROM EMPLOYEES
- GROUP BY DEPARTMENT_ID
- -------------------------------------------------------------------------------------------
- /*Задача. Да се изведат общата сума на заплатите и броя служители в отдел 60.*/
- SELECT SUM(SALARY) [общата сума на заплатите],
- COUNT(EMPLOYEE_ID) 'броя служители в отдел 60'
- FROM EMPLOYEES
- WHERE DEPARTMENT_ID = 60
- /*Задача.
- За всички поръчки да се изведат идентификатор на поръчка и обща стойност на
- поръчката. Резултатът да е подреден по стойност на поръчката в низходящ ред.*/
- SELECT SUM(UNIT_PRICE*QUANTITY) 'обща стойност на поръчката',
- ORDER_ID
- FROM ORDER_ITEMS
- GROUP BY ORDER_ID
- ORDER BY 'обща стойност на поръчката' DESC
- --ORDER BY 1 DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement