Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Select студент. Имя

FROM СТУДЕНТ

WHERE NOT EXISTS

(SELECT*

FROM ЗАНЯТИЯ

WHERE NOT EXISTS

(SELECT*

FROM ЗАПИСЬ

WHERE ЗАНЯТИЯ.НазваниеПредмета = ЗАПИСЬ.НазваниеПредмета

AND ЗАПИСЬ.НомерСтудента = СТУДЕНТ.ЛичныйНомер))

Этот запрос состоит из трех частей. В нижней части ведется поиск предметов, на которые записан студент. Средняя часть определяет, есть ли такие предметы, на которые студент не записан. Если нет, то студент записан на все предметы, и его имя отображается в результатах.

Этот запрос может оказаться сложным для понимания. Если у вас есть пробле­мы с этим, используйте данные, представленные на рис. 9.2, и следуйте инструк­циям. Для этих данных ответ состоит в том, что нет ни одного студента, который был бы записан на все предметы. Вы можете попытаться изменить данные таким образом, чтобы какой-либо студент был записан на все предметы. Еще один спо­соб уяснить себе суть этого запроса — попробовать представить его в другом виде, без применения ключевого слова NOT EXISTS. Проблемы, с которыми вы при этом столкнетесь, помогут вам понять, почему оператор NOT EXISTS необходим.

Изменение данных

В SQL предусмотрены средства для изменения данных в таблицах путем вставки новых строк, удаления строк и модификации значений в существующих строках. SQL позволяет также менять структуру данных, хотя мы не будем затрагивать эту тему до глав 12 и 13.

Вставка данных

Строки можно вставлять в таблицы по одной или группами. Чтобы вставить одну строку, мы пишем следующее:

INSERT INTO ЗАПИСЬ

VALUES (400, 'BD445', 44)

После ключевого слова INSERT INTO указывается имя таблицы, а после ключе­вого слова VALUES — вставляемые значения.

Если мы знаем не все данные (например, нам неизвестно значение атрибута ПорядковыйНомер), можно поступить следующим образом:

INSERT INTO ЗАПИСЬ

(НомерСтудента. НазваниеПредмета)

VALUES (400, 'BD445', 44)

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

Можно также копировать группы строк из одной таблицы в другую. Пусть, например, нам нужно заполнить таблицу ТРЕТЬЕКУРСНИК, показанную на рис. 9.1.

INSERT INTO ТРЕТЬЕКУРСНИК

VALUES

(SELECT ЛичныйНомер, Имя, Специальность

FROM СТУДЕНТ

WHERE Курс = 'С3')

Вложенный оператор SELECT, как и все выражения SELECT, описанные в предыдущих двух разделах, позволяет указывать строки для копирования. Это свойство предоставляет весьма широкие возможности.

 


Дата добавления: 2015-07-08; просмотров: 218 | Нарушение авторских прав


Читайте в этой же книге: Вторая нормальная форма (2НФ) | ПРИМЕР НОРМАЛИЗАЦИИ | Некоторые комментарии к декомпозиционному алгоритму проектирования | Транзитивные зависимости | Правила вывода | Задачи к текущему материалу | Нормальная форма Бойса—Кодда (НФБК) с примером аномалий для 3 формы | ЯЗЫК SQL | FROM СТУДЕНТ | FROM СТУДЕНТ. ЗАПИСЬ |
<== предыдущая страница | следующая страница ==>
FROM ЗАПИСЬ В| Удаление данных

mybiblioteka.su - 2015-2024 год. (0.006 сек.)