«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отраслям) Токарев Виктор
В SQL имеется три оператора, относящиеся к группе операторов DML (Data Manipulation Language), которые предназначены для выполнения запросов на добавление, удаление и обновление данных.
Новые данные добавляются оператором INSERT. Наименьшей единицей информации, которую можно добавить в реляционную базу данных, является одна строка таблицы.
Немного упрощенный синтаксис оператора INSERT имеет вид: INSERT INTO Имя_Таблицы [(Колонка [, Колонка …])] {VALUES( [, …]) | }; = {:Переменная | | | | udf([ [,...]]) | NULL | USER} = Число | 'Строка' = CAST( AS ) | UPPER( ) | GEN_ID(Имя_Генератора, ) = SQL выражение, возвращающее единичное значение
Чтобы вставить одну строку данных, в SQL запросе должно присутствовать предложение VALUES, содержащее определенный список значений. Чтобы вставить несколько строк данных, определите оператор SELECT, который возвращает несколько строк, со столбцами в том же порядке и того же типа, что и в списке, заданном в конструкции INTO. Пример, когда в качестве вставляемых величин применены константы: INSERT INTO Person(Pr_ID, Pr_LastName, Pr_FirstName) VALUES(150, 'Иванов', 'Петр'); Пример использования для вставки значений переменных: DECLARE Person_Number INTEGER; -- объявление DECLARE LastName VARCHAR(30); -- локальных DECLARE FirstName VARCHAR(30); -- переменных BEGIN Person_Number = 150; LastName = 'Иванов'; FirstName = 'Петр'; INSERT INTO Person(Pr_ID, Pr_LastName, Pr_FirstName) VALUES(:Person_Number, :LastName, :FirstName); END;
Для удаления строк из таблицы используется оператор DELETE. Вот его упрощенный синтаксис: DELETE FROM Имя_Таблицы [WHERE ]; = как в операторе SELECT Если не использовать предложение WHERE, то будут удалены все строки в таблице. -- Удаление всех служащих: DELETE FROM Employee; -- Удаление всех людей с номерами 150 и больше: DELETE FROM Person WHERE Pr_ID >= 150;
Оператор UPDATE обновляет значения одного или нескольких столбцов в выбранных строках одной таблицы. Строки для обновления указываются в предложении WHERE. Если пропустить предложение WHERE, то изменятся все строки таблицы.
UPDATE Имя_Таблицы SET Колонка = [, Колонка =...] [WHERE ] = { Колонка | :Переменная | | | | udf([ [,...]]) | NULL | USER} = SQL выражение, возвращающее единичное значение = как в операторе SELECT Примеры: -- Увеличить зарплату всем служащим на 10%: UPDATE Employee SET Salary = 1.1*Salary; /* Увеличить зарплату всем служащим, которые имеют зарплату меньше на 15%: */ UPDATE Employee SET Salary = 1.15*Salary; WHERE Salary <= 10000;
Отбирать строки для изменения, как и для удаления, можно с использование подчиненного запроса SELECT, который позволит учитывать в условии поиска изменяемых строк данные из других таблиц. Например, можно выполнить такой запрос: увеличить зарплату на 10% всем служащим, работающим в отделе продаж, которые обслужили за последний месяц клиентов больше чем в полтора раза, чем в среднем по их отделу.
Спасибо за внимание !