- •Содержание
- •Введение
- •Лабораторная работа №1 Разработка базы данных. Основы работы в MySql
- •Часть 1. Нормализация данных
- •Типы данных
- •Лабораторная работа №2 Выборка данных - оператор select
- •Заполнение таблицы данными
- •Выполнение запросов
- •Экспорт бд
- •Импорт бд
- •Лабораторная работа №3 Уточнения запросов
- •Лабораторная работа №4 Агрегированные функции
- •Лабораторная работа №5 Строковые и числовые функции
- •Основные строковые функции
- •Основные числовые функции
- •Лабораторная работа №6 Условные выражения с оператором case
- •Лабораторная работа №7 Простые подзапросы
- •Подзапросы, возвращающие единственное значение
- •Подзапросы, возвращающие список значений, из одного столбца таблицы
- •Лабораторная работа №8 Связанные подзапросы
- •Условное соединение (join …on)
- •Соединение по именам столбцов (join …using)
- •Лабораторная работа №10 Добавление, удаление и изменение данных
- •Добавление новых записей
- •Удаление записей
- •Изменение данных
- •Лабораторная работа №11 Представления
- •Лабораторная работа №12 Связь mysql и delphi
- •Список литературы:
Условное соединение (join …on)
Условное соединение похоже на соединение с условием равенства. В качестве условия может выступать любое логическое выражение, которое записывается после ключевого слова ON (при), а не WHERE. Если условие выполняется для текущей записи декартового произведения, то она входит в результативную таблицу.
Вывести информацию о студентах и их оценках по дисциплине с кодом 2.
SELECT * FROM DANNIE JOIN USPEV ON (DANNIE.KOD_STUDENT = USPEV.KOD_STUDENT) AND (USPEV.KOD_DISCHIPLINA=2)
Соединение по именам столбцов (join …using)
Соединение по именам столбцов похоже на естественное соединение. Отличие состоит в том, что можно указать, какие именно одноименные столбцы должны проверяться, а при естественном проверяются все одноименные столбцы.
Вывести в каком городе какие улицы.
SELECT * FROM GOROD JOIN ULICA USING (KOD_GOROD)
Данные таблицы содержат более одного идентичного поля, поэтому естественное соединение вернет пустой результат.
Запрос можно сформулировать иначе:
SELECT * FROM GOROD INNER JOIN ULICA ON (GOROD.KOD_GOROD= ULICA. KOD_GOROD)
Внешние соединения таблиц
Из таблицы, получаемой при внутреннем соединении, отбраковываются все записи, для которых нет соответствующей записи одновременно в обеих таблицах. При внешнем соединении такие несоответствующие записи сохраняются.
Левое соединение (LEFT OUTER JOIN)
При левом внешнем соединении несоответствующие записи, имеющиеся в левой таблице, сохраняются в результативной, а имеющиеся в правой – удаляются.
Рассмотренный в Примере 1 запрос выводит не все записи, тот же самый запрос при внешнем левом объединении выглядит так:
SELECT T1.*, T2.OCENKA FROM DANNIE T1 LEFT OUTER JOIN USPEV T2 ON T1.KOD_STUDENT=T2.KOD_STUDENT
Правое соединение (RIGHT OUTER JOIN)
При правом внешнем соединении несоответствующие записи, имеющиеся в правой таблице, сохраняются в результативной, а имеющиеся в левой – удаляются.
Рассмотренный в Примере 1 запрос выводит не все записи, тот же самый запрос при внешнем правом объединении выглядит так:
SELECT T1.*, T2.OCENKA FROM DANNIE T1 RIGHT OUTER JOIN USPEV T2 ON T1.KOD_STUDENT=T2.KOD_STUDENT
Полное соединение (FULL JOIN)
Полное соединение выполняет и левое, и правое внешние соединения.
SELECT * FROM DANNIE FULL JOIN USPEV
Задания:
Вывести названия регионов и соответствующие названия городов.
Вывести перечень специальностей и название групп.
Вывести названия дисциплин, по которым студенты получили 5.
Вывести фамилии преподавателей, поставивших 3.
Вывести фамилии студентов и названия соответствующих улиц.
Вывести фамилии студентов и названия соответствующих городов.
Вывести фамилии студентов и названия соответствующих регионов.
Вывести информацию о студентах и их родителях.
Лабораторная работа №10 Добавление, удаление и изменение данных
Цель работы: Научиться создавать запросы на добавление, удаление и изменение данных в таблицах.
Ключевые слова: INSERT, DELETE, UPDATE.
Теоретический материал:
Добавление новых записей
Для добавления записи в таблицу служит оператор INSERT, который имеет несколько форм:
INSERT INTO <таблица> VALUES (<список значений>) |
– вставляет пустую запись в указанную таблицу и заполняет эту запись значениями из списка, указанного за ключевым словом VALUES. При этом первое в списке значение вводится в первый столбец, второе – во второй и т.д. Порядок столбцов задается при создании таблицы. Данная форма не очень надежна, поскольку нетрудно ошибиться в порядке вводимых значений.
INSERT INTO <таблица> (<список столбцов>) VALUES (<список значений>) |
– вставляет пустую запись в указанную таблицу и в заданные столбцы значения из указанного списка. При этом в первый столбец из список столбцов вводится первое значение из список значений. Порядок и количество имен столбцов в списке может отличаться от их порядка и количества, заданного при создании таблицы. Столбцы которые не указаны в списке, заполняются значением NULL.
Добавить в DANNIE Иванова Ивана Ивановича.
INSERT INTO DANNIE (FAM, IMA, OTCH) VALUES ('ИВАНОВ', 'ИВАН', 'ИВАНОВИЧ')
Возможна работа со значениями типа запись. Это позволяет за ключевым словом VALUES указывать несколько наборов значений в круглых скобках.
Добавить в таблицу Города записи НОВОКУБАНСК, КУРГАНИНСК, КРОПОТКИН.
INSERT INTO GOROD (NAZVANIE) VALUES ('НОВОКУБАНСК'), ('КУРГАНИНСК'), ('КРОПОТКИН')
INSERT INTO <таблица> (<список столбцов>) <запрос на выборку> |
– вставляет в указанную таблицу записи, возвращаемые запросом на выборку.
Названия городов добавить в названия регионов.
INSERT INTO REGION(NAZVANIE) SELECT NAZVANIE FROM GOROD
