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.