Инструкция SELECT Оглавление Агрегирующие функции

INSERT, UPDATE и DELETE

Вы научились получать информацию из базы данных, теперь мы переходим к вставке, редактированию и удалению данных. Эти операции производятся тремя инструкциями INSERT, UPDATE и DELETE соответственно. Рассмотрим их по порядку. Для проведения экспериментов нам понадобятся копии таблиц gb и message. Перейдите в раздел "Таблицы", щелкните мышкой на таблице gb, в меню "Правка" выберите пункт "Копировать", а затем "Вставить". Сохраните таблицу вместе с данными под именем gb2. То же самое проделайте с таблицей message. Инструкция INSERT имеет следующий синтаксис:
  INSERT int имя_таблицы [ имя_столбца1 [, имя_столбца2] ...]
  VALUES ( значение1 [, значение2] ...)
  
Для регистрации новой гостевой книги и вставки записи в таблицу gb мы будем использовать следующий запрос: INSERT INTO gb2 (name, http, email, quantity, description, it_date) VALUES('Vasya Pupkin', 'pupkin.ru', 'pupkin@pupkin.ru', 7, 'Гостевая книга для сайта Васи Пупкина', NOW()). Этот запрос вставляет в таблицу gb2 новую запись. Обратите внимание, как вставляется дата. В базе данных есть ряд функций, которые можно использовать в SQL-запросах. Функция NOW(), как вы догадались, возвращает текущее время. Список функций зависит от конкретной СУБД, наиболее распространенные будут рассмотрены в этой книге. Инструкция UPDATE - редактирование группы записей - имеет следующий синтаксис:
UPDATE имя_таблицы 
SET имя_столбца1=значение1, имя_столбца2=значение2, ... 
WHERE условие
Например, мы хотим изменить адрес электронной почты и количество записей, выводимых на одной странице для гостевой книги Васи Пупкина. Это можно сделать командой UPDATE gb2 SET email='vasya@itsoft.ru', quantity=9 WHERE gb_id=25 или UPDATE gb2 SET email='vasya@itsoft.ru', quantity=9 WHERE name='Vasya Pupkin'. Первый SQL-запрос более правильный, он изменит значения ячеек записи с идентификатором 25. Второй запрос изменит все записи, у которых в поле name стоит Vasya Pupkin. Будьте осторожны, не забывайте писать условия, иначе будут модифицированы все записи. И наконец, последняя инструкция DELETE - удаление группы записей, ее синтаксис:
DELETE FROM имя_таблицы WHERE условие
Для того чтобы удалить гостевую книгу Васи Пупкина, дайте команду DELETE FROM gb2 WHERE gb_id=25. Если вы забудете указать условие, то будут удалены все записи. Дайте команду DELETE FROM gb2, и все записи будут удалены. Выполните эту команду. А теперь восстановим данные при помощи инструкции INSERT. Дело в том, что инструкцию INSERT можно использовать совместно с инструкцией SELECT: INSERT INTO gb2 SELECT * FROM gb. Выполните эту команду, и все записи будут восстановлены.

Упражнения

Напишите SQL-запросы:
  1. Добавления своей гостевой книги.
  2. Изменения количества выводимых сообщений на страницу с 10 штук на 9.
  3. Удаления записей с пустыми полями name или email или description.
  4. Добавления сообщения в свою гостевую книгу, т.е. вставки записи в таблицу message2.
  5. Редактирования сообщения из своей гостевой книги.
  6. Удаления сообщения из своей гостевой книги.
  7. Удаления гостевой своей гостевой книги.