MySQL Інструкція SELECT із прикладами
У чому полягає запит 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)
ТУТ
- ВИБІР це ключове слово SQL, яке повідомляє базі даних, що ви хочете отримати дані.
- [ОТРИМАТИСЯ | ВСІ] це додаткові ключові слова, які можна використовувати для точного налаштування результатів, що повертаються оператором SQL SELECT. Якщо нічого не вказано, ALL вважається типовим.
- {*| [вираз поля [AS newName]} має бути вказано принаймні одну частину, «*» вибрано всі поля з указаної назви таблиці, fieldExpression виконує деякі обчислення щодо вказаних полів, наприклад додавання чисел або поєднання двох рядкових полів в одне.
- З tableName є обов’язковим і має містити принаймні одну таблицю, кілька таблиць мають бути розділені комами або об’єднані за допомогою ключового слова JOIN.
- ДЕ умова є необов’язковою, її можна використовувати для визначення критеріїв у наборі результатів, який повертає запит.
- GROUP BY використовується для об’єднання записів, які мають однакові значення полів.
- ВІД умова використовується для визначення критеріїв під час роботи з використанням ключового слова GROUP BY.
- СОРТУВАТИ ЗА використовується для визначення порядку сортування набору результатів.
*
Символ зірочки використовується для виділення всіх стовпців у таблиці. Приклад простого оператора SELECT виглядає так, як показано нижче.
SELECT * FROM `members`;
Наведений вище оператор вибирає всі поля з таблиці учасників. Крапка з комою означає завершення оператора. Це не є обов’язковим, але вважається хорошою практикою завершувати свої заяви таким чином.
Практичні приклади
Натисніть, щоб завантажити Myflix DB використовується для практичних прикладів.
Ви можете навчитися імпортувати файл .sql у MySQL верстак
Приклади виконано на наступних двох таблицях
Таблиця 1: членів таблиця
членський_ номер | повні_імена | пол | дата народження | фізична адреса | Поштова адреса | контактний номер | |
---|---|---|---|---|---|---|---|
1 | Джанет Джонс | жінка | 21-07-1980 | Ділянка № 4 вул | Приватна сумка | 0759 253 542 | janetjones@yagoo.cm |
2 | Джанет Сміт Джонс | жінка | 23-06-1980 | Мелроуз 123 | NULL | NULL | jj@fstreet.com |
3 | Роберт Філ | чоловік | 12-07-1989 | 3-я вулиця 34 | NULL | 12345 | rm@tstreet.com |
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 | Honey місячники | Джон Шульц | 2005 | 8 |
16 | 67% винний | NULL | 2012 | NULL |
Отримання списку учасників
Припустімо, що ми хочемо отримати список усіх зареєстрованих членів бібліотеки з нашої бази даних, ми скористаємося для цього сценарієм, показаним нижче.
SELECT * FROM `members`;
Виконання наведеного вище сценарію в MySQL workbench дає такі результати.
членський_ номер | повні_імена | пол | дата народження | фізична адреса | Поштова адреса | контактний номер | |
---|---|---|---|---|---|---|---|
1 | Джанет Джонс | жінка | 21-07-1980 | Ділянка № 4 вул | Приватна сумка | 0759 253 542 | janetjones@yagoo.cm |
2 | Джанет Сміт Джонс | жінка | 23-06-1980 | Мелроуз 123 | NULL | NULL | jj@fstreet.com |
3 | Роберт Філ | чоловік | 12-07-1989 | 3-я вулиця 34 | NULL | 12345 | rm@tstreet.com |
4 | Глорія Вільямс | жінка | 14-02-1984 | 2-а вулиця 23 | NULL | NULL | NULL |
Наш наведений вище запит повернув усі рядки та стовпці з таблиці members.
Скажімо, ми зацікавлені лише в тому, щоб отримати лише поля full_names, gender, physical_address та email. Наступний сценарій допоможе нам досягти цього.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Виконання наведеного вище сценарію в MySQL workbench дає такі результати.
повні_імена | пол | фізична адреса | |
---|---|---|---|
Джанет Джонс | жінка | Ділянка № 4 вул | janetjones@yagoo.cm |
Джанет Сміт Джонс | жінка | Мелроуз 123 | jj@fstreet.com |
Роберт Філ | чоловік | 3-я вулиця 34 | rm@tstreet.com |
Глорія Вільямс | жінка | 2-а вулиця 23 | NULL |
Отримання списку фільмів
Пам’ятайте, що в нашому вище обговоренні ми згадували вирази, які використовувалися в операторах SELECT. Припустімо, ми хочемо отримати список фільмів із нашої бази даних. Ми хочемо мати назву фільму та ім’я режисера в одному полі. Ім'я режисера має бути в дужках. Ми також хочемо отримати рік виходу фільму. Наступний сценарій допоможе нам це зробити.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ТУТ
- Конкат () MySQL використовується функція об’єднання значень стовпців.
- Рядок «Concat (`title`, ' (', `director`, ')') отримує назву, додає початкову дужку, за якою слідує ім’я режисера, а потім додає закриваючу дужку.
У функції Concat () частини рядка відокремлюються комами.
Виконання наведеного вище сценарію в MySQL workbench створює наступний набір результатів.
Concat(`title`, ' (', `director`, ')') | year_released |
---|---|
Пірати Карибського моря 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 ` column_name|value|expression `” це звичайний оператор 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 |
Honey місячники (Джон Шульц) | 2005 |
NULL | 2012 |
Отримання списку учасників із зазначенням року народження
Припустімо, що ми хочемо отримати список усіх членів із зазначенням членського номера, повних імен і року народження, ми можемо використати рядкову функцію LEFT, щоб отримати рік народження з поля дати народження. Наведений нижче сценарій допоможе нам це зробити.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ТУТ
- “LEFT(`дата_народження`;4)” Рядкова функція LEFT приймає дату народження як параметр і повертає лише 4 символи зліва.
- “ЯК `рік_народження`” є псевдонім стовпця які буде повернено в наших результатах. Зверніть увагу на Ключове слово AS необов’язкове, ви можете залишити його, і запит все одно працюватиме.
Виконання наведеного вище запиту в MySQL workbench проти myflixdb дає нам результати, показані нижче.
member_number | повні_імена | рік народження |
---|---|---|
1 | Джанет Джонс | 1980 |
2 | Джанет Сміт Джонс | 1980 |
3 | Роберт Філ | 1989 |
4 | Глорія Вільямс | 1984 |
Використання SQL MySQL Верстак
Зараз будемо використовувати MySQL workbench, щоб створити сценарій, який відображатиме всі назви полів із нашої таблиці категорій.
1. Клацніть правою кнопкою миші на таблиці категорій. Натисніть «Вибрати рядки – обмеження 1000»
2. MySQL workbench автоматично створить SQL-запит і вставить його в редактор.
3. Буде показано результати запиту
Зверніть увагу, що ми не самі написали оператор 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!
Підсумки
- Ключове слово SQL SELECT використовується для запиту даних із бази даних і є найбільш часто використовуваною командою.
- Найпростіша форма має синтаксис «SELECT * FROM tableName;»
- Вирази також можна використовувати в операторі select. Приклад «ВИБЕРІТЬ кількість + ціну З продажу»
- Команда SQL SELECT також може мати інші додаткові параметри, такі як WHERE, GROUP BY, HAVING, ORDER BY. Про них піде мова пізніше.
- MySQL Workbench може допомогти розробити оператори SQL, виконати їх і отримати вихідний результат у тому самому вікні.