Выборка данных с помощью select

Извлечение информации из таблиц - вероятно наиболее часто используемый вид запроса. Например, запросы SELECT позволяют получить ответы на подобные вопросы: "какие города имеют численность населения большую, чем данное число?".

выборка данных с помощью select - student2.ru Фактически, мы уже предварительно использовали SELECT, когда кликали на ссылку Browse для таблицы `cities`. Это сгенерировало простейшую форму выражения запроса SELECT:

выборка данных с помощью select - student2.ru

SELECT * FROM `cities` LIMIT 0,30;

выборка данных с помощью select - student2.ru

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

выборка данных с помощью select - student2.ru

Рис. 4 Страница просмотра запросов

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

выборка данных с помощью select - student2.ru Затем справа от списка столбцов мы выберем порядок сортировки полученной выборки по столбцу `population` по убыванию:

выборка данных с помощью select - student2.ru выборка данных с помощью select - student2.ru

Рис.5 Выборка данных

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

выборка данных с помощью select - student2.ru

SELECT `city_name` , `population`
FROM `cities`
WHERE 1
ORDER BY `population` DESC LIMIT 0,30;

выборка данных с помощью select - student2.ru

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

Условия в SQL-запросах

выборка данных с помощью select - student2.ru

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

выборка данных с помощью select - student2.ru

SELECT `city_name` , `population`
FROM `cities`
WHERE country_code = 'zh'
ORDER BY `population` DESC;

выборка данных с помощью select - student2.ru

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

выборка данных с помощью select - student2.ru

Найти канадские города с численностью населения более 100000:
WHERE population > 100000 AND country_code = 'ca';
Найти города, чьи названия начинаются с символа "A":
WHERE city_name like 'A%'

Функции группировки

выборка данных с помощью select - student2.ru

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

выборка данных с помощью select - student2.ru

SELECT country_code, AVG(population)
FROM cities
GROUP BY country_code

Другие возможные функции группировки - MIN(), MAX(), SUM() и COUNT(), которые вычисляют соответственно минимальное значение, максимальное значение, сумму значений, и число записей. Например, с помощью следующего запроса мы можем получить число городов в стране:

выборка данных с помощью select - student2.ru

SELECT country_code, count(city_name) FROM cities
GROUP BY country_code;

Объединения

выборка данных с помощью select - student2.ru

Обычно, реляционная база данных включает множество таблиц, связанных общими ключами. Часто возникает необходимость в запросах сразу для нескольких таблиц. Связать, или объединить, таблицы можно с помощью различных методов; мы сосредоточимся на самом простом методе, заключающемся в сравнении ключей.

выборка данных с помощью select - student2.ru В нижерассмотренном запросе, условие FROM содержит список названий таблиц, разделенных запятыми. В списке столбцов, мы используем названия таблиц и точку в качестве префикса перед каждым названием столбца (в этом нет необходимости в случае, если все столбцы из одной таблицы).

выборка данных с помощью select - student2.ru

SELECT cities.city_name, cities.population, countries.country_name
FROM cities, countries
WHERE cities.country_code = countries.country_code LIMIT 0,30

Формы в PHP

Наши рекомендации