ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Спонсор статьи: Org gardenpark gardenpark.com.ua.

Все о MySQL. Обработка данных


28-12-2009

После создания баз данных и таблиц, следующим шагом является их использование для хранения данных. Для добавления, модификации, удаления и выборки определенных записей из таблиц используется язык манипулирования данными (ЯМД) SQL. Так как команды ЯМД используются гораздо чаще команд языка определения данных (ЯОД), речь о которых шла в предыдущей главе, они значительно повышают эффективность работы реляционной СУБД MySQL.
Эта глава содержит детальное описание ЯМД, в ней обсуждается процесс добавления новых записей, модификации или удаления уже существующих записей, выполнения запросов по выборке записей, удовлетворяющих определенному критерию, импорту данных из других источников данных и их экспорту в определенном формате.

Вставка, модификация и удаление записей
СУБД MySQL имеет в своем арсенале множество предназначенных для выполнения определенных действий команд, когда необходима вставка, модификация или изменение каким-либо другим способом содержимого таблиц. В этом разделе представлено обсуждение самых различных команд с соответствующими примерами для демонстрации их работы.
Вставка записей
Следующим шагом после создания таблиц является заполнение их данными. Для этих целей предназначена команда INSERT, имеющая следующий формат:
INSERT INTO имя-таблицы (имя-поля, имя-поля, ...) VALUES (значение, значение, ...)
Проиллюстрируем ее работу на примере создания простой таблицы. Листинг 9.1.
mysql> CREATE TABLE addressbook (fname VARCHAR(255) NULL,
lname VARCHAR(255) NULL, phone VARCHAR(255) NULL,
Обработка данных
Существует еще и сокращенная форма оператора INSERT, в которой список полей от­сутствует. Она показана в следующем примере, во всем аналогичном предыдущему.
Листинг 9.4.
mysql> INSERT INTO addressbook VALUES ('Rob', 'Rabbit', '674 1536', '382 8364', 'rob@some.domain');
Query OK, 1 row affected (0.01 sec)
Следует заметить, что при использовании краткого формата порядок следования добавляемых значений должен соответствовать порядку следования полей в таблице (а определить этот порядок можно с помощью команды DESCRIBE).
Указание имен полей
Несмотря на то, что краткий вариант использования оператора INSERT определенно более популярен, указание имен явным образом предпочтительнее. Это позволяет создаваемому приложению стать более устойчивым относительно изменений структуры таблиц.
С помощью команды INSERT добавляются результаты вычислений или вызовы функций, как это показано в следующих примерах. 
Листинг 9.5.
mysql> INSERT INTO marks (name, math, sci, total)
VALUES ('James Doe', 45, 67, math + sci);
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO users (id, name, password)
VALUES (LAST_INSERT_ID() + 1, 'tam', 'secret');
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO sales (id, cost, quantity, amount) VALUES (8587, 100, 4500, cost * quantity);
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO log (process, message, timestamp)
VALUES ('crond', 'Unable to send mail in /usr/local/bin/backup.sh',
NOW());
Query OK, 1 row affected (0.01 sec)
При добавлении строковых значений (и некоторых дат) в таблицы, их необходимо выделять кавычками, в противном случае MySQL будет рассматривать их в качестве имен полей.
Листинг 9.6.
mysql> INSERT INTO addressbook (fname, lname, phone, fax, email) VALUES ('Rob', Rabbit, '674 1536', '382 8364', 'rob@some.domain'); ERROR 1054: Unknown column 'Rabbit' in 'field list'
Значения, которые сами содержат кавычки, должны выделяться предшествующим символом обратной косой черты "".
Листинг 9.7.
mysql> INSERT INTO addressbook (fname, lname, phone, fax, email) VALUES ('Frances', 'D'Souza', '123 4567', '000 7574',
'fdz@same.domain');
Query OK, 1 row affected (0.11 sec)
Цифровые значения кавычками не выделяются.
Листинг 9.8.
mysql> INSERT INTO stock (cost, quantity) VALUES (760.52, 65000);
Query OK, 1 row affected (0.01 sec)
Необязательность ключевого слова into
В MySQL ключевое слово INTO в операторе INSERT не является обязательным.
MySQL также поддерживает следующие два нестандартных варианта использования оператора INSERT.
■ Возможно использование нескольких предложений VALUES() в одном операторе INSERT. Например, вместо использования нескольких операторов INSERT, получаем следующее:
mysql> INSERT INTO stocks (symbol, price, quantity) VALUES ("ABCD", 100, 4500); 
Query ОК, 1 row affected (0.05 sec)
mysql> INSERT INTO stocks (symbol, price, quantity) VALUES ('HYDH', 2000, 29);
Query ОК, 1 row affected (0.00 sec)
mysql> INSERT INTO stocks (symbol, price, quantity)
VALUES ('UGTS', 25, 67);
Query ОК, 1 row affected (0.05 sec) Также можно сделать следующее:
mysql> INSERT INTO stocks (symbol, price, quantity)
VALUES ('ABCD', 100, 4500),
('HYDH', 2000, 29), ('UGTS', 25, 67);
Query ОК, 3 rows affected (0.06 sec) Records: 3 Duplicates: 0 Warnings: 0
■ Вполне возможно вообще отказаться от конструкции INSERT...VALUES в пользу синтаксиса, используемого в операторе UPDATE. Это подразумевает использование предложения SET для указания значений для каждого столбца отдельно. Таким образом, вместо
mysql> INSERT INTO stocks (symbol, price, quantity)
VALUES ('UGTS', 25, 67);
Query ОК, 1 row affected (0.00 sec) получаем следующее:
mysql> INSERT INTO stocks SET symbol='HYDH', price=2000, quan-tity=29;
Query ОК, 1 row affected (0.06 sec)

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Получение информации о базах данных, таблицах и индексах Все о MySQL. Работа с полями, объявленными с модификатором default