SELECT
SELECT * from table_navn
velger alt fra en tabell
Vi kan gjøre avanserte spørringer med select,
ofte i kombinasjon
med from
where
and
or
group by
order by
having
11 eksempler:
Spørsmål 1:
select kurs.KursNavn, COUNT(student_kurs.KID) as AntallStudenter
from kurs, student_kurs
where kurs.KID = student_kurs.KID
group by student_kurs.KID
/
-- Spørsmål 2:
select kurs.KursNavn, student.ForNavn, student.EtterNavn
from kurs, student, student_kurs
where kurs.KID = student_kurs.KID and student_kurs.SID = student.SID and
kurs.KursNavn = "Java"
/
--Spørsmål 3:
select student.ForNavn, student.EtterNavn, kurs.KursNavn
from kurs, student, student_kurs
where kurs.KID = student_kurs.KID and student_kurs.SID = student.SID and
student.SID = 3
/
--Spørsmål 4:
select student.ForNavn, student.EtterNavn, COUNT(student_kurs.SID) as
"Antall kurs"
from student, student_kurs
where student_kurs.SID = student.SID
group by student.ForNavn, student.EtterNavn
having COUNT(student_kurs.SID) >3
order by "Antall kurs" desc
/
--Spørsmål 5:
select kurs.KursNavn, avg(student_kurs.Karakter) as Gjennomsnittskarakter,
sum(student_kurs.Karakter > 4.0 )/ count(student_kurs.Karakter) * 100
as Strykprosent
from kurs, student_kurs
where kurs.KID = student_kurs.KID
group by kurs.KID
/
--Spørsmål 6:
-- AVG MAX MIN COUNT s.90
select student.ForNavn, student.EtterNavn, max(student_kurs.Karakter)
as "Beste Karakter",
min(student_kurs.Karakter) as Dårligste, avg(student_kurs.Karakter)
as Gjennomsnitt
from student, student_kurs
where student.SID = student_kurs.SID
group by student.ForNavn, student.EtterNavn
/
--Spørsmål 7:
select foreleser.ForNavn as "Lærer:", foreleser.EtterNavn
as "",
student.ForNavn as "Student:", student.EtterNavn as "",
student_kurs.Karakter
from foreleser, kurs, student, student_kurs
where foreleser.FID = kurs.FID AND kurs.KID = student_kurs.KID AND
student.SID = student_kurs.SID AND foreleser.FID = 2
group by "Lærer:", "", "Student",
"", student_kurs.Karakter
/
-- Spørsmål 8:
select kurs.KursNavn, kurs_rom.UkeDag, rom.RomNavn as Rom, kurs_rom.DagsOkt
as "Økt nummer"
from kurs_rom, rom, kurs
where rom.RID = kurs_rom.RID AND kurs.KID = kurs_rom.KID AND kurs.KID
= 5
/
--Spørsmål 9:
select student.ForNavn, student.EtterNavn, kurs_rom.UkeDag, rom.RomNavn
as Rom, kurs_rom.DagsOkt as "Økt nummer"
from kurs_rom, rom, kurs, student_kurs, student
where rom.RID = kurs_rom.RID AND kurs.KID = kurs_rom.KID AND kurs.KID
= student_kurs.KID
AND student.SID = student_kurs.SID AND student.SID = 1
order by kurs_rom.UkeDag, "Økt nummer"
/
--Spørsmål 10:
select rom.RomNavn as Rom, kurs.KursNavn, kurs_rom.UkeDag, kurs_rom.DagsOkt
as "Økt nummer"
from kurs_rom, rom, kurs
where rom.RID = kurs_rom.RID AND kurs.KID = kurs_rom.KID AND rom.RID =
1
order by kurs_rom.UkeDag, "Økt nummer"
/
--Spørsmål 11:
select foreleser.Fornavn as Lærer, foreleser.EtterNavn as "",
kurs_rom.UkeDag, kurs_rom.DagsOkt as "Økt nummer",
kurs.KursNavn, rom.RomNavn as Rom
from foreleser, kurs_rom, rom, kurs
where foreleser.FID = kurs.FID AND rom.RID = kurs_rom.RID AND kurs.KID
= kurs_rom.KID
AND foreleser.FID = 2
order by kurs_rom.UkeDag, "Økt nummer"
/
DELETE
Slette innholdet i ei rad
DELETE FROM tabell
WHERE COLUMN = en verdi
EKS:
DELETE FROM person
WHERE etternavn = "Larsen"
eller, hvis tabellen f.eks har to primær - nøkler
DELETE FROM student_kurs
WHERE KID = 6
AND SID = 4
INSERT
INSERT INTO tabell_navn (kolonne_navn, kolonne_navn)
VALUES (Verdi1, Verdi2)
Eksempel:
INSERT INTO student (Passord, ForNavn, EtterNavn, Epost, KID)
VALUES ("", "Sven", "Bisgaard", "SveBi@tellus.no",
1);
/
I eksempelet over settes Passord tomt slik "", mens primærnøkkelfeltet
som er satt til auto increment, ikke taes med i det hele. Dermed
oppdateres det automatisk.
REPLACE
for å bytte ut data i db
UPDATE
Oppdatere en tabell:
UPDATE tabell_navn
SET kolonne_navn = ny verdi
WHERE kolonne_navn = en annen verdi
Eksempel:
UPDATE student
SET Passord = 11
WHERE SID = 1
|
|