sql >> Database teknologi >  >> RDS >> Mysql

Top almindelige MySQL-forespørgsler

MySQL-forespørgsler er normalt skrevet én gang og derefter pakket ind i klassefunktioner for at minimere kodegentagelse. Denne artikel viser de 10 forespørgsler, der oftest bruges i MySQL.

En forespørgsel er i bund og grund en anmodning om, at oplysninger skal hentes fra en databasetabel eller en kombination af tabeller. Der er mange forespørgselssprog, der kan skrives til at udføre en række simple til komplekse forespørgsler. Forespørgsler vil filtrere visse kriterier baseret på de specifikke data, det anmodes om at finde. Det kan også automatisere datahåndteringsopgaver og deltage i beregninger. Denne guide diskuterer de 10 mest almindelige MySQL-forespørgsler.

Lad os bruge disse demodatabaser til at hjælpe os med at forstå, hvordan hver forespørgsel fungerer.

Medarbejder-ID Navn Titel
1002 Webster W. Executive
1003 Lizzy S. Manager
1004 Oliver T. Softwareingeniør
Medarbejder-ID Afdeling Alder
1002 HR 36
1003 Salg 21
1004 IT 39

VÆLG alle 

En simpel SELECT-forespørgsel bruges til at hente og sende alle data tilbage fra en database. Dens syntaks kan skrives som sådan;

Kode:

SELECT *
FROM Employees;

Resultat:

1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer

For at vælge alle tilgængelige kolonner i tabellen skal du bruge "*" for at angive, at du skal have alle mulige oplysninger returneret. For det andet, angiv FROM nøgleordet for at modtage data fra databasetabellen. Husk endelig altid at afslutte dit udsagn med et semikolon ";" for at fuldføre anmodningen korrekt.

VÆLG kolonne

For at få data fra specifikke kolonne(r) og ikke alt, vil du blot angive feltnavnet i stedet for at bruge stjernen(*).

Kode:

SELECT Title
FROM Employees;

Resultat:

Title
Executive
Manager
Software Engineer

Når du vælger flere kolonner fra en database, skal de adskilles med et komma. Sådan;

SELECT Title, Name
FROM Employees;

WHERE-klausul

Når du bruger WHERE-sætningen i en SELECT-forespørgsel, vil dataposter blive filtreret, og derefter udtrække de poster, der matcher betingelsen/betingelserne som resultat.

Kode: 

SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;

Resultater: 

1004       Oliver T.          Software Engineer 

WHERE-sætningen kan have mere end én betingelse, der kan adskilles ved at bruge AND-nøgleordet.

OPRET tabel 

Denne forespørgsel kan bruges til at generere en ny tabel med dit foretrukne valg af kolonner. Når du tilføjer kolonnenavne, skal du sørge for at angive deres datatype.

Kode:

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);

Forventede tabelresultater:

EmployeeID
Department
Department
NULL
NULL
NULL

Når du kører CREATE TABLE-kommandoen og udfylder den med kolonnetitler, opretter ovenstående forespørgsel en "EmployeeInfo"-tabel i databasen. I det væsentlige vil hver kolonne returnere NULL, fordi vi ikke har indsat nogen bestemt værdi. Det fører os til vores næste forespørgsel, INSERT INTO.

INSERT INTO Query 

Dette er den mest almindelige forespørgsel til at indsætte værdier i en eller flere rækker af nye poster i en tabel. Vi er i stand til at udfylde EmployeeInfo-tabellen med nogle eksempeldata;

Kode: 

INSERT INTO EmployeeInfo (EmployeeID,Department,Age)
VALUES 
(1002, HR , 46),
(1003, Finance , 28),
(1004, IT , 39);

Tabelresultater:

Medarbejderoplysninger

EmployeeID
Department
Age
1002
HR
46
1003
Finance
28
1004
IT
39

Når du skriver en INSERT INTO-forespørgsel, skal VALUES-kommandoen være en del af den komplette sætning.

OPDATERING Forespørgsel

Dette søgeord bruges til at ændre en eller flere eksisterende kolonner i en tabel. Brug af denne forespørgsel vil opdatere tabelposter med nye data baseret på en eller anden betingelse.

Medarbejderoplysninger

EmployeeID
Department
Age
1002
HR
36
1003
Sales
21
1004
IT
39

Kode: 

UPDATE EmployeeInfo
SET Age = 22
WHERE EmployeeID = 1003;

Tabelresultater: 

Medarbejderoplysninger

EmployeeID
Department
Age
1002
HR
36
1003
Sales
22
1004
IT
39

Efter UPDATE-kommandoen skal du bruge nøgleordet SET til altid at angive, hvilke(n) kolonne(r) du vælger at ændre, og angiv derefter nøjagtigt HVOR du skal bruge de opdaterede data på.

SLET FRA forespørgsel

For at fjerne poster fra en tabel baseret på en eller flere betingelser skal du bruge DELETE FROM-sætningen. Når du bruger betingelser, begrænser det antallet af rækker, der påvirkes af forespørgslen.

Kode: 

DELETE FROM Employees
WHERE Name = ‘Lizzy’;

