• Главная
  • Карта сайта
Не найдено

НОУ ІНТУЇТ | лекція | Основні оператори мови SQL. інтерактивний SQL

  1. 12.4. Використання SQL для вибору інформації з декількох таблиць До сих пір ми розглядали вибір...
  2. 12.5. Мова SQL і операції реляційної алгебри
  3. операція об'єднання
  4. операція різниці
  5. операція проекції
  6. Операція вибірки (селекції)
  7. операція перетину
  8. Операція з'єднання, еквісоедіненія
  9. Операція природного з'єднання

12.4. Використання SQL для вибору інформації з декількох таблиць

До сих пір ми розглядали вибір інформації з єдиною таблиці. Можна запитувати інформацію з декількох таблиць, реалізуючи описані у відповідному розділі підручника реляційні операції. Варто згадати, що повне розгляд теми виходить за рамки даного підручника. Детально це питання можна вивчити за допомогою, наприклад, [ [3.1] , [11.2] ]. Розглянемо деякі приклади того, як це робиться.

Як правило, в тих випадках коли виникає необхідність вибирати інформацію з різних таблиць, вони тим чи іншим чином пов'язані один з одним, наприклад відносинами один до багатьох або один до одного по деякому полю.

Ще раз повернемося до прикладу з "Фізичні моделі даних (внутрішній рівень)" . Розглянемо відповідну ER-діаграму ( Мал. 12.2 .).


Мал.12.2.

Приклад пов'язаних таблиць

У цьому прикладі теж присутні пов'язані таблиці. Розглянемо таблиці student, mark_st і exam_st.

Таблиця mark_st пов'язана з таблицею exam_st по полю id_ex.

Таблиця mark_st пов'язана з таблицею student по полю id_st.

Припустимо, Ви хочете надрукувати список студентів з оцінками, які вони отримали на іспитах. Для цього необхідно виконати наступний запит:

SELECT student.surname, mark_st.id_ex, mark_st.mark FROM student, mark_st WHERE student.id_st = mark_st.id_st

Відзначимо наступні зміни в порівнянні з запитами до однієї таблиці.

  1. У секції FROM вказані дві таблиці.
  2. Так як таблиць стало більше однієї, з'явилася деяка неоднозначність при згадці полів. Так, у багатьох випадках невідомо, з якої таблиці зі списку FROM брати поле. Для усунення неоднозначності імена полів вказуються з префіксом - ім'ям таблиці. Ім'я таблиці від імені поля відокремлюється крапкою.
  3. У реченні WHERE зазначена умова з'єднання таблиць.

Неважко помітити, що використання префіксів-імен таблиць сильно захаращує запит. Для того щоб уникнути подібного захаращення, використовуються псевдоніми. Так, можна переписати попередній запит наступним чином:

SELECT E.surname, M.id_ex, M.mark FROM student E, mark_st M WHERE E.id_st = M. id_st

12.5. Використання SQL для вставки, редагування і видалення даних в таблицях

Для додавання даних в таблицю в стандарті SQL передбачена команда INSERT. Розглянемо ряд прикладів запитів.

INSERT INTO mark_st VALUES (1, 2, 5)

Даний запит вставляє в таблицю mark_st рядок, що містить значення, перераховані в списку VALUES. Якщо не потрібно вказувати значення якогось поля, можна привласнити йому NULL:

INSERT INTO mark VALUES (1, 2, NULL)

У разі якщо необхідно використання для деяких полів значень за замовчуванням, SQL дозволяє явно вказати, які поля необхідно заповнити конкретними даними, а які - значеннями за замовчуванням:

INSERT INTO mark_st (id_st, id_ex) VALUES (1, 2)

Для видалення даних з таблиці існує команда DELETE:

Цей запит видаляє всі дані з таблиці student.

Можна обмежити діапазон видаляється наступним чином:

DELETE FROM student WHERE surname> 'І'

Для поновлення даних використовується команда UPDATE.

UPDATE mark_st SET mark = '5' WHERE id_st = 100 AND id_ex = 10

За допомогою цього запиту зміниться на "5" оцінка у студента з кодом 100 по іспиту з кодом 10.

12.5. Мова SQL і операції реляційної алгебри

Мова SQL є засобом вираження потужного математичного апарату теорії множин і реляційної алгебри. В даному розділі розглядається зв'язок операторів мови SQL з операціями реляційної алгебри і теорії множин.

операція об'єднання

Засобами мови SQL операція об'єднання представляється в такий спосіб:

SELECT * FROM A UNION SELECT * FROM B

операція різниці

Засобами мови SQL операція різниці представляється в такий спосіб:

SELECT * FROM A EXCEPT SELECT * FROM B

операція проекції

SELECT Fieldi1, ..., Fieldin FROM A

Операція вибірки (селекції)

SELECT * FROM A WHERE (<condition>)

операція перетину

SELECT * FROM A INTERSECT SELECT * FROM B

Операція з'єднання, еквісоедіненія

якщо якщо   - операція =, то це еквісоедіненія - операція "=", то це еквісоедіненія.

Операція природного з'єднання

Нехай є відносини A (X1, ..., Xn, A1, ..., Am) і B (X1, ..., Xn, B1, ..., Br).

SELECT A.X1, ..., A.Xn, A.A1, ..., A.Am, B.B1, ..., B.Br FROM A, B WHERE (A.X1 = B.X1) AND ... AND (A.Xn = B.Xn)

Короткі підсумки: В лекції дається загальна характеристика операторів мови SQL, що використовуються, зокрема, для роботи з базою даних в інтерактивному режимі (створення таблиць, вибір інформації з таблиць, додавання, видалення і модифікація елементів). Дається поняття інтерактивного режиму роботи з SQL. Розглядаються основні оператори SQL, використовувані для маніпулювання даними (вибір інформації з таблиць, додавання, видалення і модифікація елементів). Наводяться приклади записи запитів до бази даних на мові SQL з використанням операторів select, insert, update, delete. Розглядається зв'язок між операціями реляційної алгебри і операторами мови SQL.

Більш докладно матеріали лекції розглядаються в [ [3.1] - [5.4] ].

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью