När strukturen och tabellerna är på plats med DDL använder vi DML (Data Manipulation Language) för att arbeta med själva innehållet i databasen.
DML brukar ofta förknippas med akronymen CRUD:
INSERT)SELECT)UPDATE)DELETE)INSERT INTOFör att stoppa in nya rader i en tabell använder vi INSERT INTO.
-- Lägg till en ny klass
INSERT INTO Klasser (KlassNamn)
VALUES ('TE24A');
-- Lägg till två elever i klassen med KlassID = 1
INSERT INTO Elever (Fornamn, Efternamn, Epost, KlassID)
VALUES
('Anna', 'Andersson', 'anna.a@skola.se', 1),
('Björn', 'Berg', 'bjorn.b@skola.se', 1);
SELECTSELECT är det mest använda kommandot i SQL. Det används för att ställa frågor (queries) till databasen.
SELECT * FROM Elever;
SELECT Fornamn, Epost FROM Elever;
WHERE-- Hämta bara elever som heter Anna
SELECT * FROM Elever
WHERE Fornamn = 'Anna';
-- Hämta elever vars ElevID är större än 5
SELECT * FROM Elever
WHERE ElevID > 5;
ORDER BY-- Sortera elever efter efternamn i bokstavsordning (A-Ö)
SELECT * FROM Elever
ORDER BY Efternamn ASC;
-- Sortera fallande (Ö-A)
SELECT * FROM Elever
ORDER BY Efternamn DESC;
UPDATEFör att ändra befintlig data använder vi UPDATE.
⚠️ VIKTIGT: Glöm ALDRIG
WHERE-villkoret när du körUPDATE! Om du utelämnarWHEREkommer alla rader i hela tabellen att ändras!
-- Ändra e-postadress för en specifik elev
UPDATE Elever
SET Epost = 'anna.nyepost@skola.se'
WHERE ElevID = 1;
DELETEFör att radera rader ur en tabell använder vi DELETE FROM.
⚠️ VIKTIGT: Även här måste du vara extremt försiktig med
WHERE. UtanWHEREtöms hela tabellen på data!
-- Ta bort eleven med ElevID 2
DELETE FROM Elever
WHERE ElevID = 2;
| Handling | SQL-Kommando | Kom ihåg! |
|---|---|---|
| Lägg till | INSERT INTO tabell (kolumn) VALUES (värde) |
Matcha datatyperna rätt. |
| Hämta | SELECT kolumn FROM tabell |
Använd WHERE för att filtrera. |
| Uppdatera | UPDATE tabell SET kolumn = värde WHERE ... |
Glöm inte WHERE! |
| Radera | DELETE FROM tabell WHERE ... |
Glöm inte WHERE! |