Vigtigste SQL-queries for begyndere.
Efterhånden som virksomheder og organisationer finder sig selv at håndtere hurtigt stigende mængder af data, er der et stigende behov for, at udviklere effektivt bruger databaser til at håndtere disse data. SQL, som står for Structured Query Language, er et programmeringssprog, der hjælper med at administrere data, der er gemt i relationelle databaser (en populær type database).
Hvordan får man data fra en tabel? Hvordan opretter eller sletter du en tabel? Hvordan viser du forskellige poster? Hvordan vælger man rækker, der gemmer en bestemt værdi i en kolonne? Du kan nemt gøre alt dette ved at skrive grundlæggende SQL-queries.
1. Hentning af data fra alle kolonner
En af de første SQL-queries til begyndere omhandler funktionen med at hente data fra en tabel. Forespørgslen har kun ét tegn efterfulgt af SELECT, dvs. *, der peger ud til alle kolonner i tabellen. Som følge heraf er der ikke behov for at angive navnene på alle kolonnerne. Den ekstra komponent og den vigtigste i denne forespørgsel er ‘FROM’ efterfulgt af navnet på den pågældende tabel til datahentning. For eksempel, hvis du ønsker at hente data fra en tabel ‘Employee‘, vil forespørgslen være,
SELECT *
FROM Employee;
2. Hentning af data fra bestemte kolonner
Forespørgslen ovenfor viser alle data fra tabellen Medarbejder. Hvis du kun ønsker at hente data fra bestemte kolonner, skal du angive dem efter SELECT.
I dette eksempel henter vi data fra kolonnerne EmployeeID, LastName og FirstName.
SELECT EmployeeID, LastName, FirstName
FROM Employee;
3. Filtrering af data ved hjælp af WHERE
Udover at hente data fra bestemte kolonner, kan du også filtrere data ved at angive betingelser efter WHERE
I dette eksempel er der én betingelse Location = ‘Germany’. Vi leder efter poster med en værdi Germany i kolonnen Location.
SELECT * FROM Employee
WHERE Location = 'Germany';
4. Brug DISTINCT til at hente ikke-gentagne data
Du kan placere DISTINCT efter SELECT for kun at hente én af hver type post. vi ønsker at hente poster fra kolonnerne EmployeeID og Salary. Hvis værdierne fra disse kolonner er de samme i mere end én post, returnerer forespørgslen kun én af disse poster.
SELECT DISTINCT EmployeeID,Salary
FROM Employee;
5. Filtrering af data ved hjælp af betingelser sammensat af AND
Hvis du vil filtrere data ved hjælp af mere end én betingelse, kan du bruge AND.
Den følgende SQL-sætning returnerer kun de medarbejdere fra tabellen Employee, hvis Salary er større end 10.000 OG location er lig med UK.
SELECT * FROM Employee
WHERE salary > 10000 AND Location = 'UK';
6. Filtrering af data ved hjælp af betingelser sammensat af OR
Hvis kun én af betingelserne skal være opfyldt, kan du bruge OR.
Følgende SQL-sætning returnerer kun de medarbejdere fra tabellen Employee, hvis Salary er større end 10.000 ELLER Location er lig med UK.
SELECT * FROM Employee
WHERE salary > 10000 OR Location = 'UK';
7. Hentning af data uden NULL i en bestemt kolonne
Hvis du kun ønsker at hente data fra rækker uden NULL i en bestemt kolonne, skal du bruge IS NOT NULL.
I dette eksempel er værdien i kolonnen FirstName muligvis ikke NULL. Så kun poster med en værdi gemt i kolonnen FirstName vil blive returneret. En lignende operator til IS NOT NULL er IS NULL, som kontrollerer om en værdi er lig med NULL.
SELECT EmployeeID, FirstName
FROM Employee
WHERE FirstName IS NOT NULL;
8. Sortering af data efter én kolonne
For at sortere data efter en kolonne skal du placere kolonnenavnet efter ORDER BY. Standardsorteringsmetoden er alfabetisk, men du kan også vise rækker i faldende rækkefølge ved at tilføje DESC efter navnet på kolonnen.
I dette eksempel ønsker vi at sortere dataene i kolonnerne EmployeeID og FirstName efter kolonnen FirstName.
SELECT EmployeeID, FirstName
FROM Employee
ORDER BY FirstName
9. Sortering af data efter mere end én kolonne
Du kan også sortere data efter mere end én kolonne.
I dette eksempel er posterne først sorteret efter kolonnen FirstName i faldende rækkefølge og dernæst efter kolonnen EmployeeID i stigende rækkefølge.
SELECT EmployeeID, FirstName
FROM Employee
ORDER BY FirstName DESC,EmployeeID;
10. Sammenføjning af værdier fra tekstkolonner til én streng
CONCAT-funktionen forbinder strenge.
I dette eksempel returneres de strenge, der er gemt i kolonnerne FirstName og LastName, som en enkelt kolonne af strenge med et mellemrum mellem værdien i kolonnen FirstName og værdien i kolonnen LastName.
SELECT CONCAT(FirstName, ' ', LastName)
FROM Employee;
11. Søgning efter værdier, der matcher et bestemt mønster
Du kan bruge LIKE til at hente data, der matcher et bestemt mønster. I dette eksempel ønsker vi at hente poster fra kolonne EmployeeID og FirstName, der gemmer en streng, der indeholder tegnet “a” i kolonnen FirstName (f.eks. poster med navne som David, Mark osv.)
SELECT EmployeeID, FirstName
FROM Employee
WHERE FirstName LIKE '%a%';
12. Brug af matematiske operatorer
Du kan skrive forespørgsler til at beregne værdier ved at bruge matematiske operatorer som “+”, “-“, “*” og “/.” I dette eksempel ønsker vi at beregne medarbejdernes lønforskel ved at trække værdien i kolonnen GrossSalary fra værdien i kolonnen TotalSalary.
SELECT TotalSalary - GrossSalary
FROM Employee;
13. Tilføjelse af data fra forskellige tabeller
Du kan samle poster fra forskellige tabeller ved at bruge operatoren UNION ALL. Husk at posterne skal være af samme datatype.
I dette eksempel ønsker vi at hente alle rækker med efternavne fra tabellen Employee og alle rækker med efternavne fra tabellen Student. Det vil hente alle efternavne, selvom de gentages. Hvis vi vil vælge alle efternavne uden gentagelser, ville vi bruge UNION i stedet for UNION ALL.
SELECT last_name FROM Employee
UNION ALL
SELECT last_name FROM Student;
14. Find skæringspunktet mellem datasæt
INTERSECT returnerer skæringspunktet mellem to sæt data. I dette eksempel ønsker vi kun at hente de efternavne, der er angivet i begge tabeller. For at se, hvad der er forskelligt mellem sættene, skal du bruge operatorerne MINUS eller EXCEPT.
SELECT last_name FROM Employee
INTERSECT
SELECT last_name FROM Student;
15. Sammenføjning af data fra forskellige tabeller
Du kan sammenføje tabeller ved hjælp af JOIN, inklusive INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN og CROSS JOIN
I dette eksempel ønsker vi at samle data fra tabellerne student og orders. INNER JOIN skal komme efter FROM og navnet på den første tabel, student. Efter INNER JOIN, placer navnet på den anden tabel, orders. Posterne med data fra begge tabeller matches af ON med betingelsen om at slutte sig til. Posterne i tabellen, orders, matches med posterne fra tabellen, student, hvis de har samme værdi i kolonnen student_id i tabellen student og i kolonnen student_id i tabellen orders.
SELECT student.student_id, orders.order_id, orders.order_date
FROM student
INNER JOIN orders
ON student.student_id = orders.Student_id
ORDER BY student.Student_id;
16. Optælling af antallet af rækker i en tabel
COUNT tæller antallet af rækker. I dette eksempel returnerer det antallet af værdier fra kolonnen student_id gemt i tabellen student (tallet for alle elever).
SELECT COUNT(student_id)
FROM student;
17. Beregning af gennemsnittet af værdierne i en kolonne
Du kan beregne gennemsnittet af værdierne i en kolonne ved hjælp af AVG. I dette eksempel returnerer forespørgslen den gennemsnitlige løn for alle medarbejdere i tabellen Employee.
SELECT AVG(Salary)
FROM Employee;
18. Find den maksimale værdi i en kolonne
Du kan finde den maksimale værdi gemt i en kolonne ved at bruge MAX. I dette eksempel returnerer forespørgslen den maksimale løn blandt medarbejderen.
SELECT MAX(Salary)
FROM Employee;
19. Find minimumsværdien i en kolonne
Du kan finde minimumsværdien gemt i en kolonne ved hjælp af MIN. I dette eksempel returnerer forespørgslen minimumsløn blandt medarbejderen.
SELECT MIN(Salary)
FROM Employee;
20. Fjernelse af data fra en tabel
DELETE FROM fjerner alle data fra en tabel. I dette eksempel ønsker vi at slette alle data fra tabellen Employee.
DELETE FROM Employee;
21. Indsættelse af data i en tabel
Du kan tilføje en ny post til en tabel ved at bruge INSERT INTO. Efter INSERT INTO skal du sætte navnet på tabellen og derefter i parentes navnene på tabellens kolonner. Derefter skal du sætte VALUES og derefter i parentes værdierne for kolonnerne.
I dette eksempel ønsker vi at indsætte ‘A0001’ i EmployeeID, ‘Hans’ i FirstName og ‘Hansen ‘ i LastName i tabellen Employee.
INSERT INTO Employee (EmployeeID, FirstName, LastName)
VALUES (‘A0001’, ‘Hans’, ‘Hansen’),
22. Opdatering af en kolonne i en tabel
UPDATE giver dig mulighed for at ændre data i posterne. Efter UPDATE skal du indsætte navnet på tabellen, derefter SET og derefter navnet på kolonnen, der skal ændres med “=” og ny værdi, der skal indsættes. Denne forespørgsel ændrer alle værdier i kolonnen.
I dette eksempel ønsker vi at ændre alle værdier i kolonnen Salary til 40000.
UPDATE Employee SET Salary = 40000;
23. Opdatering af en kolonne ved at filtrere poster
Men hvis du ikke vil ændre alle værdier i en kolonne, kan du tilføje WHERE med en betingelse. I betingelsen kan du angive, hvilke poster der skal ændres.
I dette eksempel ønsker vi kun at ændre værdier i kolonnen FirstName til ‘Kjeld’ for poster med EmployeeId=A0002.
UPDATE Employee
SET FirstName= 'Kjeld'
WHERE EmployeeId = A0002;
24. Oprettelse af en tabel
Du kan oprette en tabel ved at bruge CREATE TABLE. Efter CREATE TABLE skal du sætte navnet på tabellen og definere navnene på kolonnerne og deres datatyper i parentes. I dette eksempel ønsker vi at oprette tabellen Employee med to kolonner: Employee-ID med integer som datatype og FirstName begrænset til maksimalt 50 tegn.
CREATE TABLE Employee(EmployeeID int, Firstname varchar(50));
25. Sletning af en tabel
Du kan slette en tabel ved at bruge DROP TABLE. Du skal blot sætte navnet på den tabel, du vil slette, efter DROP TABLE. I dette eksempel ønsker vi at slette tabellen Employee.
DROP TABLE Employee;
Resumé
Forespørgslerne/queries beskrevet ovenfor er de mest almindeligt anvendte af både begyndere og professionelle. Disse forespørgsler skal du bruge for at oprette eller slippe en tabel, indsætte data i en tabel, opdatere data eller fjerne data fra en tabel.
Vil du læse mere og best practice når det kommer til SQL programmering? – Så læs vores artikel om Hvordan man bedst skriver SQL kode lige her!
God fornøjelse!
Skriv en kommentar
Want to join the discussion?Feel free to contribute!