Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Инструкции на изменение данных




Инструкция: DELETE

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

 

Синтаксис:

DELETE

FROM имя таблицы

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

Пример:

Удалить все записи в таблице «Товар», если истек срок годности товара.
DELETE

FROM Товар

WHERE [Дата Годность] < Date();

 

Примечание1: Если условие отбора (WHERE …) не задано, то удаляются все записи из таблицы.

 

Примечание2: Для связанных таблиц удаление записи из master таблицы приведет к каскадному удалению записей из всех дочерних таблиц.

 

Внимание: Удаленные записи не подлежат восстановлению. Поэтому перед удалением можно с помощью конструкции SELECT убедится в правильности отбора данных для удаления.

 

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

       
   

 


Студенты Ведомость Дисциплины

           
 
П_Ключ_С Фамилия Группа
  БАЖАНОВА  
  КОВАЛЕНКО  
  ЛАПИНА  
  СМОЛИК  
  ГОРБУНОВА  

 

 
В_Ключ_С В_Ключ_П Оценка
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

 

 
П_Ключ_П Предмет
  История
  Информатика
  Эконометрика

 

 
 

 


Запрос: Из БД удалить студентов, получивших в сессии две и более неудовлетворительные оценки.

 

 


Инструкция UPDATE

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

 

Синтаксис

UPDATE Таблица
SET поле1 = Значение1, поле2 = Значение2,…
WHERE условие Отбора;

Дополнительные сведения

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

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

 

UPDATE Студенты INNER JOIN Ведомость ON Студенты.Ключ_Студ = Ведомость.Код_студ

SET Балл = Балл+10

WHERE Группа=105;

 

 

UPDATE Ведомость

SET Балл = Балл+10

WHERE В_Ключ_Ст =ANY (SELECT П_Ключ_Ст FROM Студенты WHERE Группа=105)

КодТовара Товар Цена
  Кока-кола  
  Пиво  
  Торт  
  Фанта  
  Шампанское  
  Морс  
  Сапоги  
  Валенки  
  Кефир  

 

Адрес КодТовара ЦенаЗаказа
Париж    
Рим    
Лондон    
Париж    
Париж    
Париж    
Рим    
Лондон    

 

Товары Заказано

Пример: Для Парижа, на Товар – «Валенки», уменьшить цену на 10%

 

 


Инструкция: INSERT INTO

(для добавления одной или нескольких записей)

 

Инструкция INSERT INTO предназначена для добавления одной или нескольких записей в конец таблицы.

 

 

Синтаксис:

 

INSERT INTO ИмяТаблицы (поле1, поле2, … полеN)

VALUES (значение1, значение2,…значениеN)

 

 

Количество перечисленных полей и количество значений должно быть одинаковым и типы данных должны совпадать. Значения текстовых полей заключаются в кавычки.

 

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

 

INSERT INTO ИмяТаблицы

VALUES значение1, значение2, значениеN;

 

Пример:

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

INSERT INTO Студенты (Фамилия, Имя, Отчество, [Год рождения])

 

VALUES (''Смирнов'', ''Игорь'', ''Петрович'', 1985);


Запрос на добавление нескольких записей:

INSERT INTO таблицaНазначения (поле1, поле2, … полеN)

SELECT поле1, поле2,... полеN
FROM выражение

[WHERE…]

Элемент Описание
таблицaНазначения Имя таблицы в который добавляются записи.
   
выражение Имена таблицы или таблиц, откуда вставляются данные. Это выражение может быть именем отдельной таблицы или результатом операции INNER JOIN, LEFT JOIN или RIGHT JOIN, а также сохраненным запросом.  

 

INSERT INTO Студенты (Фамилия, Имя, Отчество, Паспорт)

 

SELECT Фамилия, Имя, Отчество, Паспорт

FROM Абитуриенты

WHERE Решение = ”Зачислить”

 

Дополнительные сведения

Инструкцию INSERT INTO можно также использовать для добавления набора записей из другой таблицы или запроса с помощью предложения SELECT... FROM, как показано выше в запросе на добавление нескольких записей. В этом случае предложение SELECT определяет поля, добавляемые в указанную таблицуНазначение.

Инструкция INSERT INTO является необязательной, если же она присутствует, то должна находиться перед инструкцией SELECT.

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

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

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

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

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


 

Комбинированные запросы

Комбинированные запросы подразумевают объединение нескольких запросов в один. Для такого объединения используется оператор UNION. Этот оператор помещается между запросами.

Рассмотрим уже известную таблицу и применим к ней запрос, объединяющий два запроса.

 

"Студенты"

 

Стандартный запрос с использованием логического оператора OR

 

 
 
Фамилия Год Пол
Воронова   ж
Борисов   м
Антонова   ж
Романова   ж
Винтин   м
Голубева   ж

 

 

 


Получим тот же результат, но при помощи комбинированного запроса.

 

Запрос, обединяющий два запроса с помощью оператора UNION.

 
 
Фамилия Год Пол
Воронова   ж
Борисов   м
Антонова   ж
Романова   ж
Винтин   м
Голубева   ж

 

 


 

 

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

 

 

Примечание:

Обратите внимание на последнюю строку, полученную по результатам запроса.

 

 

Эта строка будет найдена обоими запросами: один найдет ее по году (1987), второй по полу (ж). Но в таблице, полученной по результатам запроса запись одна. Это свойство оператора UNION, он удаляет повторяющиеся записи.

Для того, что бы исключить удаление повторяющихся записей, вместо оператора UNION, следует написать оператор UNION ALL

 

 
 
Фамилия Год Пол
Воронова   ж
Борисов   м
Голубева   ж
Романова   ж
Винтин   м
Антонова   ж
Голубева   ж

 

 


 

 

Внимание:

Для комбинированных запросов необходимо, что бы каждый запрос содержал одни и те же столбцы которые должны быть перечислены в одном и том же порядке (Фамилия, Год, Пол).

 

 

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...