- •Содержание
- •Введение
- •Лабораторная работа №1 Разработка базы данных. Основы работы в MySql
- •Часть 1. Нормализация данных
- •Типы данных
- •Лабораторная работа №2 Выборка данных - оператор select
- •Заполнение таблицы данными
- •Выполнение запросов
- •Экспорт бд
- •Импорт бд
- •Лабораторная работа №3 Уточнения запросов
- •Лабораторная работа №4 Агрегированные функции
- •Лабораторная работа №5 Строковые и числовые функции
- •Основные строковые функции
- •Основные числовые функции
- •Лабораторная работа №6 Условные выражения с оператором case
- •Лабораторная работа №7 Простые подзапросы
- •Подзапросы, возвращающие единственное значение
- •Подзапросы, возвращающие список значений, из одного столбца таблицы
- •Лабораторная работа №8 Связанные подзапросы
- •Условное соединение (join …on)
- •Соединение по именам столбцов (join …using)
- •Лабораторная работа №10 Добавление, удаление и изменение данных
- •Добавление новых записей
- •Удаление записей
- •Изменение данных
- •Лабораторная работа №11 Представления
- •Лабораторная работа №12 Связь mysql и delphi
- •Список литературы:
Удаление записей
Для удаления записей из таблицы применяют запрос:
DELETE FROM <таблица> WHERE <условие> |
Данный оператор удаляет из указанной таблицы записи (а не отдельные значения полей), которые удовлетворяют указанному условию.
В операторе WHERE может находиться подзапрос на выборку данных.
Операция удаления записей является необратимой, чтобы избежать удаления нужных данных рекомендуется сначала выполнять запросы, чтобы просмотреть какие записи будут удалены.
Удалить студентов, у которых сумма оценок меньше 10.
Рекомендуется создать запрос на выборку таких студентов
SELECT * FROM DANNIE T1 WHERE 10 < (SELECT SUM(T2.OCENKA) FROM USPEV T2 WHERE T1.KOD_STUDENT=T2.KOD_STUDENT)
Запрос на удаление выглядит следующим образом:
DELETE FROM DANNIE T1 WHERE 10 < (SELECT SUM(T2.OCENKA) FROM USPEV T2 WHERE T1.KOD_STUDENT=T2.KOD_STUDENT)
Для удаления всех записей из таблицы достаточно использовать:
DELETE FROM <таблица> |
При этом сама таблица остается и готова для вставки новых записей.
Изменение данных
Для изменения значений столбцов применяется команда:
UPDATE <таблица> SET <поле> = <значение> WHERE <условие> |
Изменить место работы Власовой Валентины Васильевны – продавец на секретарь.
UPDATE RODITELI SET RABOTA=’СЕКРЕТАРЬ’ WHERE FIO_ROD=’Власова Валентина Васильевна’
Порядок выполнения работы:
Добавить в таблицу о студентах одного студента.
Добавить в таблицу о родителях информацию о двух родителях студента.
Названия улиц добавить в названия городов.
Добавить названия дисциплин в названия специальностей.
Удалить из таблиц Города, названия улиц.
Удалить из таблицы Специальности названия дисциплин.
Удалить информацию о добавленном студенте.
Удалить информацию о родителях добавленного студента.
Изменить номера телефонов МТС на Мегафон (8918… на 8928…).
Изменить название дисциплины ‘Информатика’ на ‘Информатика и ИТ’.
Воркин Фома Григорьевич перевелся в группу с кодом 2. Внесите соответствующие изменения в таблицу DANNIE.
Лабораторная работа №11 Представления
Цель работы: познакомиться с понятием представление, научиться создавать представления, изменять данные в представлениях.
Ключевые слова: представления.
Теоретический материал:
Представления – это виртуальные таблицы, но они могут быть доступны многим пользователям и существуют в базе данных до тех пор, пока не будут принудительно удалены. Они во всем похожи на обычные таблицы базы данных, за исключением того, что не являются физическими объектами хранения данных.
Данные в представлениях выбираются из таблиц, т.е. представляются в том или ином виде. Они применяются, чтобы скрыть от пользователя некоторые столбцы, скомбинировать из нескольких таблиц одну, которая часто нужна пользователю, а запрос для неё очень сложен. Таким образом, представления используются как надстроечные средства для адаптации базы данных к различным категориям пользователей.
Представления создаются с помощью оператора CREATE VIEW (создать вид, представление).
CREATE VIEW <имя представления> AS <запрос> |
Создать представление, которое выводит фамилии и соответствующие оценки студентов.
CREATE VIEW OCENKI AS
SELECT DANNIE.FAM, USPEV.OCENKA FROM DANNIE, USPEV WHERE DANNIE.KOD_STUDENT = USPEV. KOD_STUDENT.
Создана виртуальная таблица OCENKI, к которой можно обращаться с запросами как к обычной таблице.
Вывести из представления OCENKI, только фамилии и хорошие оценки.
SELECT * FROM OCENKI WHERE OCENKA IN (4,5)
Рассмотренное представление является многотабличным, поскольку создано на основе не одной, а двух таблиц. На практике используются более простые однотабличные представления, в которых скрываются некоторые столбцы и/или добавляются, значения которых вычисляются.
Создать представление Rod, в котором будут отображены фамилии родителей и их телефоны.
CREATE VIEW ROD AS SELECT FIO_ROD AS FIO, TEL FROM RODITELI.
Название представлений и таблиц не должны совпадать. Данное представление можно заменить обычным запросом
SELECT FIO_ROD AS FIO, TEL FROM RODITELI
Однако относительно полученного набора данных нельзя задать какой–нибудь запрос, поскольку этот набор является виртуальной таблицей, отличной от представления.
Оператор CREATE VIEW допускает и такую форму синтаксиса:
CREATE VIEW <имя представления> (<столбец1>, <столбец2>,…, <столбецN>) AS <запрос> |
Создать представление, которое выводит фамилию и дату рождения студентов.
CREATE VIEW DATE (FIO, DATE) AS SELECT FAM, DATE_ROGNEN FROM DANNIE
В представлении указываются имена столбцов, которые могут быть отличны от имён столбцов в таблице.
Удаление представления осуществляется командой:
DROP VIEW <имя представления> |
Порядок выполнения работы:
Создать представление DAN, которое выводит фамилию, паспортные данные студента, название улицы, на которой проживает студент.
В представлении DAN вывести отсортировать данные о студентах по улицам в алфавитном порядке.
В представлении DAN вывести студентов, проживающих на улицах, начинающих на букву К.
Создать представление MINMAX, которое выводит фамилию студента, минимальную, максимальную оценку.
В представлении MINMAX найти среднее минимальное и максимальное значение оценок.
В представлении MINMAX найти среднее минимальное и максимальное значение оценок для каждого студента.
Создать представление OBUCH (fio, gruppa, spec) , включающее поля фамилия студента, название группы, название специальности.
В представлении OBUCH подсчитать количество студентов в каждой группе.
Создать представление ADRES (fio, region, gorod, ulica, dom, kvart).
В представление ADRES вывести студентов по городам. Вывести количество студентов проживающих в разных городах.
В представление ADRES вывести студентов по регионам. Вывести количество студентов проживающих в разных регионах.
Вывести студентов проживающих в одном городе, на одной улице.
