sql >> Databasteknik >  >> RDS >> Mysql

De vanligaste MySQL-frågorna

MySQL-frågor skrivs vanligtvis en gång och lindas sedan in i klassfunktioner för att minimera kodupprepning. Den här artikeln listar de 10 frågorna som används oftast i MySQL.

En fråga är i huvudsak en begäran om att information ska hämtas från en databastabell eller en kombination av tabeller. Det finns många frågespråk som kan skrivas för att utföra en rad enkla till komplexa frågor. Förfrågningar kommer att filtrera vissa kriterier baserat på den specifika data som den begärs att hitta. Det kan också automatisera datahanteringsuppgifter och delta i beräkningar. Den här guiden diskuterar de 10 vanligaste MySQL-frågorna.

Låt oss använda dessa demodatabaser för att hjälpa oss att ytterligare förstå hur varje fråga fungerar.

Anställd-ID Namn Titel
1002 Webster W. Executive
1003 Lizzy S. Ansvarig
1004 Oliver T. Programvaruingenjör
Anställd-ID Avdelning Ålder
1002 HR 36
1003 Försäljning 21
1004 IT 39

VÄLJ alla 

En enkel SELECT-fråga används för att hämta och skicka tillbaka all data som kommer från en databas. Dess syntax kan skrivas som sådan;

Kod:

SELECT *
FROM Employees;

Resultat:

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

För att välja alla tillgängliga kolumner i tabellen måste du använda "*" för att indikera att du behöver all möjlig information returnerad. För det andra, ange nyckelordet FROM för att ta emot data från databastabellen. Slutligen, kom alltid ihåg att avsluta ditt uttalande med semikolon ";" för att slutföra begäran på rätt sätt.

VÄLJ kolumn

För att få data från specifika kolumner och inte allt, vill du helt enkelt bara ange fältnamnet istället för att använda asterisken(*).

Kod:

SELECT Title
FROM Employees;

Resultat:

Title
Executive
Manager
Software Engineer

När du väljer flera kolumner från en databas ska de separeras med kommatecken. Som så;

SELECT Title, Name
FROM Employees;

WHERE-sats

När WHERE-satsen används i en SELECT-fråga, kommer dataposter att filtreras och sedan extraheras de poster som matchar villkoren/villkoren som resultat.

Kod: 

SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;

Resultat: 

1004       Oliver T.          Software Engineer 

WHERE-satsen kan ha mer än ett villkor som kan separeras genom att använda nyckelordet AND.

SKAPA tabell 

Den här frågan kan användas för att generera en ny tabell med ditt föredragna val av kolumner. När du lägger till kolumnnamn var noga med att ange deras datatyp.

Kod:

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);

Förväntade tabellresultat:

EmployeeID
Department
Department
NULL
NULL
NULL

När du kör kommandot CREATE TABLE och fyller i det med kolumntitlar skapar ovanstående fråga en "EmployeeInfo"-tabell i databasen. I huvudsak kommer varje kolumn att returnera NULL eftersom vi inte har infogat något speciellt värde. Det leder oss till vår nästa fråga, INSERT INTO.

INSERT I Query 

Detta är den vanligaste frågan för att infoga värden i en eller flera rader med nya poster i en tabell. Vi kan fylla EmployeeInfo-tabellen med några exempeldata;

Kod: 

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

Tabellresultat:

Medarbetarinformation

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

När du skriver en INSERT INTO-fråga måste kommandot VALUES vara en del av hela satsen.

UPPDATERA Fråga

Detta nyckelord används för att ändra en eller flera befintliga kolumner i en tabell. Om du använder den här frågan uppdateras tabellposter med ny data baserat på något tillstånd.

Medarbetarinformation

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

Kod: 

UPDATE EmployeeInfo
SET Age = 22
WHERE EmployeeID = 1003;

Tabellresultat: 

Medarbetarinformation

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

Efter kommandot UPDATE, använd nyckelordet SET för att alltid ange vilken eller vilka kolumner du väljer att ändra, och ange sedan exakt VAR du behöver den uppdaterade informationen tillämpad på.

RADERA FRÅN fråga

