Контрольные вопросы и задания для самостоятельного выполнения
1. Сколько строк обновит команда UPDATE AUTO SET MARK = «BMW» WHERE 1=0?
2. Добавить 1 к возрасту людей (MAN) c именем Андрей.
3. Добавить 2 к возрасту людей (MAN), чей возраст больше 19 лет.
4. К имени людей (MAN), чей телефон содержит 915, добавить префикс 915.
5. У всех у людей (MAN) с телефоном, чей возраст больше 22 лет, поменять имя на Роман.
Шаг 17. Удаление данных — DELETE
Иногда некоторые данные нам необходимо удалять из таблиц. Для этого в языке SQL есть специальная команда — DELETE.
Команда DELETE.
Здесь Имя таблицы — имя таблицы, из которой мы удаляем строки, WHERE — условие для отбора строк, которые мы удаляем.
Примеры
Удалить записи из таблицы CITY1 с кодами городов CITYCODE 7, 9.
Удалить из таблицы AUTO1 все автомобили BMW (MARK).
Удалить из таблицы AUTO1 все автомобили с датой выпуска больше 01.01.2017.
Завершите выполнение командой COMMIT для фиксации изменений.
Данная команда может удалить записи только в одной заданной таблице.
Команда DELETE также должна завершаться инструкцией COMMIT для фиксации изменений в базе.
Следует помнить, что язык SQL в ORACLE поддерживает механизм транзакций, поэтому модификации данных, в том числе и операции удаления, чаще всего необходимо завершать командой СOMMITили ROLLBACK.
COMMIT — для фиксации изменений;
ROLLBACK — для отката изменений.
Команда DELETE без инструкции WHERE очищает все строки в таблице, поэтому при использовании команды DELETE надо соблюдать предельную осторожность.
Чем отличается команда DELETE от команды DROP?
Это совершенно разные команды. Я предлагаю повторить материал на эту тему и ответить на данный вопрос самостоятельно.
Как еще можно очистить таблицу?
Для этого есть специальный оператор TRUNCATE TABLE TABLENAME. При его выполнении происходит быстрая очистка всех записей таблицы. Мы еще будем изучать эту тему в следующих шагах.
Я пытаюсь удалить записи из некоторой таблицы, но возникает ошибка.
Вероятно, есть связанные записи в другой таблице по внешнему ключу. Сначала необходимо удалить записи в связанной таблице.
Контрольные вопросы и задания для самостоятельного выполнения
1. Чем команда DELETE TABLE_NAME отличается от команды DROP TABLE TABLE_NAME?
2. Напишите команду для удаления из таблицы AUTO таких записей, где дата выпуска авто больше 2018 года.
3. Повторите материалы данного шага.
В языке SQL есть такая синтаксическая конструкция, как псевдонимы.
С помощью псевдонимов мы можем большим или сложным наименованиям таблиц или колонок таблиц в запросе SQL присвоить более короткие, удобные и понятные нам псевдонимы (ALIAS).
Псевдонимы для колонок, выводимых в запросе, задаются с помощью инструкции AS, псевдонимы же для таблиц указываются сразу же после имени таблицы.
Примеры
Вывести из таблицы MAN колонки «имя», «фамилия» и «возраст».
Для таблицы задать псевдоним m для колонки имени (FIRSTNAME), для колонки фамилии (LASTNAME) — Fml.
Рисунок 31. Демонстрация работы псевдонимов: запрос
Вывести из таблицы AUTO марку и цвет автомобиля.
• Для таблицы AUTO задать псевдоним AV;
• для колонки «марка» задать псевдоним Mr;
• для колонки «цвет» задать псевдоним CV.
Вывести только автомобили с годом выпуска больше 01.01.2001.
Рисунок 32. Запрос к AUTO: псевдонимы
Обратите внимание, как формируется условие для при обращении к колонке типа DATE.
Псевдонимы не могут повторяться в рамках одного запроса и подзапроса, то есть их имена должны быть уникальными.
Если мы задали псевдоним для таблицы, из которой SQL-запрос выбирает данные, то и в условии WHERE мы также должны использовать заданный псевдоним.
Если мы используем псевдоним для таблицы и псевдонимы для колонок, должны ли мы обращаться к колонкам в инструкции WHERE по псевдонимам колонок?
Как ни странно, так делать нельзя. Вы должны указать именно настоящее имя колонки в этом случае.
Можно ли нескольким выводимым колонкам запроса SQL задать псевдоним, а другим не задавать?
Читать дальше
Конец ознакомительного отрывка
Купить книгу