- •Лабораторна робота № 1
- •Лабораторна робота № 2
- •Теоретичні відомості
- •Лабораторна робота № 3
- •Контрольні запитання
- •Лабораторна робота № 4
- •Лабораторна робота № 5
- •Лабораторна робота № 6
- •Створення таблиць
- •Прості запити і правила їхнього виконання
- •Особливості багатотабличних запитів
- •Використання вкладених запитів
- •Сортування результатів запиту
- •Внесення змін у базу даних
- •Додавання інформації в базу даних
- •Видалення даних
- •Об'єднання таблиць
- •Індекси
- •Лабораторна робота № 7
- •Література Основна література
- •Додаткова література
Прості запити і правила їхнього виконання
Часто виникає необхідність у виборі інформації з декількох таблиць - одним з варіантів здійснення такого висновку є об'єднання результатів декількох запитів, що виконуються незалежно друг від друга.
Для розміщення декількох запитів разом і об'єднання їхнього висновку використовують пропозиція UNION. Пропозиція UNION поєднує висновок двох чи більш SQL запитів у єдиний набір рядків і стовпців. Наприклад, для одержання списку всіх студентів і викладачів, прізвища яких укладені між буквами 'К' і 'С', можна скористатися запитом:
SELECT SFAM, SІМА, SOTCH FROM STUDENTSWHERE SFAM BETWEEN 'К' AND 'С'
UNION
SELECT TFAM, ТIMA, TOTCH FROM TEACHERS
WHERE TFAM BETWEEN 'K' AND 'C';
Казанко |
Віталій |
Володимирович |
Костыркин |
Оле |
Володимирович |
Познякова |
Любов |
Олексійович |
Котенко |
Анатолій |
Миколайович |
Нагорний |
Євгеній |
Васильович |
Поляків |
Анатолій |
Олексіївна |
Звідси можна зробити висновок, що запису, обрані двома командами, виведені так, ніби вона була одна. Природно, що заголовки стовпців виключені, тому що жоден зі стовпців, виведених об'єднанням, не був витягнутий безпосередньо з тільки однієї таблиці, отже, Всі ці стовпці висновку не мають ніяких імен. Зверніть увагу на те, що тільки останній запит закінчується крапкою з коми - відсутність крапки з коми дає зрозуміти SQL, що мається ще один чи більш запитів.
Коли два чи більш запити піддаються об'єднанню, їхні стовпці висновку повинні бути сумісні для об'єднання, що нами вже розглядалося вище. Нагадаємо, що це означає для кожного запиту необхідність включення однакового числа стовпців у тім же порядку, що і перший, другий, третій, і т.д., і при цьому повинна бути присутнім сумісність типів. Інше обмеження на сумісність - це коли порожні значення NULL заборонені в будь-якому стовпці об'єднання, тоді ці значення необхідно заборонити і для Всіх відповідних стовпців в інших запитах об'єднання. Нарешті, не можна використовувати агрегатні функції в пропозиції SELECT запиту в об'єднанні.
UNION буде автоматично виключати дублікати рядків з висновку. Якщо, наприклад, у таблиці STUDENTS з'явиться ще один студент із прізвищем Поляків, то запит
SELECT SFAM FROM STUDENTS
дасть наступний висновок:
-
SFAM
Поляків
Старова
Гриценко
Котенко
Нагорний
Поляків
Тут мається дублювання значень SFAM = Поляків, тому що не зазначено, щоб SQL усунув дублікати. Однак, при використанні UNION у комбінації цього запиту з йому подібним у таблиці викладачів, надлишкова інформація буде усунута.
SELECT SFAM FROM STUDENTS UNION SELECT TFAM FROM TEACHERS;
дає наступні результати без дублювання прізвища Поляків:
Поляків |
Старова |
Гриценко |
Котенко |
Нагорний |
Викулина |
Костыркин |
Казанко |
Позднякова |
Загарийчук |