För att ta bort poster från en tabell baserat på ett eller flera villkor måste du använda DELETE FROM-satsen. När du använder villkor begränsar det antalet rader som påverkas av frågan.

Kod: 

DELETE FROM Employees
WHERE Name = ‘Lizzy’;

Tabellresultat:

Anställda

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

Som tidigare behandlats i artikeln; Användning av WHERE-villkoret bestämmer exakt var du begär att data ska filtreras bort och exekveras. Den frågan är att radera varje post från tabellen över anställda som matchar namnet  "Lizzy".

Med GROUP BY, HAVING-klausul 

GROUP BY-satsen används oftast alltid med aggregerade funktioner. Genom att använda det här nyckelordet grupperas resultatuppsättningen i en eller flera kolumner.

Nyckelordet HAVING används för att filtrera resultatuppsättningen. Helst skulle du tro att en WHERE-sats skulle införas istället, men HAVING-satsen introducerar ett villkor för aggregering.

Medarbetarinformation

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

Kod:

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

Resultat:

COUNT(Age)  EmployeeID
39   1004
36   1002  

Aggregerade funktioner (SUM, AVG &COUNT)

Det finns tre extremt vanliga aggregatfunktioner som gör att data från en tabell kan tolkas eller köra beräkningar.

  • ANTAL:returnerar antalet rader som matchar en angiven kolumn.
  • AVG:  returnerar medelvärdet för en kolumn
  • SUMMA:returnerar summan av alla värden i en vald kolumn.

EmployeeInfo

Anställd-ID Avdelning Ålder
1002 HR 36
1003 Försäljning 21
1004 IT 39

Kod för COUNT:

SELECT 
COUNT(Department)
FROM EmployeeInfo;

Resultat:

COUNT(Department):
3

Kod för AVG:

SELECT AVG(Age)
FROM EmployeeInfo;

Resultat:

AVG(Age):
32

Kod för SUM

SELECT SUM(Age)
FROM EmployeeInfo;

Resultat:

SUM(Age):
96

GÅR MED

Joins används för att sammanföra rader från minst två tabeller, baserat på en relaterad kolumn mellan tabellerna. De vanligaste övningarna är INNER, FULL och LEFT.

  • INNER Join – kombinerar raderna från olika tabeller om sammanfogningsvillkoret är sant.
  • FULL Join –  returnerar alla rader när det finns en matchning i vänster eller höger tabellposter.
  • LEFT Join – hämtar alla rader från den vänstra tabellen och de matchande posterna från den högra tabellen.

Anställda – Tabell #1(Vänster)

Anställd-ID Namn Titel
1002 Webster W. Executive 
1003 Lizzy S. Manager
1004 Oliver T. Programvaruingenjör 

EmployeeInfo – Tabell #2 (Höger)

Anställd-ID Avdelning Ålder
1002 HR 36
1003 Försäljning 21
1004 IT 39

INNER JOIN-kod: 

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

Resultat:

Title          Department
Executive      HR     
Manager        Sales     
Software       Engineer  IT

FULL GÅNG Kod:

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

Resultat:

Tar tag i alla rader och kolumner från båda tabellerna, inklusive dubbletter, och kombinerar dem till en hel tabell.

LEFT JOIN-kod:

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

Resultat:

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

Kolumnen "EmployeeID" i tabellen "Employee" hänvisar till "EmployeeID" i tabellen "EmployeeInfo", vilket i huvudsak anger att kolumnen EmployeeID är förhållandet mellan båda tabellerna. Joins kan bli knepigt men samtidigt extremt hjälpsamma när man sorterar i en större databas.

Användaren och databasen kan framgångsrikt utbyta information genom att i huvudsak tala samma språk. Frågorna ovan är de vanligaste av både nybörjare och experter. Att skriva MySQL-frågor anses vara den vanligaste funktionen inom databashanteringsdomänen.

Den här artikeln granskades och uppdaterades i april 2022 av Kelsey Perkins.


  1. Använder sp_help_schedule i SQL Server

  2. Textkomprimering i PostgreSQL

  3. Hur ringer man upp Oracle Function i Python?

  4. Kan jag ansluta till SQL Server med Windows-autentisering från Java EE-webbappen?