ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Методичка
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 4816
Скачиваний: 8
41
Нажатие пиктограммы «Индексы» в конструкторе таблиц открывает
одноименное окно с перечнем индексов для данной таблицы, где отобра-
жается созданный в результате выполнения запроса уникальный индекс
New_index.
Создание запроса на удаление таблицы/индекса
Инструкция DROP удаляет существующую таблицу из базы данных
или удаляет существующий индекс из таблицы. Синтаксис:
DROP {TABLE таблица | INDEX индекс ON таблица}
где таблица — имя таблицы, которую следует удалить или из которой
следует удалить индекс;
индекс — имя индекса, удаляемого из таблицы.
Прежде чем удалить таблицу или удалить из нее индекс, необходимо
ее закрыть. Следует отметить, что таблица и индекс удаляются из базы
данных безвозвратно.
В следующем примере удалим созданный в предыдущем примере
индекс «New_index»:
DROP INDEX New_index ON Студент;
Создание запроса на добавление записей
Инструкция INSERT INTO добавляет запись или несколько записей
в заданную таблицу.
Синтаксис команды:
а) запрос на добавление нескольких записей:
INSERT INTO назначение [(поле_1[, поле_2[, ...]])]
SELECT [источник.]поле_1[, поле_2[, ...]
FROM выражение
42
б) запрос на добавление одной записи:
INSERT INTO назначение [(поле_1[, поле_2[, ...]])]
VALUES (значение_1[, значение_2[, ...])
где назначение — имя таблицы или запроса, в который добавляются за-
писи;
источник — имя таблицы или запроса, откуда копируются записи;
поле_1, поле_2 — имена полей для добавления данных, если они
следуют за аргументом «Назначение»; имена полей, из которых берутся
данные, если они следуют за аргументом источник;
выражение — имена таблицы или таблиц, откуда вставляются дан-
ные. Это выражение может быть именем отдельной таблицы или результа-
том операции INNER JOIN, LEFT JOIN или RIGHT JOIN, а также сохра-
ненным запросом;
значение_1, значение_2 — значения, добавляемые в указанные поля
новой записи. Каждое значение будет вставлено в поле, занимающее то же
положение в списке: значение_1 вставляется в поле_1 в новой записи, зна-
чение_2 — в поле_2 и т. д. Каждое значение текстового поля следует за-
ключать в кавычки (' '), для разделения значений используются запятые.
Инструкцию INSERT INTO можно использовать для добавления од-
ной записи в таблицу с помощью запроса на добавление одной записи,
описанного выше. В этом случае инструкция должна содержать имя и зна-
чение каждого поля записи. Нужно определить все поля записи, в которые
будет помещено значение, и значения для этих полей. Если поля не опре-
делены, в недостающие столбцы будет вставлено значение по умолчанию
или значение Null. Записи добавляются в конец таблицы.
Инструкцию INSERT INTO можно также использовать для добавле-
ния набора записей из другой таблицы или запроса с помощью предложе-
ния SELECT ... FROM, как показано выше в запросе на добавление
43
нескольких записей. В этом случае предложение SELECT определяет поля,
добавляемые в указанную таблицу «Назначение». Инструкция INSERT
INTO является необязательной, однако, если она присутствует, то должна
находиться перед инструкцией SELECT.
Запрос на добавление записей копирует записи из одной или не-
скольких таблиц в другую таблицу. Таблицы, которые содержат добавляе-
мые записи, не изменяются.
Вместо добавления существующих записей из другой таблицы мож-
но указать значения полей одной новой записи с помощью предложения
VALUES. Если список полей опущен, предложение VALUES должно со-
держать значение для каждого поля таблицы; в противном случае инст-
рукция INSERT не будет выполнена. Можно использовать дополнитель-
ную инструкцию INSERT INTO с предложением VALUES для каждой до-
бавляемой новой записи.
В следующем примере добавим новую запись в таблицу «Студент»:
INSERT INTO Студент (Номер_зачетной_книжки, ФИО_студента,
Место_рождения, Дата_рождения)
VALUES (201454321, 'Иванов
Иван Петрович', 'г. Томск',
'12.02.1996');
Заметим, что поскольку поле «Код_студента» имеет тип данных
«Счетчик» и формируется автоматически, то в перечне новых значений
для полей мы его опускаем. На рисунке 14 представлена таблица «Сту-
дент» с новой записью.
Рис. 14 — Результат добавления записи в таблицу «Студент»
44
Аналогично можно добавить данные в таблицу «Задолженность_за
обучение».
Создание запроса на обновление данных
Инструкция UPDATE создает запрос на обновление, который изменяет
значения полей указанной таблицы на основе заданного условия отбора.
Синтаксис команды:
UPDATE таблица
SET новое Значение
WHERE условие Отбора;
где таблица — имя таблицы, данные в которой следует изменить;
новое Значение — выражение, определяющее значение, которое
должно быть вставлено в указанное поле обновленных записей;
условие Отбора — выражение, отбирающее записи, которые должны
быть изменены.
При выполнении этой инструкции будут изменены только записи,
удовлетворяющие указанному условию. Инструкцию UPDATE особенно
удобно использовать для изменения сразу нескольких записей или в том
случае, если записи, подлежащие изменению, находятся в разных таблицах.
Одновременно можно изменить значения нескольких полей. Следующая
инструкция SQL увеличивает сумму задолженности всех студентов, по ко-
торым есть сведения в таблице «Задолженность за обучение» на 10 %:
UPDATE Задолженность_за_обучение
SET Сумма_задолженности = Сумма_задолженности * 1.1;
Создание запроса на выборку записей
Инструкция SELECT. При выполнении инструкции SELECT СУБД
находит указанную таблицу или таблицы, извлекает заданные столбцы,
45
выделяет строки, соответствующие условию отбора, и сортирует или груп-
пирует результирующие строки в указанном порядке в виде набора записей.
Синтаксис команды:
SELECT [предикат] { * | таблица.* | [таблица.]поле_1
[AS псевдоним_2] [, [таблица.]поле_2[AS псевдоним_2] [, ...]]}
FROM выражение [, ...]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
где предикат — один из следующих предикатов отбора: ALL, DISTINCT,
DISTINCTROW, TOP. Данные ключевые слова используются для ограни-
чения числа возвращаемых записей. Если они отсутствуют, по умолчанию
используется предикат ALL;
* указывает, что результирующий набор записей будет содержать все
поля заданной таблицы или таблиц. Следующая инструкция отбирает все
поля из таблицы «Студенты»: SELECT * FROM Студенты;
таблица — имя таблицы, из которой выбираются записи;
поле_1, поле_2 — имена полей, из которых должны быть отобраны
данные;
псевдоним_1, псевдоним_2 — ассоциации, которые станут заголов-
ками столбцов вместо исходных названий полей в таблице;
выражение — имена одной или нескольких таблиц, которые содер-
жат необходимые для отбора записи;
предложение GROUP BY в SQL-предложении объединяет записи
с одинаковыми значениями в указанном списке полей в одну запись. Если
инструкция SELECT содержит статистическую функцию SQL, например
Sum или Count, то для каждой записи будет вычислено итоговое значение;