MySQL заявките обикновено се пишат веднъж и след това се увиват във функции на клас, за да се сведе до минимум повторението на кода. Тази статия изброява 10-те най-често използвани заявки в MySQL.
Запитването е по същество заявка за информация, която да бъде извлечена от таблица на база данни или комбинация от таблици. Има много езици за заявки, които могат да бъдат написани за изпълнение на редица прости до сложни заявки. Заявките ще филтрират определени критерии въз основа на конкретните данни, които се изисква да намерят. Той също така може да автоматизира задачите за управление на данни и да участва в изчисления. Това ръководство обсъжда 10-те най-често срещани MySQL заявки.
Нека използваме тези демонстрационни бази данни, за да ни помогне да разберем по-нататък как функционира всяка заявка.
EmployeeID | Име | Заглавие |
---|---|---|
1002 | Уебстър У. | Изпълнителен директор |
1003 | Лизи С. | Мениджър |
1004 | Оливър Т. | Софтуерен инженер |
EmployeeID | Отдел | Възраст |
---|---|---|
1002 | HR | 36 |
1003 | Продажби | 21 |
1004 | ИТ | 39 |
ИЗБЕРЕТЕ всички
Проста заявка SELECT се използва за извличане и изпращане обратно на всички данни, които са от база данни. Синтаксисът му може да бъде написан като такъв;
Код:
SELECT * FROM Employees;
Резултат:
1002 Webster W. Executive 1003 Lizzy S. Manager 1004 Oliver T. Software Engineer
За да изберете всички налични колони в таблицата, трябва да използвате „*“, за да посочите, че имате нужда от връщане на цялата възможна информация. Второ, посочете ключовата дума FROM, за да получите данни от таблицата на базата данни. И накрая, винаги не забравяйте да завършвате изявлението си с точка и запетая „;“ за да завършите заявката правилно.
ИЗБИРАНЕ на колона
За да получите данни от конкретна колона(и), а не от всичко, просто искате да посочите името на полето, вместо да използвате звездичката(*).
Код:
SELECT Title FROM Employees;
Резултат:
Title Executive Manager Software Engineer
Когато избирате няколко колони от база данни, те трябва да бъдат разделени със запетая. Така е;
SELECT Title, Name FROM Employees;
Клауза WHERE
Когато се използва клаузата WHERE в заявка SELECT, записите с данни ще бъдат филтрирани, след което ще бъдат извлечени записите, които отговарят на условието(ята) като резултат.
Код:
SELECT * FROM Employees WHERE EmployeeID = 1004 ;
Резултати:
1004 Oliver T. Software Engineer
Клаузата WHERE може да има повече от едно условие, които могат да бъдат разделени с помощта на ключовата дума AND.
СЪЗДАВАНЕ на таблица
Тази заявка може да се използва за генериране на нова таблица с предпочитания от вас избор на колони. Когато добавяте имена на колони, не забравяйте да посочите техния тип данни.
Код:
CREATE TABLE EmployeeInfo ( EmployeeId INT, Department VARCHAR(25), Age NUMBER );
Очаквани резултати от таблицата:
EmployeeID | Department | Department |
NULL | NULL | NULL |
След като изпълните командата CREATE TABLE и я попълните със заглавия на колони, горната заявка създава таблица „EmployeeInfo“ в базата данни. По същество всяка колона ще върне NULL, защото не сме вмъкнали никаква конкретна стойност. Това ни води до следващата ни заявка INSERT INTO.
INSERT INTO Query
Това е най-често срещаната заявка за вмъкване на стойности в един или повече реда нови записи в таблица. Ние можем да попълним таблицата EmployeeInfo с някои примерни данни;
Код:
INSERT INTO EmployeeInfo (EmployeeID,Department,Age) VALUES (1002, HR , 46), (1003, Finance , 28), (1004, IT , 39);
Резултати от таблицата:
Информация за служителите
EmployeeID | Department | Age |
1002 | HR | 46 |
1003 | Finance | 28 |
1004 | IT | 39 |
Когато пишете INSERT INTO заявка, командата VALUES трябва да бъде част от пълния израз.
Заявка за актуализация
Тази ключова дума се използва за промяна на една или повече съществуващи колони в таблица. Използването на тази заявка ще актуализира записите в таблицата с нови данни въз основа на някакво условие.
Информация за служителите
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 21 |
1004 | IT | 39 |
Код:
UPDATE EmployeeInfo SET Age = 22 WHERE EmployeeID = 1003;
Резултати от таблицата:
Информация за служителите
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 22 |
1004 | IT | 39 |
След командата UPDATE използвайте ключовата дума SET, за да укажете винаги коя колона(и) избирате да промените, след което посочете КЪДЕ се нуждаете от приложените актуализирани данни.
ИЗТРИВАНЕ ОТ заявка
За да премахнете записи от таблица въз основа на едно или няколко условия, ще трябва да използвате израза DELETE FROM. Когато се използват условия, той ограничава броя на редовете, засегнати от заявката.
Код:
DELETE FROM Employees WHERE Name = ‘Lizzy’;
Резултати от таблицата:
Служители
EmployeeID | Name | Title |
1002 | Webster W. | Executive |
1004 | Oliver T. | Software Engineer |
Както беше описано по-рано в статията; използването на условието WHERE определя къде точно искате данните да бъдат филтрирани и изпълнени. Тази заявка е да изтрие всеки запис от таблицата на служителите, който съответства на името „Lizzy“.
Използване на клауза GROUP BY, HAVING
Клаузата GROUP BY се използва предимно винаги с агрегатни функции. Използването на тази ключова дума ще групира набора от резултати по една или повече колони.
Ключовата дума HAVING се използва за филтриране на този набор от резултати. В идеалния случай бихте си помислили, че вместо това ще бъде въведена клауза WHERE, но клаузата HAVING въвежда условие за агрегирания.
Информация за служителите
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 21 |
1004 | IT | 39 |
Код:
SELECT COUNT(Age), EmployeeID FROM EmployeeInfo GROUP BY EmployeeID HAVING COUNT(Age) > 21;
Резултати:
COUNT(Age) EmployeeID 39 1004 36 1002
Агрегирани функции (SUM, AVG &COUNT)
Има три изключително често срещани агрегатни функции, които позволяват да се интерпретират данни от таблица или да се изпълняват изчисления.
- COUNT:връща броя на редовете, които съответстват на определена колона.
- AVG: връща средната стойност на колона
- SUM:връща сбора на всички стойности в избрана колона.
Информация за служителите
ИД на служител | Отдел | Възраст |
1002 | HR | 36 |
1003 | Продажби | 21 |
1004 | ИТ | 39 |
Код за COUNT:
SELECT COUNT(Department) FROM EmployeeInfo;
Резултати:
COUNT(Department): 3
Код за AVG:
SELECT AVG(Age) FROM EmployeeInfo;
Резултати:
AVG(Age): 32
Код за SUM
SELECT SUM(Age) FROM EmployeeInfo;
Резултати:
SUM(Age): 96
Присъединява се
Съединенията се използват за обединяване на редове от поне две таблици въз основа на свързана колона между таблиците. Най-често срещаните практически присъединявания са INNER, FULL и LEFT.
- INNER Join – комбинира редовете от различни таблици, ако условието за присъединяване е вярно.
- ПЪЛНО присъединяване – връща всички редове, когато има съвпадение в левия или десния запис на таблицата.
- LEFT Join – извлича всички редове от лявата таблица и съвпадащите записи от дясната таблица.
Служители – Таблица №1 (вляво)
ИД на служител | Име | Заглавие |
1002 | Уебстър У. | Изпълнителен директор |
1003 | Лизи С. | Мениджър |
1004 | Оливър Т. | Софтуерен инженер |
Информация за служителите – Таблица №2 (вдясно)
ИД на служител | Отдел | Възраст |
1002 | HR | 36 |
1003 | Продажби | 21 |
1004 | ИТ | 39 |
ВЪТРЕШНО ПРИСЪЕДИНЕНИЕ Код:
SELECT Employees.Title, EmployeeInfo.Department FROM Employees INNER JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Резултати:
Title Department Executive HR Manager Sales Software Engineer IT
Код за ПЪЛНО ПРИСЪЕДИНЯВАНЕ:
SELECT * FROM Employees FULL JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Резултати:
Ще вземе всички редове и колони от двете таблици, включително дубликатите, и ще ги комбинира в една цяла таблица.
LEFT JOIN Код:
SELECT Employees.Name, EmployeeInfo.Age FROM Employees LEFT JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Резултати:
Name Age Webster W. 36 Lizzy S. 21 Oliver T. 39
Колоната „EmployeeID“ в таблицата „Employee“ се отнася до „EmployeeID“ в таблицата „EmployeeInfo“, като по същество се посочва, че колоната EmployeeID е връзката между двете таблици. Присъединяванията могат да станат трудни, но в същото време изключително полезни при сортиране в по-голяма база данни.
Потребителят и базата данни могат успешно да обменят информация, като по същество говорят на един и същ език. Изброените по-горе заявки са най-често използвани както от начинаещи, така и от експерти. Писането на MySQL заявки се счита за най-честата функция в областта на управлението на базата данни.
Тази статия беше прегледана и актуализирана през април 2022 г. от Келси Пъркинс.