Tabelresultater:

Medarbejdere

EmployeeID
Name
Title
1002
Webster W.
Executive 
1004
Oliver T.
Software Engineer 

Som tidligere omtalt i artiklen; Brug af WHERE-betingelsen bestemmer præcis, hvor du anmoder om, at data skal filtreres fra og udføres. Denne forespørgsel er at slette hver post fra tabellen over medarbejdere, der matcher navnet  "Lizzy".

Ved brug af GROUP BY, HAVING-klausul 

GROUP BY-sætningen bruges for det meste altid med aggregerede funktioner. Brug af dette søgeord vil gruppere resultatsættet i en eller flere kolonner.

Nøgleordet HAVING bruges til at filtrere det resultatsæt. Ideelt set skulle man tro, at en WHERE-klausul ville blive indført i stedet, men HAVING-klausulen introducerer en betingelse for aggregering.

Medarbejderoplysninger

EmployeeID
Department
Age
1002
HR
36
1003
Sales
21
1004
IT
39

Kode:

SELECT COUNT(Age), EmployeeID
FROM EmployeeInfo
GROUP BY EmployeeID
HAVING COUNT(Age) > 21;

Resultater:

COUNT(Age)  EmployeeID
39   1004
36   1002  

Aggregerede funktioner (SUM, AVG &COUNT)

Der er tre ekstremt almindelige aggregerede funktioner, der gør det muligt at fortolke data fra en tabel eller køre beregninger.

  • ANTAL:returnerer antallet af rækker, der matcher en specificeret kolonne.
  • AVG:  returnerer den gennemsnitlige værdi af en kolonne
  • SUM:returnerer summen af ​​alle værdierne i en valgt kolonne.

Medarbejderinfo

Medarbejder-ID Afdeling Alder
1002 HR 36
1003 Salg 21
1004 IT 39

Kode for COUNT:

SELECT 
COUNT(Department)
FROM EmployeeInfo;

Resultater:

COUNT(Department):
3

Kode til AVG:

SELECT AVG(Age)
FROM EmployeeInfo;

Resultater:

AVG(Age):
32

Kode til SUM

SELECT SUM(Age)
FROM EmployeeInfo;

Resultater:

SUM(Age):
96

TIL MED

Joins bruges til at samle rækker fra mindst to tabeller, baseret på en relateret kolonne mellem tabellerne. De mest almindelige øvelsessammenføjninger er INNER, FULL og LEFT.

  • INNER Join – kombinerer rækkerne fra forskellige tabeller, hvis join-betingelsen er sand.
  • FULD Join –  returnerer alle rækker, når der er et match i venstre eller højre tabelposter.
  • LEFT Join – henter alle rækker fra den venstre tabel og de matchende poster fra den højre tabel.

Medarbejdere – Tabel #1 (venstre)

Medarbejder-ID Navn Titel
1002 Webster W. Executive 
1003 Lizzy S. Manager
1004 Oliver T. Softwareingeniør 

EmployeeInfo – Tabel #2 (højre)

Medarbejder-ID Afdeling Alder
1002 HR 36
1003 Salg 21
1004 IT 39

INNER JOIN-kode: 

SELECT Employees.Title, EmployeeInfo.Department
FROM Employees 
INNER JOIN EmployeeInfo 
ON Employees.EmployeeID = Employees.EmployeeID;

Resultater:

Title          Department
Executive      HR     
Manager        Sales     
Software       Engineer  IT

FULD JOIN-kode:

SELECT * 
FROM Employees  
FULL JOIN EmployeeInfo  
ON Employees.EmployeeID = Employees.EmployeeID;

Resultater:

Griber alle rækker og kolonner fra begge tabeller, inklusive dubletter, og kombinerer dem til en hel tabel.

VENSTRE JOIN-kode:

SELECT Employees.Name, EmployeeInfo.Age
FROM Employees  
LEFT JOIN EmployeeInfo  
ON Employees.EmployeeID = Employees.EmployeeID;

Resultater:

Name              Age
Webster W.        36    
Lizzy S.          21   
Oliver T.         39

"EmployeeID"-kolonnen i "Employee"-tabellen henviser til "EmployeeID" i "EmployeeInfo"-tabellen, hvilket i det væsentlige angiver, at EmployeeID-kolonnen er forholdet mellem begge tabeller. Joins kan blive vanskelige, men samtidig ekstremt nyttige, når du sorterer gennem en større database.

Brugeren og databasen er i stand til at udveksle information med succes ved i det væsentlige at tale det samme sprog. Forespørgslerne nævnt ovenfor er de mest almindeligt anvendte af både begyndere og eksperter. At skrive MySQL-forespørgsler betragtes som den hyppigste funktion inden for databasestyringsdomænet.

Denne artikel blev gennemgået og opdateret i april 2022 af Kelsey Perkins.


  1. Planlagt vedligeholdelse af 24/7 IS-databasen i MS SQL Server

  2. Referencealias i WHERE-klausulen

  3. postgres db filer - hvilken fil repræsenterer den specifikke tabel/indeks?

  4. jsonb vs jsonb[] for flere adresser til en kunde