От автора: пришло время познакомиться с несколькими основными операторами, с помощью которых вебмастер работает в СУБД. В MySQL удалить строку, добавить данные или стереть их можно с помощью специальных команд. Но просто знать их название — мало. Важно понимать синтаксис, последствия, которые возникают после применения операторов, и прочие моменты, которые составляют операции в MySQL. Сегодня знакомимся с DELETE и INSERT, как основополагающими в создании таблиц.
INSERT для новых строк
Благодаря изобретательности разработчиков эта команда в БД имеет разнообразный синтаксис и позволяет изначально задать жизненно важные параметры. На изображении ниже вы видите все варианты для создания атрибутов, с помощью которых можно оперировать в MySQL.
Теперь пришло время разобраться с тем, какие характеристики задает каждая из команд:
tbl_name. Одни из основополагающих параметров, так как без него вы не сможете определить, в какую из таблиц необходимо внести новую строку. В нем указано имя той, в которой должны произойти изменения. В строке операторов стоит после INTO. Как бы указывает что новую строку необходимо вставить в (INTO) конкретную таблицу (tbl_name);
LOW_PRIORITY. С подобными выражениями вы уже могли быть знакомы, если работали с языками программирования, в принципе. Но для MySQL параметр значит, что вставка не будет произведена до момента, пока остальные скрипты не закончат чтение. Таким образом, сбивается приоритет операции до самого низкого уровня;
DELAYED. При включении этого параметра вставка строки произойдет немедленно после введения команды. Но вот сама информация будет вставлена в БД уже после того, когда другие сценарии закончат работу. Таким образом оптимизируются остальные действия в базе данных. Отложенная вставку возможна лишь на тех табах, которые поддерживают движок ISAM. Кстати, если таблица не взаимодействует с другими запросами, то лучше использовать команду INSERT. А добавление DELAYED — только когда речь идет о высоких нагрузках;
IGNORE. К примеру, вы задали приоритет некоторым таблицам, и теперь новые строки несут в себе такое же значение. При обычной вставке операция оборвется, а с атрибутом игнорирования — продолжится;
INSERT … VALUES. При таком выражении прописываем четкий порядок наименований поля и значений каждого их них. К примеру, нам нужен оператор, который вставит sample строку, где будут полями имя, возраст, страна и город, а значениями — Алиса, 20, Великобритания, Кардифф. Вот так она будет выглядеть:
INSERT INTO `sample` (`name`, `age`, `country`, `city`) VALUES ('Alice', 20, 'Great Britain', 'Cardiff')
Если пропустить одно из полей в команде, то выставляются умолчания, которые были созданы для данной таблицы. То есть, если упускаем что-либо из вышеперечисленных значений — скажем, город — то он будет тем, который уже установлен. Чтобы узнать, какие поля уже существуют, необходимо воспользоваться оператором DESCRIBE и ввести наименование таба DESCRIBE sample
;
INSERT … SET. Эта команда аналогична предыдущей. Только здесь значение присваивается конкретному полю, а не его совокупностям. Существует и еще одно сходство с VALUES. Оно заключается в том, что если какое-то из полей окажется пустым, то значение присудят по умолчанию. Код выглядит так:
INSERT INTO `sample` SET `name` = 'Alice', `age` = 20, `country` = 'GB', `city` = 'Cardiff'
Примечательно то, что в этом случае, как и во многих других, значение может быть выражено через конкретные действия, как в таблица Excel. К примеру:
INSERT INTO `tbl_name` SET `field 22` = `field 2` * `field 2`
Это лишь простой пример. На самом деле, реализации через математическую модель могут быть куда сложнее. Особенно это касается веб-приложений, тесно связанными с картами и геодезией.
Простой и быстрый DELETE
С помощью этого оператора производят удаление записей из таблицы. Несмотря на то, что у него немного параметров, с их помощью производят не менее важные действия, чем при помощи вставки в таб. Вот варианты синтаксиса:
Команда способна удалить все, что указано после атрибута WHERE. Причем, умолчание не будет значить, что записи оставят в покое. Когда команда с пустым значением WHERE придет на сервер, все содержимое таблицы будет удалено.
Все операторы аналогичны тем, которые рассматривались выше, только называются немного по-другому. Однако есть и совпадения: для каждого из операторов можно задать низкий приоритет — LOW PRIORITY. Тогда операция будет ждать до завершения выполнения всех сценариев.