MySQL-query's worden meestal één keer geschreven en vervolgens verpakt in klassenfuncties om herhaling van code te minimaliseren. Dit artikel geeft een overzicht van de 10 zoekopdrachten die het meest worden gebruikt in MySQL.
Een query is in wezen een verzoek om informatie die moet worden opgehaald uit een databasetabel of een combinatie van tabellen. Er zijn veel querytalen die kunnen worden geschreven om een reeks eenvoudige tot complexe query's uit te voeren. Query's filteren bepaalde criteria op basis van de specifieke gegevens waarnaar wordt gevraagd. Het kan ook gegevensbeheertaken automatiseren en berekeningen uitvoeren. Deze gids bespreekt de 10 meest voorkomende MySQL-query's.
Laten we deze demo-databases gebruiken om ons te helpen beter te begrijpen hoe elke zoekopdracht werkt.
Werknemer-ID | Naam | Titel |
---|---|---|
1002 | Webster W. | Uitvoerder |
1003 | Lizzy S. | Beheerder |
1004 | Oliver T. | Software-ingenieur |
Werknemer-ID | Afdeling | Leeftijd |
---|---|---|
1002 | HR | 36 |
1003 | Verkoop | 21 |
1004 | IT | 39 |
SELECTEER alles
Een eenvoudige SELECT-query wordt gebruikt om alle gegevens uit een database op te halen en terug te sturen. De syntaxis kan als zodanig worden geschreven;
Code:
SELECT * FROM Employees;
Resultaat:
1002 Webster W. Executive 1003 Lizzy S. Manager 1004 Oliver T. Software Engineer
Om alle beschikbare kolommen in de tabel te selecteren, moet u "*" gebruiken om aan te geven dat u alle mogelijke informatie moet retourneren. Geef vervolgens het trefwoord FROM op om gegevens uit de databasetabel te ontvangen. Denk er tot slot altijd aan om uw verklaring af te sluiten met een puntkomma “;” om het verzoek correct af te ronden.
Selecteer kolom
Om gegevens uit specifieke kolom(men) en niet alles te halen, hoeft u alleen maar de veldnaam op te geven in plaats van het sterretje(*) te gebruiken.
Code:
SELECT Title FROM Employees;
Resultaat:
Title Executive Manager Software Engineer
Wanneer u meerdere kolommen uit een database selecteert, moeten deze worden gescheiden door een komma. Vind ik leuk;
SELECT Title, Name FROM Employees;
WHERE-clausule
Bij gebruik van de WHERE-component in een SELECT-query, worden gegevensrecords gefilterd en worden vervolgens de records geëxtraheerd die voldoen aan de voorwaarde(n) als resultaat.
Code:
SELECT * FROM Employees WHERE EmployeeID = 1004 ;
Resultaten:
1004 Oliver T. Software Engineer
De WHERE-component kan meer dan één voorwaarde hebben die kan worden gescheiden door het EN-sleutelwoord te gebruiken.
TABEL MAKEN
Deze query kan worden gebruikt om een nieuwe tabel te genereren met de door u gewenste kolommen. Wanneer u kolomnamen toevoegt, moet u hun gegevenstype specificeren.
Code:
CREATE TABLE EmployeeInfo ( EmployeeId INT, Department VARCHAR(25), Age NUMBER );
Verwachte tabelresultaten:
EmployeeID | Department | Department |
NULL | NULL | NULL |
Nadat u de opdracht CREATE TABLE hebt uitgevoerd en deze hebt gevuld met kolomtitels, maakt de bovenstaande query een tabel "EmployeeInfo" in de database. In wezen retourneert elke kolom NULL omdat we geen bepaalde waarde hebben ingevoegd. Dat leidt ons naar onze volgende vraag, INSERT INTO.
INVOER IN zoekopdracht
Dit is de meest voorkomende query om waarden in een of meer rijen met nieuwe records in een tabel in te voegen. We kunnen de tabel EmployeeInfo vullen met enkele voorbeeldgegevens;
Code:
INSERT INTO EmployeeInfo (EmployeeID,Department,Age) VALUES (1002, HR , 46), (1003, Finance , 28), (1004, IT , 39);
Tabelresultaten:
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 46 |
1003 | Finance | 28 |
1004 | IT | 39 |
Bij het schrijven van een INSERT INTO-query moet de opdracht VALUES deel uitmaken van de volledige instructie.
UPDATE-query
Dit trefwoord wordt gebruikt om een of meer bestaande kolommen in een tabel te wijzigen. Als u deze query gebruikt, worden tabelrecords bijgewerkt met nieuwe gegevens op basis van een bepaalde voorwaarde.
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 21 |
1004 | IT | 39 |
Code:
UPDATE EmployeeInfo SET Age = 22 WHERE EmployeeID = 1003;
Tabelresultaten:
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 22 |
1004 | IT | 39 |
Gebruik na het UPDATE-commando het trefwoord SET om altijd aan te geven welke kolom(men) u wilt wijzigen en geef vervolgens precies aan WAAR u de bijgewerkte gegevens wilt toepassen.
VERWIJDEREN UIT zoekopdracht
Als u records uit een tabel wilt verwijderen op basis van een of meerdere voorwaarden, moet u de instructie DELETE FROM gebruiken. Bij het gebruik van voorwaarden wordt het aantal rijen dat door de query wordt beïnvloed, beperkt.
Code:
DELETE FROM Employees WHERE Name = ‘Lizzy’;
Tabelresultaten:
Werknemers
EmployeeID | Name | Title |
1002 | Webster W. | Executive |
1004 | Oliver T. | Software Engineer |
Zoals eerder behandeld in het artikel; het gebruik van de WHERE-voorwaarde bepaalt precies waar u verzoekt om gegevens uit te filteren en uit te voeren. Die vraag is om elk record uit de tabel met werknemers te verwijderen dat overeenkomt met de naam 'Lizzy'.
GROUP BY, HAVING-clausule gebruiken
De GROUP BY-component wordt meestal altijd gebruikt bij aggregatiefuncties. Als u dit zoekwoord gebruikt, wordt de resultaatset gegroepeerd in een of meer kolommen.
Het HAVING-sleutelwoord wordt gebruikt om die resultatenset te filteren. In het ideale geval zou je denken dat in plaats daarvan een WHERE-clausule zou worden ingevoerd, maar de HAVING-clausule introduceert een voorwaarde voor aggregaties.
EmployeeInfo
EmployeeID | Department | Age |
1002 | HR | 36 |
1003 | Sales | 21 |
1004 | IT | 39 |
Code:
SELECT COUNT(Age), EmployeeID FROM EmployeeInfo GROUP BY EmployeeID HAVING COUNT(Age) > 21;
Resultaten:
COUNT(Age) EmployeeID 39 1004 36 1002
Totale functies (SUM, AVG &COUNT)
Er zijn drie zeer algemene aggregatiefuncties waarmee gegevens uit een tabel kunnen worden geïnterpreteerd of berekeningen kunnen worden uitgevoerd.
- COUNT:retourneert het aantal rijen dat overeenkomt met een opgegeven kolom.
- AVG: retourneert de gemiddelde waarde van een kolom
- SUM:retourneert de som van alle waarden in een geselecteerde kolom.
Medewerkerinfo
Werknemer-ID | Afdeling | Leeftijd |
1002 | HR | 36 |
1003 | Verkoop | 21 |
1004 | IT | 39 |
Code voor COUNT:
SELECT COUNT(Department) FROM EmployeeInfo;
Resultaten:
COUNT(Department): 3
Code voor AVG:
SELECT AVG(Age) FROM EmployeeInfo;
Resultaten:
AVG(Age): 32
Code voor SUM
SELECT SUM(Age) FROM EmployeeInfo;
Resultaten:
SUM(Age): 96
MELDT AAN
Joins worden gebruikt om rijen van ten minste twee tabellen samen te brengen, op basis van een gerelateerde kolom tussen de tabellen. De meest voorkomende oefenjoins zijn INNER, FULL en LEFT.
- INNER Join – combineert de rijen van verschillende tabellen als de join-voorwaarde waar is.
- VOLLEDIGE samenvoeging – retourneert alle rijen wanneer er een overeenkomst is in linker- of rechtertabelrecords.
- LEFT Join – haalt alle rijen op uit de linkertabel en de overeenkomende records uit de rechtertabel.
Werknemers – Tabel #1(Links)
Werknemer-ID | Naam | Titel |
1002 | Webster W. | Uitvoerder |
1003 | Lizzy S. | Beheerder |
1004 | Oliver T. | Software-engineer |
EmployeeInfo – Tabel #2(Rechts)
Werknemer-ID | Afdeling | Leeftijd |
1002 | HR | 36 |
1003 | Verkoop | 21 |
1004 | IT | 39 |
INNER JOIN-code:
SELECT Employees.Title, EmployeeInfo.Department FROM Employees INNER JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Resultaten:
Title Department Executive HR Manager Sales Software Engineer IT
VOLLEDIGE JOIN-code:
SELECT * FROM Employees FULL JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Resultaten:
Pakt alle rijen en kolommen van beide tabellen, inclusief dubbele, en combineert ze tot één hele tabel.
LEFT JOIN-code:
SELECT Employees.Name, EmployeeInfo.Age FROM Employees LEFT JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Resultaten:
Name Age Webster W. 36 Lizzy S. 21 Oliver T. 39
De kolom "EmployeeID" in de tabel "Employee" verwijst naar de "EmployeeID" in de tabel "EmployeeInfo", in wezen dat de kolom EmployeeID de relatie tussen beide tabellen is. Joins kunnen lastig worden, maar tegelijkertijd uiterst nuttig bij het doorzoeken van een grotere database.
De gebruiker en de database kunnen succesvol informatie uitwisselen door in wezen dezelfde taal te spreken. De bovenstaande vragen worden het meest gebruikt door zowel beginners als experts. Het schrijven van MySQL-query's wordt beschouwd als de meest voorkomende functie binnen het domein van databasebeheer.
Dit artikel is in april 2022 beoordeeld en bijgewerkt door Kelsey Perkins.