Что такое запрос SELECT в MySQL?
SELECT QUERY используется для извлечения данных из базы данных MySQL. Базы данных хранят данные для последующего поиска. Цель MySQL Select — вернуть из таблиц базы данных одну или несколько строк, соответствующих заданным критериям. Запрос на выбор может быть использован в скриптовом языке, таком как PHP, Ruby, или вы можете выполнить его из командной строки.
Синтаксис оператора SQL SELECT
Это наиболее часто используемая команда SQL и имеет следующий общий синтаксис
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
ВОТ
- SELECT — это ключевое слово SQL, которое позволяет базе данных знать, что вы хотите получить данные.
- [DISTINCT | ALL] — необязательные ключевые слова, которые можно использовать для точной настройки результатов, возвращаемых оператором SQL SELECT. Если ничего не указано, то по умолчанию принимается ALL.
- {* | [fieldExpression [AS newName]} должна быть указана как минимум одна часть, «*» выбрал все поля из указанного имени таблицы, fieldExpression выполняет некоторые вычисления для указанных полей, например, добавляет числа или объединяет два строковых поля в одно.
- FROM tableName является обязательным и должен содержать хотя бы одну таблицу, несколько таблиц должны быть разделены запятыми или объединены с помощью ключевого слова JOIN.
- Если условие является необязательным, его можно использовать для указания критериев в наборе результатов, возвращаемых запросом.
- GROUP BY используется для объединения записей, имеющих одинаковые значения полей.
- Условие HAVING используется для указания критериев при работе с ключевым словом GROUP BY.
- ORDER BY используется для указания порядка сортировки набора результатов.
*
Символ Звезды используется для выбора всех столбцов в таблице. Пример простого оператора SELECT выглядит так, как показано ниже.
SELECT * FROM `members`;
Приведенный выше оператор выбирает все поля из таблицы членов. Точка с запятой это утверждение завершить. Это не обязательно, но считается хорошей практикой заканчивать ваши заявления таким образом.
Практические примеры
Нажмите, чтобы загрузить базу данных myflix, используемую для практических примеров.
Вы можете научиться импортировать файл .sql в MySQL WorkBench.
Примеры выполняются в следующих двух таблицах
Таблица 1: таблица участников
членский номер | полные имена | Пол | Дата рождения | Физический адрес | почтовый адрес | номер контракта | электронное письмо |
---|---|---|---|---|---|---|---|
1 | Джанет Джонс | женский | 21-07-1980 | Первый Улица Участка № 4 | Частная сумка | 0759 253 542 | [email protected] |
2 | Джанет Смит Джонс | женский | 23-06-1980 | Мелроуз 123 | ЗНАЧЕНИЕ NULL | ЗНАЧЕНИЕ NULL | [email protected] |
3 | Роберт Фил | мужчина | 12-07-1989 | 3-я улица, 34 | ЗНАЧЕНИЕ NULL | 12345 | [email protected] |
4 | Глория Уильямс | женский | 14-02-1984 | 2-я улица, 23 | ЗНАЧЕНИЕ NULL | ЗНАЧЕНИЕ NULL | ЗНАЧЕНИЕ NULL |
Таблица 2: таблица фильмов
movie_id | заглавие | директор | year_released | category_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 | Медовые луны | Джон Шульц | 2005 | 8 |
16 | 67% виновных | ЗНАЧЕНИЕ NULL | 2012 | ЗНАЧЕНИЕ NULL |
Получение списка участников
Давайте предположим, что мы хотим получить список всех зарегистрированных членов библиотеки из нашей базы данных, мы будем использовать скрипт, показанный ниже, чтобы сделать это.
SELECT * FROM `members`;
Выполнение вышеупомянутого сценария в MySQL Workbench дает следующие результаты.
членский номер | полные имена | Пол | Дата рождения | Физический адрес | почтовый адрес | номер контракта | электронное письмо |
---|---|---|---|---|---|---|---|
1 | Джанет Джонс | женский | 21-07-1980 | Первый Улица Участка № 4 | Частная сумка | 0759 253 542 | [email protected] |
2 | Джанет Смит Джонс | женский | 23-06-1980 | Мелроуз 123 | ЗНАЧЕНИЕ NULL | ЗНАЧЕНИЕ NULL | [email protected] |
3 | Роберт Фил | мужчина | 12-07-1989 | 3-я улица, 34 | ЗНАЧЕНИЕ NULL | 12345 | [email protected] |
4 | Глория Уильямс | женский | 14-02-1984 | 2-я улица, 23 | ЗНАЧЕНИЕ NULL | ЗНАЧЕНИЕ NULL | ЗНАЧЕНИЕ NULL |
Наш запрос выше вернул все строки и столбцы из таблицы members.
Допустим, мы заинтересованы только в том, чтобы получить только полные имена, пол, физический адрес и адрес электронной почты. Следующий скрипт поможет нам достичь этого.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Выполнение вышеупомянутого сценария в MySQL Workbench дает следующие результаты.
полные имена | Пол | Физический адрес | электронное письмо |
---|---|---|---|
Джанет Джонс | женский | Первый Улица Участка № 4 | [email protected] |
Джанет Смит Джонс | женский | Мелроуз 123 | [email protected] |
Роберт Фил | мужчина | 3-я улица, 34 | [email protected] |
Глория Уильямс | женский | 2-я улица, 23 | ЗНАЧЕНИЕ NULL |
Получение списка фильмов
Помните в нашем обсуждении выше, что мы упоминаем выражения, использованные в инструкциях SELECT. Допустим, мы хотим получить список фильмов из нашей базы данных. Мы хотим, чтобы название фильма и имя режиссера были в одном поле. Имя режиссера должно быть в скобках. Мы также хотим узнать год выпуска фильма. Следующий скрипт помогает нам в этом.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ВОТ
- MySQL-функция Concat () используется для объединения значений столбцов.
- Строка «Concat (` title`, ‘(‘, Director «, ‘)’) получает заголовок, добавляет открывающую скобку, за которой следует имя директора, затем добавляет закрывающую скобку.
Строковые части разделяются запятыми в функции Concat ().
Выполнение вышеупомянутого сценария в MySQL Workbench приводит к следующему набору результатов.
Concat (`title`, ‘(‘, Director`, ‘)’) | year_released |
---|---|
Пираты Карибского моря 4 (Роб Маршалл) | 2011 |
Забыть Сару Маршал (Николас Столлер) | 2008 |
ЗНАЧЕНИЕ NULL | 2008 |
Кодовое имя Черный (Эдгар Джимз) | 2010 |
ЗНАЧЕНИЕ NULL | 2007 |
ЗНАЧЕНИЕ NULL | 2007 |
ЗНАЧЕНИЕ NULL | 2007 |
Медовые луны (Джон Шульц) | 2005 |
ЗНАЧЕНИЕ NULL | 2012 |
Имена полей псевдонимов
Приведенный выше пример вернул код конкатенации в качестве имени поля для наших результатов. Предположим, мы хотим использовать более описательное имя поля в нашем наборе результатов. Мы бы использовали псевдоним столбца для достижения этого. Ниже приведен основной синтаксис для псевдонима столбца.
SELECT `column_name|value|expression` [AS] `alias_name`;
ВОТ
- «SELECT` имя_ столбца | значение | выражение `» — это обычный оператор SELECT, который может быть именем столбца, значением или выражением.
- «[AS]» является необязательным ключевым словом перед именем псевдонима, обозначающим выражение, значение или имя поля, которое будет возвращено как.
- «alias_name» — это псевдоним, который мы хотим вернуть в нашем наборе результатов в качестве имени поля.
Приведенный выше запрос с более значимым именем столбца
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Получаем следующий результат
Concat | year_released |
---|---|
Пираты Карибского моря 4 (Роб Маршалл) | 2011 |
Забыть Сару Маршал (Николас Столлер) | 2008 |
ЗНАЧЕНИЕ NULL | 2008 |
Кодовое имя Черный (Эдгар Джимз) | 2010 |
ЗНАЧЕНИЕ NULL | 2007 |
ЗНАЧЕНИЕ NULL | 2007 |
ЗНАЧЕНИЕ NULL | 2007 |
Медовые луны (Джон Шульц) | 2005 |
ЗНАЧЕНИЕ NULL | 2012 |
Получение списка участников с указанием года рождения
Предположим, что мы хотим получить список всех участников с указанием номера участника, его полных имен и года рождения, мы можем использовать строковую функцию LEFT, чтобы извлечь год рождения из поля даты рождения. Сценарий, показанный ниже, помогает нам сделать это.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ВОТ
- «ЛЕВЫЙ (` date_of_birth`, 4)» функция строки ЛЕВЫЙ принимает дату рождениякачестве параметра и возвращает только 4 символа слева.
- «AS` year_of_birth` » — это псевдоним столбца, который будет возвращен в наших результатах. Обратите внимание, что ключевое слово AS является необязательным , вы можете не указывать его, и запрос все равно будет работать.
Выполнение вышеуказанного запроса в MySQL Workbench против myflixdb дает нам результаты, показанные ниже.
членский номер | полные имена | год рождения |
---|---|---|
1 | Джанет Джонс | 1980 |
2 | Джанет Смит Джонс | 1980 |
3 | Роберт Фил | 1989 |
4 | Глория Уильямс | 1984 |
SQL с использованием MySQL Workbench
Теперь мы будем использовать MySQL Workbench для генерации скрипта, который будет отображать все имена полей из нашей таблицы категорий.
1. Щелкните правой кнопкой мыши таблицу категорий. Нажмите «Выбрать строки — предел 1000»
2. MySQL Workbench автоматически создаст SQL-запрос и вставит его в редактор.
3. Результаты запроса будут показаны
Обратите внимание, что мы сами не писали оператор SELECT. MySQL верстак сгенерировал это для нас.
Зачем использовать команду SELECT SQL, когда у нас есть MySQL Workbench?
Теперь вы можете подумать, зачем изучать команду SQL SELECT для запроса данных из базы данных, когда вы можете просто использовать инструмент, такой как инструментальные средства MySQL, для получения тех же результатов без знания языка SQL. Конечно, это возможно, но изучение того, как использовать команду SELECT, дает вам больше гибкости и контроля над операторами SQL SELECT .
MySQL Workbench относится к категории инструментов QBE « Запрос по примеру ». Он призван помочь быстрее генерировать операторы SQL для повышения производительности пользователей.
Изучение команды SQL SELECT может позволить вам создавать сложные запросы, которые не могут быть легко сгенерированы с помощью утилит Query by Example, таких как MySQL Workbench.
Для повышения производительности вы можете сгенерировать код с помощью MySQL, а затем настроить его под свои требования . Это может произойти, только если вы понимаете, как работают операторы SQL!
Резюме
- Ключевое слово SQL SELECT используется для запроса данных из базы данных, и это наиболее часто используемая команда.
- Простейшая форма имеет синтаксис «SELECT * FROM tableName;»
- Выражения также можно использовать в операторе выбора. Пример «ВЫБЕРИТЕ количество + цена ОТ ПРОДАЖ»
- Команда SQL SELECT также может иметь другие необязательные параметры, такие как WHERE, GROUP BY, HAVING, ORDER BY. Они будут обсуждаться позже.
- MySQL Workbench может помочь в разработке операторов SQL, их выполнении и выводе результата в том же окне.