Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sql.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
962 Кб
Скачать
☆

Удаление записей

Для удаления записей из таблицы применяют запрос:

DELETE FROM <таблица> WHERE <условие>

Данный оператор удаляет из указанной таблицы записи (а не отдельные значения полей), которые удовлетворяют указанному условию.

В операторе WHERE может находиться подзапрос на выборку данных.

Операция удаления записей является необратимой, чтобы избежать удаления нужных данных рекомендуется сначала выполнять запросы, чтобы просмотреть какие записи будут удалены.

  1. Удалить студентов, у которых сумма оценок меньше 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 <условие>

  1. Изменить место работы Власовой Валентины Васильевны – продавец на секретарь.

UPDATE RODITELI SET RABOTA=’СЕКРЕТАРЬ’ WHERE FIO_ROD=’Власова Валентина Васильевна’

Порядок выполнения работы:

  1. Добавить в таблицу о студентах одного студента.

  2. Добавить в таблицу о родителях информацию о двух родителях студента.

  3. Названия улиц добавить в названия городов.

  4. Добавить названия дисциплин в названия специальностей.

  5. Удалить из таблиц Города, названия улиц.

  6. Удалить из таблицы Специальности названия дисциплин.

  7. Удалить информацию о добавленном студенте.

  8. Удалить информацию о родителях добавленного студента.

  9. Изменить номера телефонов МТС на Мегафон (8918… на 8928…).

  10. Изменить название дисциплины ‘Информатика’ на ‘Информатика и ИТ’.

  11. Воркин Фома Григорьевич перевелся в группу с кодом 2. Внесите соответствующие изменения в таблицу DANNIE.

Лабораторная работа №11 Представления

Цель работы: познакомиться с понятием представление, научиться создавать представления, изменять данные в представлениях.

Ключевые слова: представления.

Теоретический материал:

Представления – это виртуальные таблицы, но они могут быть доступны многим пользователям и существуют в базе данных до тех пор, пока не будут принудительно удалены. Они во всем похожи на обычные таблицы базы данных, за исключением того, что не являются физическими объектами хранения данных.

Данные в представлениях выбираются из таблиц, т.е. представляются в том или ином виде. Они применяются, чтобы скрыть от пользователя некоторые столбцы, скомбинировать из нескольких таблиц одну, которая часто нужна пользователю, а запрос для неё очень сложен. Таким образом, представления используются как надстроечные средства для адаптации базы данных к различным категориям пользователей.

Представления создаются с помощью оператора CREATE VIEW (создать вид, представление).

CREATE VIEW <имя представления> AS <запрос>

  1. Создать представление, которое выводит фамилии и соответствующие оценки студентов.

CREATE VIEW OCENKI AS

SELECT DANNIE.FAM, USPEV.OCENKA FROM DANNIE, USPEV WHERE DANNIE.KOD_STUDENT = USPEV. KOD_STUDENT.

Создана виртуальная таблица OCENKI, к которой можно обращаться с запросами как к обычной таблице.

  1. Вывести из представления OCENKI, только фамилии и хорошие оценки.

SELECT * FROM OCENKI WHERE OCENKA IN (4,5)

Рассмотренное представление является многотабличным, поскольку создано на основе не одной, а двух таблиц. На практике используются более простые однотабличные представления, в которых скрываются некоторые столбцы и/или добавляются, значения которых вычисляются.

  1. Создать представление 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 <запрос>

  1. Создать представление, которое выводит фамилию и дату рождения студентов.

CREATE VIEW DATE (FIO, DATE) AS SELECT FAM, DATE_ROGNEN FROM DANNIE

В представлении указываются имена столбцов, которые могут быть отличны от имён столбцов в таблице.

Удаление представления осуществляется командой:

DROP VIEW <имя представления>

Порядок выполнения работы:

  1. Создать представление DAN, которое выводит фамилию, паспортные данные студента, название улицы, на которой проживает студент.

  2. В представлении DAN вывести отсортировать данные о студентах по улицам в алфавитном порядке.

  3. В представлении DAN вывести студентов, проживающих на улицах, начинающих на букву К.

  4. Создать представление MINMAX, которое выводит фамилию студента, минимальную, максимальную оценку.

  5. В представлении MINMAX найти среднее минимальное и максимальное значение оценок.

  6. В представлении MINMAX найти среднее минимальное и максимальное значение оценок для каждого студента.

  7. Создать представление OBUCH (fio, gruppa, spec) , включающее поля фамилия студента, название группы, название специальности.

  8. В представлении OBUCH подсчитать количество студентов в каждой группе.

  9. Создать представление ADRES (fio, region, gorod, ulica, dom, kvart).

  10. В представление ADRES вывести студентов по городам. Вывести количество студентов проживающих в разных городах.

  11. В представление ADRES вывести студентов по регионам. Вывести количество студентов проживающих в разных регионах.

  12. Вывести студентов проживающих в одном городе, на одной улице.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]