INSERT INTO оценка
VALUES (“002”, “001”, 13/01/11, 2+3);
При указании списка имён полей их порядок произволен. Это удобно при первичном заполнении таблиц из напечатанного отчёта. Можно сформировать запрос с указанием последовательности полей, как и в печатной форме. Список значений должен указываться в порядке списка имён полей. Если имя поля опущено, то автоматически вводится значения по умолчанию, определённые при создании таблицы (это будет рассмотрено далее).
По команде UPDATE можно изменить некоторые или все значения в существующей строке.
UPDATE имя-таблицы
SET поле = значение, [поле = значение, …]
WHERE условие;
В качестве значений могут использоваться константы и выражения от значений текущей записи:
Пример:
Изменить дату экзамена с 11.01.11 на 12.01.11 у преподавателя с кодом 001:
UPDATE оценка
SET odate = 12/01/11
WHEREopnum = “001” AND
odate = 11/01/11;
Исключение строк из таблицы осуществляется по следующей команде:
DELETE FROM имя_таблицы
WHERE условие;
Если предложение WHEREопущено, удаляются все записи таблицы, иначе – записи, удовлетворяющие условию.
Пример:
Удалить из таблицы Оценка записи студента с кодом 003:
DELETE FROM оценка
WHERE osnum = “003”;
В запросах обновления таблиц могут использоваться подзапросы. Рассмотренная выше команда INSERT позволяла добавлять одну запись в таблицу. Использование подзапросов позволяет добавлять множество записей с помощью одной команды INSERT. В команде INSERT можно применить любую форму подзапроса выборки данных, чтобы извлечь данные из одной таблицы и поместить в другую.
Пример:
Данные о неудовлетворительных оценках студентов поместить в таблицу Неуд:
INSERT INTO НЕУД
SELECT * FROM оценка
WHERE ocen = 2;
opnum |
osnum |
odate |
ocen |
003 |
003 |
16/01/11 |
2 |
Пример:
Поместить в таблицу Средний балл, состоящую из столбцов snum, avg, данные о средних баллах студентов.
INSERT INTO средбалл (snum, avg)
SELECT snum, AVG (ocen) FROM оценка
GROUP BY osnum;
snum |
avg |
001 |
5 |
002 |
4 |
003 |
3 |
В приведённых примерах таблицы Неуд и Средний балл должны быть предварительно созданы. Способ создания таблиц и одновременного их заполнения мы рассмотрим позже.
В команде UPDATE подзапросы могут использоваться в условиях отбора обновляемых записей.
Пример:
Передать всех дипломников преподавателя П1 преподавателю с кодом 002.
UPDATE студент
SET spdp = “002”
WHERE spdp =
(SELECT pnum FROM Преподаватель WHERE pname = “П-1”);
2. Создание, модификация и уничтожение таблиц. Ограничение на множество допустимых значений данных. Значение по умолчанию.
В теории практики баз данных всегда различают 2 понятия: язык манипулирования данными (ЯМД) и язык описания данных (ЯОД). К ЯМД относятся рассмотренные выше команды SQL, а к ЯОД относятся команды создания таблиц и связей между ними. Речь идёт не только об описании состава и формата полей, но и о значении по умолчанию и ограничении на множество допустимых значений. Всё это определяется не на уровне конкретных записей, а как свойство определяемых таблиц данных и совокупностей таблиц.
Создание таблиц может быть выполнено командой языка ЯМД на основе данных из уже существующих таблиц. Это типичная форма хранения промежуточных данных. Формат это команды имеет следующий вид:
SELECT список_полей INTO новая_таблица FROM источник;
Здесь список_полей – это имена полей исходных таблиц, из которых будет состоять новая таблица; новая_таблица – имя создаваемой таблицы; источник – таблица или подзапрос.
Пример:
Создать таблицу средний балл с данными о средних баллах студентов.
SELECTsnum, avgINTO новая_таблица FROM источник;
средбалл (snum, avg)
SELECT osnum, AVG (ocen) FROM оценка
GROUP BY osnum;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.