SQLite-kommandon
Last updated
Last updated
Skapar en tabell.
Ovanstående skapar tabellen users med kolumnerna id, name, password och email.
INTEGER betyder att kolumnen bara kan innehålla siffror, på samma sätt som en integer-variabel i C#..
TEXT betyder att kolumnen bara kan innehålla text, lite som en string.
PRIMARY KEY betyder att det är värdet i den kolumnen som är unikt och används för att identifiera varje rad.
AUTOINCREMENT betyder att om man lägger till en rad i tabellen utan att ange ett värde för denna kolumn så ges den ett automatiskt nytt värde.
NOT NULL betyder att man inte får lämna kolumnen tom.
id🔑 | name | password | |
---|---|---|---|
Raderar en tabell.
Gör ändringar i en existerande tabell
Byter namn på tabellen.
Lägger till en ny kolumn
Tar bort en kolumn (och all data som finns i den). Fungerar inte för alla kolumner – till exempel kan man inte ta bort de som är primärnycklar.
Byter namn på en kolumn
Lägger till en rad i en tabell.
Ovanstående stoppar in en rad i tabellen users.
(name,password,email) betyder att det är de tre kolumnerna som värden ska stoppas in i.
VALUES('Mikael Bergström','12345','fake@bullshit.com') betyder att texten "Mikael Bergström" läggs in i den första angivna kolumnen (name), "12345" läggs in i den andra kolumnen (password) och att "fake@bullshit.com" läggs in i den tredje (email).
En av tabellens fyra kolumner, "id", anges inte och får inget värde. Eftersom den är AUTOINCREMENT får den ändå ett värde, automatiskt.
Observera att man använder ' för att avgränsa texter (strings).
Hämtar data från en tabell
Ovanstående hämtar alla rader och alla kolumner från tabellen.
Ovanstående hämtar alla rader, men bara kolumnerna name och email.
Gör att kolumner kan ges nya namn i resultatet.
Gör att man kan vara mer specifik med vilken eller vilka rader man vill läsa av.
Ovanstående hämtar bara kolumnerna name och email, och bara de rader där kolumnen id har värdet 0.
Gör att man kan sätta ihop flera olika kriterier i en WHERE.
Räknar antalet rader som innehåller ett värde.
Tar bort en eller flera rader från en tabell, baserat på ett eller flera kriterier.
Kriterierna anges via WHERE, precis som för SELECT.
Ändrar information i en eller flera celler, baserat på ett eller flera kriterier.
Ovanstående kod ändrar email-kolumnens data till "deep@fake.com" för alla rader där id-kolumnen innehåller en nolla.
En viktig funktion i relationella databaser, som MySQL eller SQLite, är relationer. Relationer är ett sätt att slippa dubletter av data. Ett exempel kan vara en databas där man håller reda på elever och klasser. För varje elev ska databasen hålla reda på förnamn, efternamn och personnummer. För varje klass ska databasen hålla reda på klassens namn och vilken lärare som är klassens mentor.
Dessutom behöver databasen hålla reda på vilken elev som går i vilken klass. Var lagras den informationen? Ett sätt vore att ha allting i en enda jättetabell:
students
Nackdelen blir att vi får dubletter – klassnamnen och mentorernas namn står dubbelt! För att undvika detta skapar man generellt istället två olika tabeller – en för elever och en för klasser – som har en relation.
students
classes
Här är relationen att kolumnen classid i tabellen students innehåller siffror som hör ihop med kolumnen id i tabellen classes. Observera att det är classes-tabellens primärnyckel som används.
För att hindra användare från att lägga in icke-giltiga värden classid-kolumnen så kan relationen skrivas in i tabellens definition när den skapas (Det kan INTE göras i efterhand!):
Med andra ord lägger man helt enkelt till FOREIGN KEY(x) REFERENCES table(y)
för att koppla kolumnen x till kolumnen y i tabellen "table"
Joins är ett sätt att sätta ihop tabeller som har en relation, när man efterfrågar data med SELECT.
Det finns flera sorters JOIN, men INNER JOIN är den vanligaste. Man anger först som vanligt vilka kolumner man vill ha med, sedan FROM en första tabell. Sedan lägger man till INNER JOIN en annan tabell, och så ON vilka kolumner som ska kopplas ihop.
Observera att man alltså måste specifiera vilken tabell varje kolumn kommer från i första delen av SELECT-kommandot, framför allt när kolumner i båda tabellerna har samma namn.
id🔑 | name | password | |
---|---|---|---|
id🔑 | name | password | |
---|---|---|---|
name | |
---|---|
namn |
---|
name | |
---|---|
id🔑 | name | password | |
---|---|---|---|
id🔑 | name | surname | pnumber | classname | mentor |
---|---|---|---|---|---|
id🔑 | name | surname | pnumber | classid |
---|---|---|---|---|
id🔑 | name | mentor |
---|---|---|
student_name | class |
---|---|
1
Mikael Bergström
12345
fake@bullshit.com
1
Mikael Bergström
12345
fake@bullshit.com
2
Jacob Marley
money$
moneyman@scroogemarley.com
Mikael Bergström
fake@bullshit.com
Jacob Marley
moneyman@scroogemarley.com
Mikael Bergström
Jacob Marley
Mikael Bergström
fake@bullshit.com
0
Mikael Bergström
12345
deep@fake.com
1
Jacob Marley
money$
moneyman@scroogemarley.com
0
Mikael
Bergström
XXXXXX-XXXX
TE00A
Mira Belle
1
Mohammad
Mohammadi
XXXXXX-XXXX
TE00B
Kevin McAllister
2
Anna-Karin
Karlsson
XXXXXX-XXXX
TE00A
Mira Belle
1
Mikael
Bergström
XXXXXX-XXXX
1
2
Mohammad
Mohammadi
XXXXXX-XXXX
2
3
Anna-Karin
Karlsson
XXXXXX-XXXX
1
1
TE00A
Mira Belle
2
TE00B
Kevin McAllister
Mikael
TE00A
Mohammad
TE00B
Anna-Karin
TE00A