Чтобы удалить одну или несколько записей из таблицы, используйте следующий синтаксис оператора DELETE.
delete from имя_схемы.имя_таблицы
[where условие];
DELETE FROM ORDERS_TBL
WHERE ORD_NUM = '23A16';
1 строка удалена.
Здесь следует обратить внимание на выражение с ключевым словом WHERE. При удалении строк из таблицы это выражение представляет собой очень важную часть оператора DELETE. Оператор DELETE без ключевого слова WHERE может понадобиться вам крайне редко. Если вы им воспользуетесь, результат будет подобен следующему:
DELETE FROM ORDERS_TBL; 11 строк удалены.
Если ключевое слово WHERE в операторе DELETE опущено, будут удалены все строки таблицы. Поэтому примите за правило всегда использовать ключевое слово WHERE в операторе DELETE.
Перед тем, как использовать операторы DELETE и UPDATE по отношению к таблицам нашей базы данных, было бы неплохо поучиться использовать эти операторы с той временной таблицей, которую мы с вами создали ранее на основе данных одной из таблиц базы данных.
Вы ознакомились с тремя основными командами языка манипуляций данными (DML) - операторами INSERT, UPDATE и DELETE. Вы смогли убедиться, что это достаточно мощная часть SQL, дающая пользователю базы данных возможность пополнять таблицы новыми данными, обновлять или удалять уже имеющиеся данные.
Очень важные уроки общения с базами данных можно получить, если пренебречь внимательным отношением к ключевому слову WHERE. С помощью ключевого слова WHERE в операторах SQL задаются условия отбора, в частности, в операторах UPDATE и DELETE с его помощью определяются строки данных, которые будут обрабатываться в ходе транзакции. При отсутствии ключевого слова WHERE будут обработаны все строки, что для базы данных может оказаться разрушительным. Защитите свои данные, и будьте внимательны при работе с данными.
После всех вышеприведенных предостережений относительно операторов UPDATE и DELETE я вообще опасаюсь их использовать. Если я вдруг изменю все данные в таблице из-за пропущенного ключевого слова WHERE, есть ли какая-либо возможность отменить эти изменения?
Для таких серьезных опасений оснований нет, поскольку у вас имеется не слишком много возможностей для непоправимых изменений в базе данных, хотя для восстановления данных может потребоваться немалое время. На следующем уроке мы рассмотрим вопросы управления транзакциями, когда операции изменения данных можно либо принять как окончательные, либо отменить.
Является ли использование оператора INSERT единственным способом ввода данных в таблицу?
Нет, просто оператор INSERT определяется стандартом ANSI. Различные реализации SQL предлагают свои средства для ввода данных в таблицы. Например, в Oracle имеется утилита SQL*Loader. Многие реализации SQL для ввода данных имеют утилиту под названием IMPORT. На рынке имеется множество книг, в которых эти утилиты описываются в деталях.
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
1. Используйте таблицу EMPLOYEEJTBL с заданной ниже структурой.
Что случится, если выполнить следующие операторы?
a insert into employee_tbl '('JACKSON', 'STEVE', '313546078', '3178523443');
б insert into employee_tbl values
('JACKSON1, 'STEVE', '313546078', '3178523443');
В insert into employee_tbl values
('MILLER', 'DANIEL', '230980012', NULL);
r insert into employee_tbl values
('TAYLOR', NULL, '445761212', '3179221331');
д. delete from employee_tbl;
e. delete from employee_tbl "where last_name = 'SMITH';
X. delete from employee_tbl where last_name = 'SMITH' and first_name = 'JOHN';
з. update employee_tbl
set last_name = 'CONRAD';
и. update employee_tbl
set last_name = 'CONRAD'
where last_name = 'SMITH';
K. update employee_tbl
set last_name = 'CONRAD', first_name = 'LARRY';
Л. update employee_tbl
set last_name = 'CONRAD' first_name = 'LARRY' where ssn = '313546078';
1. Ознакомьтесь с Приложением Г, "Операторы INSERT для данных в примерах книги". Выполните операторы INSERT для заполнения данными тех таблиц, которые были созданы в результате выполнения задания упражнения 1 урока 3. После этого вам будет легче разбираться в примерах и упражнениях книги.
2. Используйте таблицу EMPLOYEE_TBL с заданной ниже структурой.
Используя операторы DML, выполните следующее.
а. Измените SSN для служащего по имени Billy Pierce на 310239857.
б. Добавьте информацию о служащем по имени Ben Moore, тел. 317-5649880, SSN равен 313456789.
в Служащий по имени John Smith уволился, удалите соответствующую запись.
6-й час Управление транзакциями
На этом уроке мы обсудим понятия, лежащие в основе управления транзакциями базы данных.
Основными на этом уроке будут следующие темы.
• Определение транзакции
• Команды, используемые для управления транзакциями
• Синтаксис команд для осуществления транзакций и примеры
• Когда следует использовать команды управления транзакциями?
• Последствия недостаточно активного управления транзакциями
Транзакция - это набор действий, выполняемых по отношению к базе данных и рассматриваемый как единое целое. Транзакции являются единицами активности или, иначе, последовательностями действий, выполняемыми в своем логическом порядке. Они могут выполняться как вручную, так и в автоматическом режиме с помощью соответствующих программ. В реляционных базах данных, управляемых с помощью SQL, транзакции осуществляются с помощью команд DML (INSERT, UPDATE и DELETE), уже обсуждавшихся в ходе урока 5, "Манипуляция данными". Транзакция представляет собой внесение в базу данных некоторых изменений. Например, вы осуществляете транзакцию, когда для изменения информации об имени персоны выполняете оператор UPDATE по отношению к соответствующей таблице.
Транзакция может представляться одним оператором DML или группой таких операторов. При управлении группами транзакций под успешным завершением выполнения понимается успешное завершение выполнения всех транзакций группы, иначе все они считаются не завершившимися успешно.
Следующий список раскрывает природу транзакций.
• Каждая транзакция имеет начало и конец.
• Любую транзакцию можно либо сохранить, либо отменить.
• Если в любом месте по ходу выполнения транзакции одна из ее операций терпит неудачу, ни одна из составляющих транзакции не может быть сохранена в базе данных.
Способ, каким осуществляется требование начать выполнение транзакции, зависит от конкретной реализации SQL. Соответствующие инструкции вы найдете в документации по своей конкретной реализации. В стандарте ANSI средств для явной активизации начала работы транзакций не предусмотрено.
Под управлением транзакциями понимается наличие возможностей для подконтрольного осуществления транзакций, выполняемых в рамках общей системы управления базой данных. Говоря о транзакциях, мы имеем в виду выполнение команд INSERT, UPDATE и DELETE, рассматривавшихся в ходе предыдущего урока.