Файл: Базы данных МУ КР ЛР.pdf

Добавлен: 28.11.2018

Просмотров: 4816

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

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 выражение 

 


background image

 

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, как  показано  выше  в  запросе  на  добавление             


background image

 

43 

нескольких записей. В этом случае предложение SELECT определяет поля, 

добавляемые  в  указанную  таблицу  «Назначение».  Инструкция INSERT 

INTO  является  необязательной,  однако,  если  она  присутствует,  то  должна 

находиться перед инструкцией SELECT. 

Запрос  на  добавление  записей  копирует  записи  из  одной  или  не-

скольких таблиц в другую таблицу. Таблицы, которые содержат добавляе-

мые записи, не изменяются. 

Вместо добавления существующих записей из другой таблицы мож-

но  указать  значения  полей  одной  новой  записи  с  помощью  предложения 

VALUES.  Если  список  полей  опущен,  предложение VALUES должно  со-

держать  значение  для  каждого  поля  таблицы;  в  противном  случае  инст-

рукция INSERT не  будет  выполнена.  Можно  использовать  дополнитель-

ную инструкцию INSERT INTO с предложением VALUES для каждой до-

бавляемой новой записи. 

В следующем примере добавим новую запись в таблицу «Студент»: 

INSERT INTO Студент  (Номер_зачетной_книжки,  ФИО_студента, 

Место_рождения, Дата_рождения) 

VALUES (201454321, 'Иванов 

Иван  Петрович', 'г.  Томск', 

'12.02.1996'); 

Заметим,  что  поскольку  поле  «Код_студента»  имеет  тип  данных 

«Счетчик»  и  формируется  автоматически,  то  в  перечне  новых  значений 

для  полей  мы  его  опускаем.  На  рисунке 14 представлена  таблица  «Сту-

дент» с новой записью. 

 

 

Рис. 14 — Результат добавления записи в таблицу «Студент» 

 


background image

 

44 

Аналогично  можно  добавить  данные  в  таблицу  «Задолженность_за 

обучение». 

 

Создание запроса на обновление данных 

Инструкция UPDATE создает запрос на обновление, который изменяет 

значения полей указанной таблицы на основе заданного условия отбора.  

Синтаксис команды: 

UPDATE таблица 

SET новое Значение 

WHERE условие Отбора; 

где    таблица — имя таблицы, данные в которой следует изменить;  

новое  Значение — выражение,  определяющее  значение,  которое 

должно быть вставлено в указанное поле обновленных записей; 

условие Отбора — выражение, отбирающее записи, которые должны 

быть изменены.  

При  выполнении  этой  инструкции  будут  изменены  только  записи, 

удовлетворяющие  указанному  условию.  Инструкцию UPDATE особенно 

удобно  использовать  для  изменения  сразу  нескольких  записей  или  в  том 

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

Одновременно  можно  изменить  значения  нескольких  полей.  Следующая 

инструкция SQL увеличивает сумму задолженности всех студентов, по ко-

торым есть сведения в таблице «Задолженность за обучение» на 10 %: 

UPDATE Задолженность_за_обучение 

SET Сумма_задолженности = Сумма_задолженности * 1.1; 

 

Создание запроса на выборку записей 

Инструкция  SELECT.  При  выполнении  инструкции SELECT СУБД 

находит  указанную  таблицу  или  таблицы,  извлекает  заданные  столбцы,           


background image

 

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, то для каждой записи будет вычислено итоговое значение;