Изменение табличных данных с помощью базового синтаксиса выражений INSERT, UPDATE, DELETE, и SELECT

Добавление данных с помощью INSERT.Рассмотрим выражение INSERT, на примере SQL-кода, который генерирует phpMyAdmin при выполнении операции INSERT.

INSERT INTO `countries`

(`country_code` , `country_name`)

VALUES ('ca', 'Canada');

После части INSERT INTO, следует имя таблицы. В MySQL, можно заключать имена таблиц и имена столбцов в обратные кавычки "`", если в именах используются спецсимволы, зарезервированные слова. После первой скобки перечисляем столбцы, в которые будет осуществлена вставка, разделяя их друг от друга запятыми. После перечисления списка названий столбцов скобка закрывается и указывается зарезервированное слово VALUES, после которого в скобках перечисляются значения, которые нужно вставить в таблицу, причем перечисляются в том же порядке, что и названия столбцов.

Если значения имеют символьный тип данных, необходимо заключать их в кавычки.

Занесем в таблицу `cities` данные города:

INSERT INTO `cities`

(`id` , `city_name` , `latitude` , `longitude` ,

`population`, `country_code`)

VALUES ('', 'Sherbrooke', '45 23 59.00',

'-71 46 11.00', 125000, 'ca'

);

Здесь, указываем пустое значение для id, потому что атрибут автоинкремента данного столбца обеспечивает автоматическое выставление уникального значения. Также обратите внимание, что значение `population` - числовое, поэтому не заключено в кавычки.

Вставим некоторые данные для других стран и городов.

INSERT INTO `countries`

(`country_code` , `country_name`)

VALUES ('zh', 'China');

INSERT INTO `cities`

(`id` , `city_name` , `latitude` , `longitude` ,

`population` , `country_code`)

VALUES ('', 'Shanghai', '31 13 58.00', '121 26 59.99',

11000000, 'zh'

);

Обновление данных с помощью UPDATE. Изменим значение столбца `population` на 130000.

UPDATE `cities` SET `population` = '130000'

WHERE `id` = '1' LIMIT 1 ;

Ключевое слово в данном выражении – `UPDATE`, за которым следует название таблицы. Слово `SET` предваряет список модификаций (в нашем случае – только для столбца `population`) который записывается в формате "столбец = новое значение".

Условие WHERE `id` = '1', в котором используется первичный ключ, ограничивает изменение значения столбца `population` только данной строкой, т.е. только для данного города.

Часть LIMIT 1 добавляется системой phpMyAdmin и является гарантией, что если первичный ключ не задан, изменения не будут применены более чем к одной записи. За один запрос `UPDATE` могут быть изменены значения сразу нескольких столбцов:

 

UPDATE `cities` SET `city_name` = 'Sherbrooke, Quebec',

`population` = '130001'

WHERE `id` = '1' LIMIT 1 ;

Удаление данных с помощью DELETE.SQL- запрос, запрашивающий удаление:

DELETE FROM `cities` WHERE `id` = '1' LIMIT 1 ;

Синтаксис здесь очень прост, и включает только название таблицы, и условие при котором будет выполнена операция удаления. Исключение условия WHERE из запросов UPDATE или DELETE вполне допустимо в SQL, но в таком случае действие выражения будет применено к каждой записи таблицы!

Выборка данных с помощью SELECT.Извлечение информации из таблиц – наиболее часто используемый вид запроса. Например, запросы SELECT позволяют получить ответы на подобные вопросы: "какие города имеют численность населения большую, чем данное число?". В phpMyAdmin SQL-запрос SELECT генерируется каждый раз, если нажимать на вкладку «Browse» для таблицы `cities`.

SELECT * FROM `cities` LIMIT 0,30;

Звездочка здесь означает "все столбцы". После ключевого слова FROM указывается имя таблицы, в которой будет выполнен запрос на выборку. LIMIT 0,30 означает, что выборка начинается с записи номер 0 (самой первой), и содержит максимум 30 записей.

Вкладка «Search» позволяет увидеть большее количество опций для запроса SELECT. Во вкладке «Search» для таблицы `cities` выберем только те столбцы, которые нужны. Затем справа от списка столбцов выберем порядок сортировки полученной выборки по столбцу `population` по убыванию:

 


 

В результате phpMyAdmin сгенерирует следующий запрос:

SELECT `city_name` , `population`

FROM `cities`

WHERE 1

ORDER BY `population` DESC

LIMIT 0,30;

Здесь звездочка заменена списком столбцов, разделенных запятыми. Условие WHERE 1, добавленное системой phpMyAdmin, всегда истинно и выбирает все записи. Позже рассмотрим, что это условие можно заменить другим условием. После условия ORDER BY следует название столбца, по которому будет сортироваться результат выборки, и ключевое слово DESC для сортировки по убыванию (ASC используется для сортировки по возрастанию).

Условия в SQL-запросах. Самым простым способом добавить условие в системе phpMyAdmin – переход по SQL-query на вкладку «Edit» на странице результатов, в результате которого будет открыто всплывающее окно "Query". Добавим условие для столбца `country`:

SELECT `city_name` , `population`

FROM `cities`

WHERE country_code = 'zh'

ORDER BY `population` DESC;

Это условие выберет все города, находящиеся в Китае. При обозначении условий может быть использовано богатое множество операторов и функций. Рассмотрим два примера:

Найти канадские города с численностью населения более 100000:

WHERE population > 100000 AND country_code = 'ca';

Найти города, чьи названия начинаются с символа "A":

WHERE city_name like 'A%';

Функции группировки. Итоговая информация может быть сгенерирована в результате группировки по определенному столбцу. Выведем среднюю численность городского населения в стране: