Язык программирования PHP | страница 101




Пример 10.4. Выбрать из таблицы Persons все данные, для которых поле first_name имеет значение 'Александр':


>mysql> SELECT * FROM Persons

> WHERE first_name='Александр';


Выбрать название и описание (title, description) артефакта под номером 10:


>mysql> SELECT title,description

> FROM Artifacts WHERE id=10;


Оператор INSERT


Оператор INSERT вставляет новые строки в существующую таблицу. Оператор имеет несколько форм. Параметр имя_таблицы во всех этих формах задает таблицу, в которую должны быть внесены строки. Столбцы, для которых задаются значения, указываются в списке имен столбцов (имя_столбца) или в части SET.


Синтаксис:


>INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

> [INTO] имя_таблицы [(имя_столбца,...)]

> VALUES (выражение,...),(...),...


Эта форма команды INSERT вставляет строки в соответствии с точно указанными в команде значениями. В скобках после имени таблицы перечисляются столбцы, а после ключевого слова VALUES – их значения.


Например:


>mysql> INSERT INTO Persons

> (last_name, bday) VALUES

> ('Иванов', '1934');


вставит в таблицу Persons строку, в которой значения фамилии (last_name) и даты рождения (bday) будут заданы соответственно как «Иванов» и «1934».


>INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

> [INTO] имя_таблицы [(имя_столбца,...)]

> SELECT ...


Эта форма команды INSERT вставляет строки, выбранные из другой таблицы или таблиц.


Например:


>mysql> INSERT INTO Artifacts (author)

> SELECT id FROM Persons

> WHERE last_name='Иванов'

> AND bday='1934';


вставит в таблицу Artifacts в поле «автор» (author) значение идентификатора, выбранного из таблицы Persons по условию, что фамилия человека Иванов.


>INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

> [INTO] имя_таблицы

> SET имя_столбца=выражение,

> имя_столбца=выражение, ...


Например:


>mysql> INSERT INTO Persons

> SET last_name='Петров',

> first_name='Иван';


Эта команда вставит в таблицу Persons в поле last_name значение «Петров», а в поле first_name – строку «Иван».


-


Форма INSERT ... VALUES со списком из нескольких значений поддерживается в версии MySQL 3.22.5 и более поздних. Синтаксис выражения имя_столбца=выражение поддерживается в версии MySQL 3.22.10 и более поздних.


Действуют следующие соглашения.


- Если не указан список столбцов для INSERT ... VALUES или INSERT ... SELECT, то величины для всех столбцов должны быть определены в списке VALUES() или в результате работы SELECT. Если порядок столбцов в таблице неизвестен, для его получения можно использовать DESCRIBE имя_таблицы.