Заява MySQL SELECT із прикладами

Зміст:

Anonim

Що таке запит SELECT у MySQL?

SELECT QUERY використовується для отримання даних з бази даних MySQL. Бази даних зберігають дані для подальшого пошуку. Метою MySQL Select є повернення з таблиць бази даних одного або декількох рядків, які відповідають заданим критеріям. Запит 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, яке дозволяє базі даних знати, що ви хочете отримати дані.
  • [ВИЗНАЧЕННЯ | ALL] - необов’язкові ключові слова, за допомогою яких можна точно налаштувати результати, що повертаються з оператора SQL SELECT. Якщо нічого не вказано, то за замовчуванням приймається ALL.
  • {* | [fieldExpression [AS newName]} повинна бути вказана принаймні одна частина, "*" вибрав усі поля із зазначеного імені таблиці, fieldExpression виконує деякі обчислення в зазначених полях, наприклад додавання чисел або складання двох рядкових полів в одне.
  • FROM tableName є обов’язковим і має містити принаймні одну таблицю, кілька таблиць слід розділяти комами або об’єднувати за допомогою ключового слова JOIN.
  • Умова WHERE є необов’язковою, її можна використовувати для вказівки критеріїв у наборі результатів, що повертається із запиту.
  • GROUP BY використовується для складання записів, що мають однакові значення полів.
  • Умова HAVING використовується для вказівки критеріїв при роботі з ключовим словом GROUP BY.
  • ORDER BY використовується для вказівки порядку сортування набору результатів.

*

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

SELECT * FROM `members`;

Наведений вище оператор вибирає всі поля з таблиці членів. Двокрапка - це твердження, що закінчується. Це не є обов’язковим, але вважається гарною практикою закінчувати свої висловлювання так.

Практичні приклади

Клацніть, щоб завантажити DB myflix, що використовується для практичних прикладів.

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

Приклади наводяться у наступних двох таблицях

Таблиця 1: таблиця членів

членський_ номер повні_імена Стать дата народження фізична адреса Поштова адреса contct_ номер електронною поштою
1 Джанет Джонс Самка 21-07-1980 Ділянка Першої вулиці No 4 Приватна сумка 0759 253 542 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
2 Джанет Сміт Джонс Самка 23-06-1980 Мелроуз 123 НУЛЬ НУЛЬ Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
3 Роберт Філ Самець 12-07-1989 3-а вулиця 34 НУЛЬ 12345 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
4 Глорія Вільямс Самка 14-02-1984 2-а вулиця 23 НУЛЬ НУЛЬ НУЛЬ

Таблиця 2: таблиця фільмів

movie_id заголовок директор рік_випущений ідентифікатор категорії
1 Пірати Карибського моря 4 Роб Маршалл 2011 рік 1
2 Забувши Сару Маршал Ніколас Столлер 2008 рік 2
3 X-Men НУЛЬ 2008 рік НУЛЬ
4 Кодова назва Чорний Едгар Джимз 2010 рік НУЛЬ
5 Татові дівчатка НУЛЬ 2007 рік 8
6 Ангели і демони НУЛЬ 2007 рік 6
7 Кодекс Давінчі НУЛЬ 2007 рік 6
9 Медовий місяць Джон Шульц 2005 рік 8
16 67% винних НУЛЬ 2012 рік НУЛЬ

Отримання списку учасників

Припустимо, що ми хочемо отримати список усіх зареєстрованих членів бібліотеки з нашої бази даних, для цього ми використаємо сценарій, показаний нижче.

SELECT * FROM `members`;

Виконання вищезазначеного сценарію в робочому середовищі MySQL дає такі результати.

членський_ номер повні_імена Стать дата народження фізична адреса Поштова адреса contct_ номер електронною поштою
1 Джанет Джонс Самка 21-07-1980 Ділянка Першої вулиці No 4 Приватна сумка 0759 253 542 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
2 Джанет Сміт Джонс Самка 23-06-1980 Мелроуз 123 НУЛЬ НУЛЬ Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
3 Роберт Філ Самець 12-07-1989 3-а вулиця 34 НУЛЬ 12345 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
4 Глорія Вільямс Самка 14-02-1984 2-а вулиця 23 НУЛЬ НУЛЬ НУЛЬ

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

Скажімо, нас цікавить лише отримання повної імені, статі, фізичної_адреси та електронної пошти. Наступний сценарій допоможе нам цього досягти.

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

Виконання вищезазначеного сценарію в робочому середовищі MySQL дає такі результати.

повні_імена Стать фізична адреса електронною поштою
Джанет Джонс Самка Ділянка Першої вулиці No 4 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
Джанет Сміт Джонс Самка Мелроуз 123 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
Роберт Філ Самець 3-а вулиця 34 Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його.
Глорія Вільямс Самка 2-а вулиця 23 НУЛЬ

Отримання списку фільмів

Пам’ятайте в нашому вище обговоренні, що ми згадували вирази, що використовувались у твердженнях SELECT. Скажімо, ми хочемо отримати список фільмів з нашої бази даних. Ми хочемо мати назву фільму та ім’я режисера в одному полі. Ім'я режисера має бути в дужках. Ми також хочемо отримати рік випуску фільму. Наступний сценарій допомагає нам це зробити.

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

ТУТ

  • Використовується функція Concat () MySQL, яка об’єднує значення стовпців.
  • Рядок "Concat (` title`, '(', `director`, ')') отримує заголовок, додає відкриваючу дужку, а потім ім'я директора, а потім додає заключну дужку.

Рядові частини розділяються комами у функції Concat ().

Виконання вищезазначеного сценарію в робочому середовищі MySQL дає такий набір результатів.

Concat (`title`, '(',` director`, ')') рік_випущений
Пірати Карибського моря 4 (Роб Маршалл) 2011 рік
Забуття Сари Маршал (Ніколас Столлер) 2008 рік
НУЛЬ 2008 рік
Кодова назва Чорний (Едгар Джимз) 2010 рік
НУЛЬ 2007 рік
НУЛЬ 2007 рік
НУЛЬ 2007 рік
Медовий місяць (Джон Шульц) 2005 рік
НУЛЬ 2012 рік

Імена полів псевдонімів

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

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

ТУТ

  • "SELECT` ім'я_столбця | значення | вираз `" - це звичайний оператор SELECT, який може бути ім'ям стовпця, значенням або виразом.
  • "[AS]" - це необов'язкове ключове слово перед тим, як псевдонім, що позначає вираз, значення або ім'я поля, буде повернутий як.
  • "` псевдонім_назви` " - це псевдонім, який ми хочемо повернути в наборі результатів як ім'я поля.

Наведений вище запит із більш значущою назвою стовпця

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

Отримуємо наступний результат

Конкат рік_випущений
Пірати Карибського моря 4 (Роб Маршалл) 2011 рік
Забуття Сари Маршал (Ніколас Столлер) 2008 рік
НУЛЬ 2008 рік
Кодова назва Чорний (Едгар Джимз) 2010 рік
НУЛЬ 2007 рік
НУЛЬ 2007 рік
НУЛЬ 2007 рік
Медовий місяць (Джон Шульц) 2005 рік
НУЛЬ 2012 рік

Отримання списку учасників із зазначенням року народження

Припустимо, що ми хочемо отримати список усіх членів, що показують номер учасника, повні імена та рік народження, ми можемо використовувати функцію РЯДО ВЛІВО для вилучення року народження з поля дати народження. Наведений нижче сценарій допомагає нам це зробити.

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

ТУТ

  • «Лівий (` date_of_birth`, 4) » функція рядки ЛІВИЙ приймає дату народження в якості параметра і повертає тільки 4 символу зліва.
  • "ЯК` рік_народження` " - це псевдонім стовпця, який буде повернуто в наших результатах. Зверніть увагу, що ключове слово AS є необов’язковим , ви можете його залишити, і запит все одно працюватиме.

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

членство_чисел повні_імена рік народження
1 Джанет Джонс 1980 рік
2 Джанет Сміт Джонс 1980 рік
3 Роберт Філ 1989 рік
4 Глорія Вільямс 1984 рік

SQL за допомогою MySQL Workbench

Зараз ми будемо використовувати робочий стіл MySQL для створення сценарію, який буде відображати всі імена полів з нашої таблиці категорій.

1. Клацніть правою кнопкою миші на таблиці категорій. Клацніть на "Вибрати рядки - обмежити 1000"

2. Робочий стіл MySQL автоматично створить запит SQL та вставить у редактор.

3. Результати запиту будуть показані

Зверніть увагу, що ми не написали оператор SELECT самі. MySQL Workbench створив його для нас.

Навіщо використовувати команду SELECT SQL, коли у нас є MySQL Workbench?

Тепер ви можете подумати, чому вивчати команду SQL SELECT для запиту даних із бази даних, коли ви можете просто використовувати такий інструмент, як робочий стіл MySQL, щоб отримати однакові результати без знання мови SQL. Звичайно, це можливо, але навчившись користуватися командою SELECT, ви отримуєте більше гнучкості та контролю над своїми операторами SQL SELECT .

MySQL Workbench потрапляє в категорію інструментів 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, виконувати їх і виробляти вихідні результати в тому ж вікні.