Изявление на MySQL SELECT с примери

Съдържание:

Anonim

Какво представлява заявката 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, която позволява на базата данни да знае, че искате да извлечете данни.
  • [РАЗЛИЧЕН | ALL] са незадължителни ключови думи, които могат да се използват за фина настройка на резултатите, върнати от оператора SQL SELECT. Ако не е посочено нищо, тогава ALL се приема по подразбиране.
  • {* | [fieldExpression [AS newName]} трябва да бъде посочена поне една част, "*" избра всички полета от посоченото име на таблица, fieldExpression извършва някои изчисления на посочените полета като добавяне на числа или събиране на две низови полета в едно.
  • FROM tableName е задължително и трябва да съдържа поне една таблица, множество таблици трябва да бъдат разделени със запетаи или обединени с помощта на ключовата дума JOIN.
  • УСЛОВИЕТО WHERE не е задължително, може да се използва за задаване на критерии в резултата, върнат от заявката.
  • GROUP BY се използва за съставяне на записи, които имат еднакви стойности на полетата.
  • Условието HAVING се използва за задаване на критерии при работа с ключовата дума GROUP BY.
  • ORDER BY се използва за задаване на реда за сортиране на набора от резултати.

*

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

SELECT * FROM `members`;

Горният оператор избира всички полета от таблицата на членовете. Точката с двоеточие е изявление прекратяване. Не е задължително, но се счита за добра практика да приключвате изказванията си така.

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

Щракнете, за да изтеглите myflix DB, използван за практически примери.

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

Примерите се изпълняват на следните две таблици

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

членски_ номер пълни имена пол дата на раждане физически адрес пощенски адрес contct_ номер електронна поща
1 Джанет Джоунс Женски пол 21-07-1980 Парцел за първа улица № 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 заглавие директор година_издадена категория_id
1 Карибски пирати 4 Роб Маршал 2011 г. 1
2 Забравяйки Сара Маршал Николас Столер 2008 г. 2
3 Екс мен НУЛА 2008 г. НУЛА
4 Кодово име Черно Едгар Джимз 2010 г. НУЛА
5 Малките момичета на татко НУЛА 2007 г. 8
6 Ангели и демони НУЛА 2007 г. 6
7 Код на Давинчи НУЛА 2007 г. 6
9 Скъпа Джон Шулц 2005 г. 8
16. 67% Виновни НУЛА 2012 г. НУЛА

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

Да предположим, че искаме да получим списък с всички регистрирани членове на библиотеката от нашата база данни, за да използваме скрипта, показан по-долу.

SELECT * FROM `members`;

Изпълнението на горния скрипт в MySQL workbench дава следните резултати.

членски_ номер пълни имена пол дата на раждане физически адрес пощенски адрес contct_ номер електронна поща
1 Джанет Джоунс Женски пол 21-07-1980 Парцел за първа улица № 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 workbench дава следните резултати.

пълни имена пол физически адрес електронна поща
Джанет Джоунс Женски пол Парцел за първа улица № 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 workbench дава следния набор от резултати.

Concat (`заглавие`, '(',` режисьор`, ')') година_издадена
Карибски пирати 4 (Роб Маршал) 2011 г.
Забравяйки Сара Маршал (Никълъс Столер) 2008 г.
НУЛА 2008 г.
Кодово име Черно (Edgar Jimz) 2010 г.
НУЛА 2007 г.
НУЛА 2007 г.
НУЛА 2007 г.
Скъпа (John Schultz) 2005 г.
НУЛА 2012 г.

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

Горният пример върна кода за конкатенация като име на поле за нашите резултати. Да предположим, че искаме да използваме по-описателно име на поле в нашия набор от резултати. Бихме използвали името на псевдонима на колоната, за да постигнем това. По-долу е основният синтаксис за името на псевдонима на колоната

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

ТУК

  • "SELECT` име_на колона | стойност | израз `" е обикновеният оператор SELECT, който може да бъде име на колона, стойност или израз.
  • "[AS]" е незадължителната ключова дума, преди името на псевдонима, което обозначава израза, стойността или името на полето, да бъде върнато като.
  • "` alias_name` " е името на псевдонима, което искаме да върнем в нашия резултат, като име на полето.

Горната заявка с по-смислено име на колона

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

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

Конкат година_издадена
Карибски пирати 4 (Роб Маршал) 2011 г.
Забравяйки Сара Маршал (Никълъс Столер) 2008 г.
НУЛА 2008 г.
Кодово име Черно (Edgar Jimz) 2010 г.
НУЛА 2007 г.
НУЛА 2007 г.
НУЛА 2007 г.
Скъпа (John Schultz) 2005 г.
НУЛА 2012 г.

Получаване на членове, изброяващи годината на раждане

Да предположим, че искаме да получим списък на всички членове, показващи членския номер, пълните имена и годината на раждане, можем да използваме функцията LEFT низ, за ​​да извлечем годината на раждане от полето за дата на раждане. Показаният по-долу скрипт ни помага да направим това.

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

ТУК

  • "LEFT (` date_of_birth`, 4) " функцията LEFT низ приема датата на раждане като параметър и връща само 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 Workbench го генерира за нас.

Защо да използваме командата SELECT SQL, когато имаме MySQL Workbench?

Сега може би си мислите защо да научите командата SQL SELECT за заявки за данни от базата данни, когато можете просто да използвате инструмент като MySQL workbench's, за да получите същите резултати, без да знаете езика SQL. Разбира се, това е възможно, но научаването как да използвате командата SELECT ви дава повече гъвкавост и контрол върху вашите SQL SELECT изрази .

MySQL workbench попада в категорията на QBE инструменти " Заявка чрез пример ". Той има за цел да помогне за генерирането на SQL изрази по-бързо, за да увеличи производителността на потребителя.

Изучаването на командата SQL SELECT може да ви позволи да създавате сложни заявки, които не могат лесно да бъдат генерирани с помощта на помощни програми Query by Example като MySQL workbench.

За да подобрите производителността, можете да генерирате кода с помощта на MySQL workbench, след което да го персонализирате , за да отговори на вашите изисквания . Това може да се случи само ако разбирате как работят SQL операторите!

Обобщение

  • Ключовата дума SQL SELECT се използва за заявки за данни от базата данни и това е най-често използваната команда.
  • Най-простата форма има синтаксиса "SELECT * FROM tableName;"
  • Изразите могат да се използват и в оператора select. Пример "ИЗБЕРЕТЕ количество + цена ОТ продажби"
  • Командата SQL SELECT може да има и други незадължителни параметри като WHERE, GROUP BY, HAVING, ORDER BY. Те ще бъдат обсъдени по-късно.
  • MySQL workbench може да помогне за разработването на SQL изрази, да ги изпълни и да произведе резултата в същия прозорец.