MySQL Оператор SELECT с примерами

Что такое запрос SELECT в MySQL?

SELECT QUERY используется для получения данных из MySQL База данных. Базы данных хранят данные для последующего извлечения. Цель MySQL Выбор заключается в возврате из таблиц базы данных одной или нескольких строк, соответствующих заданному критерию. Запрос выбора можно использовать на языке сценариев, таком как PHP, Ruby, или выполнить его через командную строку.

SELECT запрос в MySQL

Синтаксис оператора SQL SELECT

Это наиболее часто используемая команда SQL, имеющая следующий общий синтаксис:

SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)]  [HAVING condition] ORDER BY fieldName(s)

ВОТ

  • ВЫБОР — это ключевое слово SQL, которое сообщает базе данных, что вы хотите получить данные.
  • [ОТЛИЧНЫЕ | ВСЕ] — это необязательные ключевые слова, которые можно использовать для точной настройки результатов, возвращаемых оператором SQL SELECT. Если ничего не указано, то значением по умолчанию считается ALL.
  • {*| [fieldExpression [AS newName]} должна быть указана хотя бы одна часть, «*» выбирает все поля из указанного имени таблицы, fieldExpression выполняет некоторые вычисления над указанными полями, например, складывает числа или объединяет два строковых поля в одно.
  • от tableName является обязательным и должен содержать хотя бы одну таблицу. Несколько таблиц должны быть разделены запятыми или объединены с помощью ключевого слова JOIN.
  • ГДЕ условие является необязательным, его можно использовать для указания критериев в наборе результатов, возвращаемом по запросу.
  • ГРУППА ПО используется для объединения записей, имеющих одинаковые значения полей.
  • HAVING условие используется для указания критериев при работе с ключевым словом GROUP BY.
  • СОРТИРОВАТЬ ПО используется для указания порядка сортировки набора результатов.

*

Символ звездочки используется для выбора всех столбцов таблицы. Пример простого оператора SELECT выглядит так, как показано ниже.

SELECT * FROM `members`;

Приведенный выше оператор выбирает все поля из таблицы участников. Точка с запятой означает завершение оператора. Это не обязательно, но считается хорошей практикой заканчивать свои высказывания таким образом.

Практические примеры

Нажмите, чтобы скачать база данных myflix, используемая для практических примеров.

Вы можете научиться импортировать файл .sql в MySQL Верстак

Примеры выполняются на следующих двух таблицах.

Таблица 1: члены (см. таблицу ниже)

Количество членов полные имена пол Дата рождения Физический адрес почтовый адрес контактный_ номер e-mail
1 Джанет Джонс F 21-07-1980 Первая улица, участок № 4 Частная сумка 0759 253 542 janetjones@yagoo.cm
2 Джанет Смит Джонс F 23-06-1980 Мелроуз 123 NULL, NULL, jj@fstreet.com
3 Роберт Фил M 12-07-1989 3-я улица, 34 NULL, 12345 rm@ttreet.com
4 Глория Уильямс F 14-02-1984 2-я улица, 23 NULL, NULL, NULL,

Таблица 2: кино (см. таблицу ниже)

Movie_id название директор год_выпущено ид_категории
1 Пираты Карибского моря 4 Роб Маршалл 2011 1
2 Забыть Сару Маршал Николас Столлер 2008 2
3 X-Men NULL, 2008 NULL,
4 Кодовое имя Черный Эдгар Джимз 2010 NULL,
5 Папины маленькие девочки NULL, 2007 8
6 Ангелы и демоны NULL, 2007 6
7 Код Давинчи NULL, 2007 6
9 Honey Лунники Джон Шульц 2005 8
16 67% Виновен NULL, 2012 NULL,

Получение списка участников

Предположим, мы хотим получить список всех зарегистрированных членов библиотеки из нашей базы данных. Для этого мы будем использовать скрипт, показанный ниже.

SELECT * FROM `members`;

Выполнение приведенного выше сценария в MySQL Workbench выдает следующие результаты.

Количество членов полные имена пол Дата рождения Физический адрес почтовый адрес контактный_ номер e-mail
1 Джанет Джонс F 21-07-1980 Первая улица, участок № 4 Частная сумка 0759 253 542 janetjones@yagoo.cm
2 Джанет Смит Джонс F 23-06-1980 Мелроуз 123 NULL, NULL, jj@fstreet.com
3 Роберт Фил M 12-07-1989 3-я улица, 34 NULL, 12345 rm@ttreet.com
4 Глория Уильямс F 14-02-1984 2-я улица, 23 NULL, NULL, NULL,

Наш приведенный выше запрос вернул все строки и столбцы из таблицы участников.

Допустим, нас интересует только получение только полей «полное_имя», «пол», «физический_адрес» и «адрес электронной почты». Следующий скрипт поможет нам добиться этого.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Выполнение приведенного выше сценария в MySQL Workbench выдает следующие результаты.

полные имена пол Физический адрес e-mail
Джанет Джонс F Первая улица, участок № 4 janetjones@yagoo.cm
Джанет Смит Джонс F Мелроуз 123 jj@fstreet.com
Роберт Фил M 3-я улица, 34 rm@ttreet.com
Глория Уильямс F 2-я улица, 23 NULL,

Получение списка фильмов

Помните, что в приведенном выше обсуждении мы упоминали выражения, используемые в операторах SELECT. Допустим, мы хотим получить список фильмов из нашей базы данных. Мы хотим, чтобы название фильма и имя режиссера были в одном поле. Имя режиссёра должно быть в скобках. Мы также хотим узнать год выхода фильма. Следующий скрипт поможет нам сделать это.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

ВОТ

  • Конкат () MySQL используется функция объединения значений столбцов вместе.
  • Строка «Concat (`title`, ' (', `director`, ')') получает заголовок, добавляет открывающую скобку, за которой следует имя режиссера, а затем добавляет закрывающую скобку.

Части строки разделяются запятыми в функции Concat().

Выполнение приведенного выше сценария в MySQL Workbench выдает следующий набор результатов.

Concat(`title`, ' (', `режиссер`, ')') год_выпущено
Пираты Карибского моря 4 (Роб Маршалл) 2011
Забыть Сару Маршал (Николас Столлер) 2008
NULL, 2008
Кодовое имя Блэк (Эдгар Джимз) 2010
NULL, 2007
NULL, 2007
NULL, 2007
Honey Лунеры (Джон Шульц) 2005
NULL, 2012

Имена полей псевдонимов

В приведенном выше примере в качестве имени поля для наших результатов был возвращен код конкатенации. Предположим, мы хотим использовать более описательное имя поля в нашем наборе результатов. Для этого мы будем использовать имя псевдонима столбца. Ниже приведен основной синтаксис имени псевдонима столбца.

SELECT `column_name|value|expression` [AS] `alias_name`;

ВОТ

  • «SELECT `имя_столбца|значение|выражение`» — это обычный оператор SELECT, который может быть именем столбца, значением или выражением.
  • "[КАК]" — это необязательное ключевое слово перед тем, как псевдоним, обозначающий выражение, значение или имя поля, будет возвращен как.
  • «`имя_псевдонима`» — это псевдоним, который мы хотим вернуть в нашем наборе результатов в качестве имени поля.

Приведенный выше запрос с более значимым именем столбца

SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;

Мы получаем следующий результат

Конкат год_выпущено
Пираты Карибского моря 4 (Роб Маршалл) 2011
Забыть Сару Маршал (Николас Столлер) 2008
NULL, 2008
Кодовое имя Блэк (Эдгар Джимз) 2010
NULL, 2007
NULL, 2007
NULL, 2007
Honey Лунеры (Джон Шульц) 2005
NULL, 2012

Получение списка участников с указанием года рождения

Предположим, мы хотим получить список всех участников, показывающий номер участника, полные имена и год рождения. Мы можем использовать строковую функцию LEFT, чтобы извлечь год рождения из поля даты рождения. Сценарий, показанный ниже, поможет нам сделать это.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

ВОТ

  • «ЛЕВЫЙ(`дата_рождения`,4)» ЛЕВАЯ строковая функция принимает дату рождения в качестве параметра и возвращает только 4 символа слева.
  • «КАК `год_рождения`» это псевдоним столбца это будет возвращено в наших результатах. Обратите внимание Ключевое слово AS не является обязательным, вы можете оставить его, и запрос все равно будет работать.

Выполнение вышеуказанного запроса в MySQL рабочая среда против myflixdb дает нам результаты, показанные ниже.

Количество членов полные имена год рождения
1 Джанет Джонс 1980
2 Джанет Смит Джонс 1980
3 Роберт Фил 1989
4 Глория Уильямс 1984

SQL с использованием MySQL Верстак

Теперь мы собираемся использовать MySQL Workbench для создания сценария, который будет отображать все имена полей из нашей таблицы категорий.

1. Щелкните правой кнопкой мыши таблицу категорий. Нажмите «Выбрать строки — Ограничить 1000».

2. MySQL Workbench автоматически создаст SQL-запрос и вставит его в редактор.

3. Результаты запроса будут показаны.

SQL с использованием MySQL Верстак

Обратите внимание, что мы не писали оператор SELECT самостоятельно. MySQL Workbench сгенерировал его для нас.

Зачем использовать команду SELECT SQL, если у нас есть MySQL Верстак?

Теперь вы можете подумать, зачем изучать команду SQL SELECT для запроса данных из базы данных, если вы можете просто использовать такой инструмент, как MySQL Workbench, чтобы получить те же результаты без знания языка SQL. Конечно, это возможно, но научиться использовать команду SELECT дает вам больше гибкости и контроль над вашим Операторы SQL SELECT.

MySQL верстак относится к категории «Запрос по примеруИнструменты QBE. Он предназначен для ускорения генерации операторов SQL и повышения производительности пользователей.

Изучение команды SQL SELECT позволит вам создавать сложные запросы которые невозможно легко сгенерировать с помощью утилит Query by example, таких как MySQL верстак.

Для повышения производительности вы можете сгенерируйте код, используя MySQL верстак тогда настроить его удовлетворить ваши требования. Это может произойти только в том случае, если вы понимаете, как работают операторы SQL!

MySQL Оператор SELECT с примерами

Итого

  • Ключевое слово SQL SELECT используется для запроса данных из базы данных и является наиболее часто используемой командой.
  • Самая простая форма имеет синтаксис «SELECT * FROM tableName;»
  • Выражения также можно использовать в операторе выбора. Пример «ВЫБРАТЬ количество + цену ИЗ продаж»
  • Команда SQL SELECT также может иметь другие необязательные параметры, такие как WHERE, GROUP BY, HAVING, ORDER BY. Они будут обсуждаться позже.
  • MySQL Workbench может помочь разрабатывать операторы SQL, выполнять их и выдавать результат в одном окне.