Въведение в SELECT в MySQL
В тази тема ще научим за SELECT в MySQL и най-вече за DQL, който е „Език за заявка на данни“. Това става за игра, когато се опитваме да извлечем записи от базата данни и тя започва с командата „ИЗБОР“. Тази команда може да се използва с много SQL клаузи, както и с други функции за получаване на желаните записи.
Има много видове SQL команди, които могат да бъдат категоризирани в следното:
- DDL (език за дефиниране на данни)
- DML (език за обработка на данни)
- DQL (език за запитване на данни)
- DCL (език за контрол на данните)
- TCL (език за контрол на транзакциите)
Синтаксис:
1. Основният синтаксис на командата SELECT:
SELECT * FROM table_name;
Това ще извлече всички записи с всички атрибути от таблица.
SELECT column1, column2, …. FROM table_name;
Това ще вземе посочени колони от таблица, които се предават чрез заявката.
2. Тази команда SELECT може да се използва и с командата INSERT, която се използва за добавяне на записи към съществуващата таблица.
INSERT INTO table_name1 SELECT * FROM table_name2;
Тук заявката ще извлече всички записи от table_name2 и ще ги вмъкне в table_name1.
Примери за изпълнение на SELECT в MySQL
Нека помислим, че има клиентска таблица със следните атрибути.
Cust_id | Първо име | Фамилия | контакт | електронна поща | град | Количество |
1001 | Рохит | Шарма | 9876736587 | Мумбай | 10000 | |
1002 | Virat | Kohli | 8752877855 | Делхи | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Мумбай | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Делхи | 20000 |
Ще видим някои основни SELECT заявки, използвайки някои клаузи за основното разбиране за това как работи тази команда.
Пример №1
SELECT * FROM customer;
(Това ще извлече всички записи с всички атрибути от таблица.)
изход:
Cust_id | Първо име | Фамилия | контакт | електронна поща | град | Количество |
1001 | Рохит | Шарма | 9876736587 | Мумбай | 10000 | |
1002 | Virat | Kohli | 8752877855 | Делхи | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Мумбай | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Делхи | 20000 |
Пример №2
SELECT cust_id, first_name, last_name, email, city
FROM customer;
(Това ще вземе посочени колони от таблица, които се предават чрез заявка)
изход:
Cust_id | Първо име | Фамилия | електронна поща | град |
1001 | Рохит | Шарма | Мумбай | |
1002 | Virat | Kohli | Делхи | |
1003 | Sachin | Tendulkar | Мумбай | |
1004 | Virendra | Shewag | Делхи |
Пример №3
SELECT cust_id, first_name, last_name, email, city FROM customer
WHERE city = 'Delhi';
(Командата WHERE ще извлече само тези записи, където градът ще бъде „Delhi“)
изход:
Cust_id | Първо име | Фамилия | електронна поща | град |
1002 | Virat | Kohli | Делхи | |
1004 | Virendra | Shewag | Делхи |
Пример №4
SELECT cust_id, first_name, last_name, city, amount FROM customer
WHERE amount BETWEEN 5000 AND 25000;
(Клаузата BETWEEN ще върне записи, които отговарят на дадения диапазон от състояния, предадени в заявката)
изход:
Cust_id | Първо име | Фамилия | град | Количество |
1001 | Рохит | Шарма | Мумбай | 10000 |
1003 | Sachin | Tendulkar | Мумбай | 15000 |
1004 | Virendra | Shewag | Делхи | 20000 |
Пример №5
SELECT * FROM customer
ORDER BY amount DESC;
(Използва се за сортиране както на числови, така и на низови стойности или във възходящ или низходящ начин. Но по подразбиране той сортира във възходящ начин. Ако искаме в низходящ ред, тогава трябва да го уточним, след като използваме клауза ORDER BY)
изход:
Cust_id | Първо име | Фамилия | контакт | електронна поща | град | Количество |
1002 | Virat | Kohli | 8752877855 | Делхи | 60000 | |
1004 | Virendra | Shewag | 9087788988 | Делхи | 20000 | |
1003 | Sachin | Tendulkar | 9867868678 | Мумбай | 15000 | |
1001 | Рохит | Шарма | 9876736587 | Мумбай | 10000 |
Клаузи с SELECT команда
Други клаузи с команда SELECT:
1. SELECT: Използва се за извличане на всички записи от таблица.
SELECT * FROM table;
2. DISTINCT: Използва се за извличане на всички уникални стойности от таблица.
SELECT DISTINCT col_name FROM table;
3. КЪДЕ: Използвани условия за прошка при извличане на записи.
SELECT employee_id FROM employee
WHERE name = 'stella';
4. COUNT: Използва се за получаване на броя записи, присъстващи в таблица.
SELECT COUNT(*) FROM employee;
5. ПОРЪЧКА ПО: Използва се за сортиране както на числови, така и на низови стойности във възходящ или низходящ начин. Но по подразбиране се подрежда във възходящ начин. Ако искаме да се спуснем, тогава трябва да го уточним, след като използваме клаузата ORDER BY.
SELECT first_name FROM student
ORDER BY marks desc;
6. ОГРАНИЧЕНИЕ: Използва се за уточняване на броя записи, които искаме след изпълнение на заявката. Ако искаме най-добрите 5 ученици от даден клас, след като сортираме резултатите, можем да използваме това ОГРАНИЧЕНИЕ като посочим 5. Така че той ще извлече само първите 5 записа.
SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;
(** ПОРЪЧАЙ, използвана тук за сортиране на стойността в низходящ ред)
7. И: Ако са дадени 2 условия и двете са изпълнени за запис, тогава само заявката ще получи тези записи.
SELECT employee_id FROM employee
WHERE name = 'stella' AND city = 'Bangalore';
8. ИЛИ: Ако са дадени 2 условия и едно от тях е изпълнено за запис, тогава този запис ще бъде получен.
SELECT employee_id FROM employee
WHERE department = 'IT' OR city = 'Bangalore';
9. НЕ: Използва се при условия. Ако уточним НЕ преди каквито и да е условия, ще бъдат извлечени записи, които не отговарят на тези условия.
SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;
10. МЕЖДУ: Този оператор избира записи в даден диапазон. Най-често използваме това, когато искаме да уточним диапазон от дати.
SELECT emp_id FROM employee
WHERE emp_id BETWEEN 1 AND 10;
SELECT * FROM employee
WHERE join_date BETWEEN '2007-01-01' AND '2008-01-01';
11. IN: Този оператор ни позволява да посочим множество стойности в клауза WHERE.
SELECT * FROM employee
WHERE employee_id IN (1001, 1004, 1008, 1012);
12. LIKE: Този оператор се използва с клаузата WHERE за търсене на определен шаблон в колона, съдържаща низа.
- 'A%' - низ започва с A
- '& A' - завършва с A
- '% A%' - A ще бъде между низ
- '_A%' - Тук втората буква ще бъде A
- '% A_' - Втората от последната буква ще бъде A
SELECT first_name FROM table
WHERE first_name LIKE 'A%';
13. SUBSTRING: Използва се за избор на конкретен символ от низ, като посочва позицията.
SELECT SUBSTRING(customer_name, 1, 5) FROM customer_table;
(ще извади символ от 1-ва до 5-та позиция на низ)
14. INSTR: Това връща позиция на низ в друг низ.
SELECT INSTR('independence', 'pen');
(то ще намери позицията на "химикалка" в думата "независимост")
15. GROUP BY: Използва се за разделяне на записи въз основа на някои зададени условия.
SELECT employee_id FROM employee GROUP BY department HAVING salary > 100000;
(Тук група от разделени служители въз основа на техния отдел и чиято заплата над 100k.
Условието винаги идва с HAVING оператор в клауза GROUP BY.)
Съвместими функции
По-долу е различната функция на агрегат:
1. SUM: Изчислява сумата от стойности.
SELECT SUM(salary) FROM employee;
2. AVG: Изчислява средния набор от стойности.
SELECT AVG(salary) FROM employee;
3. MIN: Получава минималната стойност в набор от стойности.
SELECT MIN(salary) FROM employee;
4. MAX: Получава максималната стойност в набор от стойности.
SELECT MAX(salary) FROM employee;
Присъединява се към SELECT в MySQL
1. INNER JOIN: Връща записи, които имат съвпадение в двете таблици.
SELECT * FROM order
INNER JOIN customer
ON order.cust_id = customer.cust_id;
2. LEFT JOIN: Връща всички записи от лявата таблица и съвпадащите записи от дясната таблица.
SELECT * FROM order
LEFT JOIN customer
ON order.cust_id = customer.cust_id;
3. RIGHT JOIN: Връща всички записи от дясната таблица и съвпадащите записи от лявата таблица.
SELECT * FROM order
RIGHT JOIN customer
ON order.cust_id = customer.cust_id;
4. FULL OUTER JOIN: Връща всички записи, когато има съвпадение на лявата или дясната таблица.
SELECT * FROM order
FULL OUTER JOIN customer
ON order.cust_id = customer.cust_id;
Извод - ИЗБЕРЕТЕ в MySQL
Тези команди и клаузи, които разгледахме по-горе, са много полезни при сценарии в реално време, тъй като предоставят основните концепции за това как да използвате SQL заявки за получаване и манипулиране на данни в базата данни. Освен това, докато използвате предварителни и аналитични заявки като функция на прозорците и т.н., тези клаузи са много важни.
Препоръчителни статии
Това е ръководство за SELECT в MySQL Тук обсъждаме Примера за внедряване на SELECT в MySQL с клаузи, агрегирани функции и присъединявания. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Wildcards в MySQL
- Какво е MySQL схема?
- Как да свържете база данни с MySQL?
- MySQL заявки
- INSERT в Oracle | Примери
- Примери за DISTINCT в Oracle