Professional Documents
Culture Documents
ОБДЗ ЛБ3
ОБДЗ ЛБ3
Щоб отримати ціну і відняти від неї 5% (знижка) для продукту з ProductID 3 в
таблиці WaterProducts:
+-----------------+----------------+-------------------+
| Price_Product2 | Price_Product4 | PriceDifference |
+-----------------+----------------+-------------------+
| 2.50 | 3.00 | -0.50 |
+-----------------+----------------+-------------------+
Щоб отримати суму трьох одиниць продукту
SELECT Price * 3 AS TripledPrice
FROM WaterProducts
WHERE ProductID = 4;
+--------------+
| TripledPrice |
+--------------+
| 9.00 |
+--------------+
SELECT *
FROM WaterProducts
WHERE Price > 2;
Запит до таблиці Employees де ідентифікатор працівника менше або рівне 3
SELECT *
FROM Employees
WHERE EmployeeID <= 3;
+------------+-----------+----------+-------------+--------+------------+
| EmployeeID | FirstName | LastName | PositionID | Salary | HireDate |
+------------+-----------+----------+-------------+--------+------------+
|1 | Michael | Smith |1 | 50000.00| 2023-01-15 |
|2 | Emily | Jones |2 | 35000.00| 2023-02-20 |
|3 | David | Brown |3 | 25000.00| 2023-03-10 |
+------------+-----------+----------+-------------+--------+------------+
+---------+------------+-------------+
| OrderID | OrderDate | TotalAmount |
+---------+------------+-------------+
|4 | 2023-12-04 | 8.75 |
+---------+------------+-------------+
+-----------+----------------+--------+--------+-------+
| ProductID | Name | TypeID | Volume | Price |
+-----------+----------------+--------+--------+-------+
|1 | Aquafina |1 | 500 | 1.50 |
|3 | Dasani Lemon | 3 | 330 | 1.75 |
|5 | San Pellegrino | 2 | 500 | 2.00 |
|2 | Perrier |2 | 750 | 2.50 |
|4 | Evian |1 | 1000 | 3.00 |
+-----------+----------------+--------+--------+-------+
Запит до таблиці Orders з сортуванням дати та суми від більшої до меншої
SELECT *
FROM Employees
WHERE Salary BETWEEN 23000 AND 30000;
+------------+-----------+----------+------------+--------+------------+
| EmployeeID | FirstName | LastName | PositionID | Salary | HireDate |
+------------+-----------+----------+------------+--------+------------+
|3 | David | Brown |3 | 25000.00| 2023-03-10 |
|4 | Olivia | Taylor | 4 | 30000.00| 2023-04-05 |
+------------+-----------+----------+------------+--------+------------+
Запит до таблиці Orders із зарплатою між датами 02.12 та 04.12
SELECT *
FROM Orders
WHERE OrderDate BETWEEN '2023-12-02' AND '2023-12-04';
+---------+------------+--------------+
| OrderID | OrderDate | TotalAmount |
+---------+------------+--------------+
|1 | 2023-12-01 | 7.25 |
|2 | 2023-12-02 | 10.25 |
+---------+------------+--------------+
Запит до таблиці WaterProducts для обрання продуктів між з цінами 1.5 та 2.5
SELECT * FROM WaterProducts
WHERE Price BETWEEN 1.5 AND 2.5;
+-----------+-----------------+--------+--------+-------+
| ProductID | Name | TypeID | Volume | Price |
+-----------+-----------------+--------+--------+-------+
|1 | Aquafina |1 | 500 | 1.50 |
|2 | Perrier |2 | 750 | 2.50 |
|3 | Dasani Lemon |3 | 330 | 1.75 |
|4 | Evian |1 | 1000 | 3.00 |
|5 | San Pellegrino | 2 | 500 | 2.00 |
| NULL | Still Water |1 | NULL | NULL |
| NULL | Sparkling Water | 2 | NULL | NULL |
| NULL | Flavored Water | 3 | NULL | NULL |
+-----------+-----------------+--------+--------+-------+
+-----------------+-----------+------------------------+-------------+
| ManufacturerID | Name | Address | Phone |
+-----------------+-----------+------------------------+-------------+
|2 | Nestle | 456 Oak St, Townsville | 555-5678 |
+-----------------+-----------+------------------------+-------------+
+--------+----------------+--------------+
| TypeID | TotalProducts | AveragePrice |
+--------+----------------+--------------+
|1 |2 | 2.25 |
|2 |2 | 2.25 |
|3 |1 | 1.75 |
+--------+----------------+--------------+
Запит до таблиці WaterProducts з угрупованням по полю TypeID
SELECT
OrderID, COUNT(OrderDetailID) AS NumberOfItems, SUM(Quantity) AS TotalQuantity,
SUM(Subtotal) AS TotalSubtotal FROM OrderDetails
GROUP BY OrderID;
– Оновити запис (UPDATE).
Оновити запис у таблиці WaterProducts поле Volume значенням 800 де поле ProductID
дорівнює 4
+------------+
| TotalPrice |
+------------+
| 4.75 |
+------------+
Отримати суму всіх цін у таблиці WaterProducts
+------------+
| TotalPrice |
+------------+
| 10.75 |
+------------+
Отримати середню ціну в таблиці WaterProducts
Контрольні питання:
Оператор INSERT INTO використовується в мові SQL для вставки нового рядка
(запису) у вказану таблицю бази даних. Цей оператор дозволяє вам додавати нові дані у
таблицю, надаючи значення для відповідних колонок.
Синтаксис оператора INSERT INTO виглядає наступним чином:
де:
● table_name - назва таблиці, в яку ви хочете вставити дані.
● column1, column2, column3, ... - назви колонок, до яких ви хочете вставити
дані.
● value1, value2, value3, ... - значення, які ви хочете вставити у відповідні
колонки.
Приклад:
Оператор INSERT INTO є одним із базових елементів для додавання нових записів до
бази даних і є необхідним для поповнення таблиць інформацією.
Денормалізація:
● Опис: Денормалізація — це процес зменшення нормалізації для покращення
продуктивності та спрощення запитів до бази даних.
● Мета: Забезпечення швидкодії та ефективності запитів, особливо при великому
обсязі даних.
● Сценарії використання: Зазвичай використовується в ситуаціях, коли швидкодія є
важливішою за повну нормалізацію, наприклад, для оптимізації запитів читання
даних.
Приклад:
Якщо у вас є таблиця "Замовлення" і ви часто виконуєте запити, які потребують
інформації про клієнта, денормалізація може включати в себе повторення інформації про
клієнта безпосередньо в таблиці "Замовлення" для зменшення необхідності об'єднань
таблиць при запитах.
Приклад:
Цей запит перейменує таблицю з ім'ям "employees" на "staff". Треба бути обережним при
використанні цієї команди, оскільки вона може вплинути на інші об'єкти бази даних, які
посилаються на цю таблицю (такі як тригери, збережені процедури тощо). Спочатку
треба переконатися, що вірно вказано ім’я, та провести відповідні тести після виконання
операції перейменування.
5. Чим відрізняється VARCHAR від NVARCHAR?
VARCHAR (Variable Character) та NVARCHAR (National Variable Character) є двома
типами даних, які використовуються для зберігання рядків у базах даних. Основна
різниця між ними полягає в тому, як вони обробляють символи та кодування.
VARCHAR:
NVARCHAR:
Є кілька способів копіювання даних з однієї таблиці в іншу в базі даних Microsoft SQL
Server. Один з найпоширеніших методів - використання оператору INSERT INTO разом з
клаузою SELECT.
Ось приклад:
У цьому прикладі:
Приклад використання:
Цей запит скопіює дані з колонок "name", "age" та "address" з таблиці OldTable до
відповідних колонок таблиці NewTable.
Уважно, що обидві таблиці повинні мати однакову структуру (тобто, однакову кількість
та типи колонок), і порядок колонок у списку SELECT повинен відповідати порядку у
списку INSERT INTO.
MySQL:
Треба використовувати команду INSERT INTO ... SELECT для копіювання даних:
INSERT INTO нова_таблиця (колонка1, колонка2, колонка3, ...)
SELECT колонка1, колонка2, колонка3, ...
FROM стара_таблиця;
PostgreSQL:
Повинні використовувати команду INSERT INTO ... SELECT або INSERT INTO ...
VALUES: