ДОСТИГНУТО:

01.11.2016-300 страниц в индексе Google;
19.01.2017-300 страниц в индексе Яндекса;
03.02.2017-40 ТИЦ;
05.02.2017- сайт принят в DMOZ каталог;

MySQL запросы для начинающих — часть вторая

.

mayskuMySQL запросы для начинающих — часть вторая

Всем привет!
Продолжаем изучать MySQL-запросы. Это вторая часть серии статей для начинающих по запросам MySQL. Здесь будут представлены примеры использования команд, функций и выражений, таких как IN, NOT IN, AS, COUNT, CONCAT, GROUP BY и HAVING.

WHERE — применение IN и NOT IN

Использование IN — выбираем клиентов из таблицы clients, у которых возраст равен 30, 40 или 50 лет (например, если вы хотите проверить, у кого из них юбилей):

SELECT * FROM clients WHERE age IN (30,40,50)
Использование NOT IN — например выбираем всех клиентов из таблицы clients, НЕ проживающих в России, Беларуси, Украине:

SELECT * FROM clients WHERE country NOT IN («Россия», «Беларусь», «Украина»)
Можно использовать еще и вложенные запросы — здесь показан пример, когда нужно выбрать всех клиентов из таблицы clients, проживающих в странах, входящих в СНГ:

SELECT * FROM clients WHERE country IN (SELECT country FROM regions WHERE name = «СНГ»)
Заметьте, что во вложенном запросе используется уже другая таблица базы данных — regions.

Для условий IN и NOT IN должны использоваться только значения столбцов таблиц (или просто какие-то конкретные значения), но никак не имена столбцов!

CONCAT — склеивание (конкатенация) значений в одну строку

Функция CONCAT нередко применяется в команде SELECT, и с ее помощью можно получить одну строку из нескольких значений, либо из обычных текстовых строк, либо полученных из значений столбцов, либо комбинируя оба варианта. Вот несколько MySQL-запросов для примера:

SELECT id, CONCAT (name, ' из ', city) AS NAME, country FROM clients;
этот запрос нам вернет примерно такие строки:

*----------------------------------*
| id | name | country |
*----------------------------------*
| 123 | Иванов из Москвы | Россия |
| 124 | Петров из Самары | Россия |
*----------------------------------*
SELECT CONCAT ('Сотрудник', ' ', 'Петров', ' ', 'вернулся из', ' ', 'командировки');
этот MySQL-запрос вернет нам такую строку:

Сотрудник Петров вернулся из командировки
Однако при использовании функции CONCAT следует помнить, что если в ее параметрах попадет хотя бы одно значение NULL, то функция вернет только NULL (то есть ничего), причем независимо от того, каким по порядку был параметр, равный значению NULL. Следующий запрос вернет значение NULL, а не строку:

SELECT CONCAT ('Сотрудник', NULL, 'вернулся из', ' ', 'командировки');
И еще, числовые параметры, передаваемые функции CONCAT без кавычек автоматически преобразуются в строки:

SELECT CONCAT (100, '500', 9);
SELECT CONCAT (5.99);
эти запросы вернут строковые значения «1005009» и «5.99» соответственно.

Использование функции COUNT ()

Функция COUNT () используется для подсчета количества записей в таблице базы данных. Например, чтобы узнать количество всех строк из таблицы clients, достаточно выполнить такой запрос:

SELECT COUNT (*) FROM clients;
Применение функции COUNT () совместно с командой группирования GROUP BY

В этом примере мы применим группировку записей по странам при помощи команды GROUP BY, чтобы получить из таблицы clients количество клиентов в каждой стране:

SELECT country, COUNT (*) FROM clients GROUP BY country;
Результат будет примерно таким:

*----------------------*
| country | COUNT (*) |
*----------------------*
| Россия | 50 |
| Беларусь | 23 |
| Казахстан | 31 |
*----------------------*
Совместно с командой GROUP BY можно применять не только функцию COUNT (*), но и другие схожие по назначению функции. Например следующий SQL-запрос подсчитает средний возраст клиентов, сгруппированный по полу:

SELECT sex, AVG (age) FROM clients GROUP BY sex;
Результат получим примерно такой:

*--------------------*
| sex | AVG (age) |
*--------------------*
| мужчина | 28 |
| женщина | 25 |
*--------------------*
Использование выражения HAVING вместе с GROUP BY

Выражение HAVING используется для определения условия, решающего какие строки будут выводиться в результат запроса, а какие нет. Как пример, следующий SQL-запрос выдаст нам количество клиентов в каждой стране, но только в тех странах, где количество клиентов больше 10:

SELECT country, COUNT (*) AS CNT FROM clients GROUP BY country HAVING CNT > 10
Имейте ввиду, что выражение HAVING должно быть расположено только после всех выражений GROUP BY, но ни в коем случае не должно использоваться вместо WHERE.

Определение псевдонимов, используя «AS»

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

SELECT clientname AS name, country AS strana, age AS vozrast FROM clients
В результате запроса мы получим такие заголовки столбцов:

*----------------------------*
| name | strana | vozrast |
*----------------------------*
| Иван | Россия | 35 |
| Серж | Франция | 44 |
*----------------------------*
Использование псевдонимов применяется очень часто, например, чтобы сократить длину строки запроса, заменить в результатах запроса имена столбцов на более удобные для чтения и т.д.


На этом вторая часть обзора SQL запросов для новичков завершается. Продолжение следует. Надеюсь урок был полезным и познавательным!
БЕРЕГИТЕ СЕБЯ!




лайк

Эти красотки хотят чтобы ты их жестко лайкнул и даже несколько раз твитнул!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *