Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL заявки

Досега създадохме база данни, добавихме две таблици и вмъкнахме данни в двете таблици. Сега ще разгледаме как да извлечем тези данни. Но не само извличане данните, но за запитване базата данни за него.

SQL означава Structured Query Language . Това е Запитването малко, което прави SQL толкова мощен. SQL е език, който ви позволява да изпълнявате заявки срещу вашата база данни. Позволява ви да запитвате базата данни за данните, които искате.

SQL SELECT Изявление

Когато става въпрос за запитване на вашата MySQL база данни, SQL SELECT изявлението прави всичко възможно. Това вероятно ще бъде най-често използваният ви SQL израз, когато работите с MySQL. SELECT изявлението ви позволява да опишете на MySQL точно какви данни искате да извлече.

Помислете за следния SQL израз:

SELECT * FROM Fruit;

Ето резултата:

Това е SELECT най-простото изявление. Горният SQL оператор извлича всички записи от Fruit таблица.

Звездичката (* ) казва на MySQL да върне всички колони. Това ни спестява време и усилия. Без това ще трябва да напишем имената на всички колони, които бихме искали да върнем.

Като каза това, можете също да кажете на MySQL да връща само онези колони, които искате да върнете. Това се прави чрез именуване само на онези колони, които искате да бъдат върнати. Като това:

SELECT FruitId, FruitName 
FROM Fruit;

Ето резултата:

Горният SQL оператор избира FruitId и FruitName колони от Плодове таблица.

Това може да намали претрупването, така че да виждате само онези колони, които ви интересуват. Това също може да повиши производителността, тъй като MySQL (и всяко приложение, което използвате) не трябва да използва ценни ресурси за връщане на ненужни данни.

Отново тази заявка извлича всички записи от таблицата — MySQL ще върне всички записи, освен ако не е посочено друго.

WHERE Клауза

Можете да добавите WHERE клауза, за да стесните резултата само до онези записи, които ви интересуват. Така:

SELECT * FROM Fruit
WHERE UnitId = 1;

Резултат:

Горната заявка връща всички записи от Fruit таблица, където UnitId колоната има стойност 1 .

Подзаявки — Вложен SELECT Изявления

Ами ако не знаехме UnitId ? Ами ако знаехме само да търсим тези записи с име на единица Piece ?

Лесно! Бихме могли да пренапишем горния пример, за да използваме вложен SELECT израз (известен иначе като подзаявка ), който отправя заявка към друга таблица ( Units таблица). Това ще ни позволи да използваме действителното име на единицата (а не неговия идентификатор), защото втората таблица съдържа това в UnitName поле:

SELECT * FROM Fruit
WHERE UnitId = 
	(SELECT UnitId 
    FROM Units 
    WHERE UnitName = 'Piece');

Резултат:

Тук използваме вложен SELECT оператор (т.е. SELECT израз в SELECT изявление), за да направите заявка за Units таблица за UnitId на записа, който съдържа Piece като Име на единица стойност. Можем да направим това, защото Fruit.UnitId колоната е външен ключ към Units.UnitId колона.

Ето още примери за подзаявки, ако се интересувате.

Използване на SQL JOIN

Като направим още една крачка напред, бихме могли да пренапишем нашия вложен SELECT изявление в INNER JOIN .

В SQL, JOIN ви позволява да заявявате множество таблици, които споделят данни. В нашия случай и двете таблици споделят UnitId така че можете да кажете, че те са "присъединени" от това поле.

Има различни типове присъединявания в SQL, но ние се интересуваме основно от INNER JOIN засега.

INNER JOIN синтаксисът е така:

SELECT * FROM table_name_1
INNER JOIN table_name_2
ON table_name_1.column_name = table_name_2.column_name

Така че можем да пренапишем нашата подзаявка от предишния пример на следното:

SELECT Fruit.* FROM Fruit
INNER JOIN Units
ON Fruit.UnitId = Units.UnitId
WHERE Units.UnitName = 'Piece';

Резултат:

Посочихме Fruit.* вместо просто * защото искахме само да върнем всички колони от Плодове маса. Ако използвахме * , заявката би върнала всички колони от двете таблици.

Вижте също LEFT JOIN и RIGHT JOIN за да видите как можете да получите различни данни в зависимост от типа на присъединяване.

Подзаявка срещу JOIN ?

Сега, след като видяхте два метода за постигане на един и същ резултат, вероятно се чудите кой е по-добър?

Подзаявките обикновено са по-четливи (и може би по-лесни за разбиране), което може да улесни разбирането от начинаещи.

Въпреки това, много SQL програмисти намират JOIN е по-ефективен и работи по-добре. Ако срещнете проблеми с производителността на вашите заявки или приложение, опитайте да конвертирате всички подзаявки в JOIN s или обратно (в някои случаи подзаявката може да се представи по-добре).

Освен това може да има случаи, в които подзаявката е единствената ви опция, така че това също трябва да се има предвид.

Още оператори

Всички наши заявки досега съдържаха знак за равенство (= ). Това се нарича оператор . По-точно това е оператор за сравнение тъй като сравнява един израз с друг.

Има много повече оператори, които можете да използвате във вашите заявки. Те могат да помогнат значително за стесняване на набора от резултати само до онези записи, които са ви необходими. Не е необичайно базата данни да съдържа милиони записи. Дори ако имате само хиляди записи, опитите да намерите един запис (или дори само шепа) сред хиляди би било много обезсърчаваща задача, ако не разполагате с тези оператори на ваше разположение.

Ето някои от най-често използваните SQL оператори.

> Оператор

Можете да използвате > оператор, за да изберете данни, които са по-големи от дадена стойност.

SELECT * FROM Fruit
WHERE Inventory > 10;

< Оператор

Можете да използвате < оператор, за да изберете данни, които са по-малко от дадена стойност.

SELECT * FROM Fruit
WHERE Inventory < 10;

<> Оператор

Можете да използвате <> оператор, за да изберете данни, които са едновременно по-малко от и по-голяма от дадена стойност.

SELECT * FROM Fruit
WHERE Inventory <> 10;

>= Оператор

Можете да използвате >= оператор за избор на данни, които са по-големи или равни на дадена стойност.

SELECT * FROM Fruit
WHERE Inventory >= 10;

<= Оператор

Можете да използвате <= оператор за избор на данни, които са по-малки или равни на дадена стойност.

SELECT * FROM Fruit
WHERE Inventory <= 10;

AND Оператор

Можете да добавите AND оператор към WHERE клауза, за да ограничите избора си само до онези записи, които отговарят на две условия (или повече, ако включите повече AND оператори).

Ето един пример:

SELECT * FROM Fruit
WHERE Inventory > 10 
AND DateEntered > '2015-01-15';

OR Оператор

Можете да използвате OR оператор, за да разширите избора си до повече от един критерий. Както подсказва името, OR клаузата ви позволява да изберете данни, при които критериите са или това ИЛИ че. Така че AND оператор ограничения вашия избор и OR оператор разширява го.

Ето един пример:

SELECT * FROM Fruit
WHERE UnitId = 1 OR UnitId = 2;

BETWEEN Оператор

Използвайте BETWEEN оператор, за да изберете данни, които са между две дадени стойности.

SELECT * FROM Fruit
WHERE DateEntered 
BETWEEN '2015-01-25' AND '2015-02-25';

NOT Оператор

Използвайте NOT оператор, за да изберете данни, които не еквивалентно на дадено условие.

SELECT * FROM Fruit
WHERE NOT (FruitName = 'Apple');

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Подреждане по харесване?

  2. Използване на JDeveloper с MySQL база данни и Oracle Database на AWS RDS, част 3

  3. Пинкод база данни на Индия със скрипт за намиране на местоположение в php и jquery

  4. Как да се свържем дистанционно с MySQL база данни, разположена на нашия споделен сървър

  5. Производителност на MySQL:MySQL/MariaDB индекси