- •Varchar [(длмня)], char varying [(длина)],
- •Числовые типы данных
- •Дата и время
- •Неопределенные или пропущенные данные (noll)
- •Используемые термины и обозначения
- •Команды манипулирования данными
- •3.2. Использование подзапросов в insert
- •Создание таблиц базы данных
- •Создание объектов базы данных
- •Зміна структури таблиці
- •Внимание
- •Зміна структури таблиць
- •Заняття 4. Вставка записів у таблиці
- •Ограничение not null
- •2.4. Листинг 2.4. Команда создания таблицы Orders
- •Перегляд окремих записів та окремих полів у таблиці
- •Використання кількох умов відбору записів
- •Ітоги . Що ми узнали про перегляд даних у таблицях
- •Лекція на тему: Оновлення та вилучення записів в субд MySql.
- •3.2. Использование подзапросов в insert
- •Вилучення записів з таблиць
- •Лекція на тему: Вибірка даних з субд MySql.
- •Просте об'єднання двох таблиць
- •Самостійно.
- •Об'єднання трьох і більше таблиць
- •Об'єднання таблиць за остачею
- •Підсумок
- •Лекція на тему: Групування даних. Запити з обчисленнями.
- •Обчислення середнього значення: функція avg
- •Підрахунок кількості записів: функція count
- •Підрахунок суми значень: функція sum()
- •Пошук найбільшого та найменшого значення: функції max та min
3.2. Использование подзапросов в insert
UPDATE STUDENT 1
SET STIPEND = STIPEND*2
WHERE CITY = 'Москва';
Предложение SET не является предикатом, поэтому в нем можно указать значение NULL следующим образом:
UPDATE UNIVERSITYl
SET RATING = NULL
WHERE CITY = 'Москва';
Вилучення записів з таблиць
Вилучення записів з таблиць виконується інструкцією DELETE. її використання подібне до використнання інструкції UPDATE. Для вилучення окремих записів з таблиці використовують інструкцію:
DELETE FROM назва_таблиці WHERE умова_відбору LIMIT кількість_рядків; Вилучення всіх записів з таблиці:
DELETE FROM назва_таблиці;
Ітоги 6. Що ми узнали про оновлення та вилучення записів у таблицях
1. Інструкція SQL для оновлення записів має такий загальний вид:
UPDATE назва_таблиці
SET поле1=вираз1, поле2=вираз2, . . . WHERE умова_відбору_записів LIMIT кількість_рядків
2. Вилучення записів з таблиць виконується інструкцією
DELETE FROM назва_таблиці WHERE умова_відбору LIMIT кількість_рядків
Вилучення всіх записів з таблиці: DELETE FROM назва_таблиці;
Конструкція WHERE умова_відбору_записів в операторі дозволяє оновити або вилучити не всі, а лише окремі записи таблиці.
Конструкція LIMIT кількість_рядків задає кількість рядків, що підлягають оновленню або вилученню.
Лекція на тему: Вибірка даних з субд MySql.
Якщо виникає необхідність одержати дані з кількох таблиць одночасно, то для цього виконується операція, яка називається об'єднанням таблиць. Фактично, об'єднання таблиць - це виборка даних з кількох таблиць одночасно.
Для об'єднання таблиць створюється складний запит, де після інструкції SELEСТ вказують перелік полів у формі назва_таблиці. назва_поля, після команди FROM йде перелік таблиць, що об'єднуються, а після WHERE - умова об'єднання таблиць у вигляді назва таблиці. назва_поля="значення".
Тобто загальний вигляд простої інструкції на виборку даних з кількох таблиць такий:
SELECT таблиця_1.потрібне_поле, таблиця_2.потрібне_поле, ... FROM таблиця__1, таблиця_2, ... WHERE умова_об'єднання_таблиць;
Зауваження. Створення і використання умов об'єднання таблиць подібне до використання кількох умов відбору записів при перегляді таблиць. Це питання докладно розглядалося на занятті 5.
У складних інструкціях на виборку даних з кількох таблиць можна також групувати записи, задавати критерії пошуку записів, порядок сортування та кількість записів. Для цього до інструкції необхідно додатково включити наступні команди:
GROUP BY порядок_групування записів
HAVING критерії_пошуку_записів
ORDER BY порядок_сортування_записів
LIMIT критерії обмеження_кількості__записів;
Просте об'єднання двох таблиць
Безпосередньо об'єднувати можна лише ті таблиці, між якими існує прямий зв'язок (тобто ті, що мають однойменні ключові поля). Наприклад, такі:
-
customers
customerlD
name
address
orders
orderID
customerlD
amount
date
►► Ознайомтеся з наступним прикладом.
Приклад: необхідно одержати повні відомості про замовлення клієнта іваненка.
Відповідна інструкція на запит матиме наступний вид:
mysql> select customers.name, orders.* from customers, orders
where customers.пате="Иван Иваненко" and customers.customerID=orders.customerID;
Ця інструкція вибирає відомості з двох таблиць - customers та orders. Причому з таблиці customers вибирається тільки ім'я користувача (поле name), це записується у вигляді customers. name, а з таблиці orders вибираються всі поля, відповідний запис - orders . *. (Примітка. Якщо немає потреби виводити на монітор всі поля таблиці, то у переліку полів треба вказати кожне поле окремо).
Умова об'єднання таблиць має вид
customers.namе="Иван Иваненко" and customers.customerID=orders.customerlD
Вона складається з двох умов, які повинні виконуватися одночасно. Ця умова об'єднання означає, що з обох таблиць відбираються лише записи, які стосуються клієнта Іваненка, а саме: спочатку з першої таблиці customers відбираються записи щодо Іваненка (умова customers. namе="Иван Иваненко"), а потім з таблиці orders відбираються лише ті записи, у яких ідентифікатор customerlD співпадає з customerlD записів, вже відібраних з таблиці customers.
Виконайте наведений вище запит на одержання повних відомостей про замовлення клієнта Іваненка.
Відповідь сервера:
I name I OrderlD I CustomerlD | Amount I Date І
І Iван Иваненко | 2 | 1 І 144.00 | 2003-09-10 І
1 row in set (0.05 sec)
►► Якщо у запиті немає необхідності виводити всі поля на екран монітору, то зайве поле не треба включати у перелік полів після інструкції SELECT. Виконайте наступний запит і переконайтеся, що у цьому запиті customerlD на монітор не виводиться.
mysql> select customers.name, orders.orderID, orders.amount, orders.date
from customers, orders
where customers . name like ( "%Иван.% " ) and customers.customerID=orders.customerlD;
Результат запиту.
|
|
|
|
name |
order ID |
amout |
! date |
Иван Иваненко |
1 |
60 . 00 |
! 2003-09-01 |
1 row in set (0.00 sec)
