SELECT 1: Utvalg av data

Her skal vi sjå korleis vi kan henta ut deler av tabellen "elevar" på vha SELECT-kommandoen. Her i del 1 gjer vi bare utvalg frå ei fil, uten å behandla resultatet. I del 2 ser vi på korleis vi kan presentera summar, gjennomsnitt osv av rader, og i del 3 ser vi korleis vi kan hentar data frå to eller fleir filer vha såkalte joins.

1. Heile tabellen

Hvis vi vil ha ut alle data, så bruker vi stjerne (*) fordi vi vil ha ut alle kolonner, og ingen betingelsar, for vi vil ha alle rader:

SELECT * FROM elevar;

select alle

2. Utvalgte kolonner

Hvis vi vil ha ut bare kolonnene Navn og Alder, så skriv vi det i staden for *:

SELECT Navn, Alder FROM elevar;

select kolonner

Frå no av bruker vi *, og får derfor ut alle kolonnene. Men vi kan bruka kolonnenavn på alle kommandoane nedanfor også, om vi vil.

3. Utvalgte rader

Hvis vi vil ha ut alle som har navnet Per, så kan vi gjera det med WHERE:

SELECT * FROM elevar WHERE Navn = 'Per';

WHERE Navn = Per

Merk at vi bruker ' rundt Per. Resten av eksempela handlar alle om variantar av WHERE.

4. Utvalg med AND

WHERE kan ha fleire betingelsar. Hvis vi feks. bare vil ha ut elevar som heiter Per og som er 17 år, så kan vi kombinera to betingelsar med å bruka AND:

SELECT * FROM elevar WHERE Navn = 'Per' AND Alder = 17;

select med AND

Merk at sidan vi her bare fekk ut den eine rada, så kunne vi også gjort denne select-en vha. ID-en, slik:

SELECT * FROM elevar WHERE ID = 3;

5 Utvalg med OR

Hvis vi bruker OR, så får vi ut alle rader som oppfyller den eine eller den andre:

SELECT * FROM elevar WHERE Navn = 'Per' OR Alder = 17;

select med OR

6 Utvalg med større enn-operatoren

Hvis vi vil ha ut alle elevar som er eldre enn 16, så kan vi bruka denne større-enn-operatoren (">"):

SELECT * FROM elevar WHERE Alder > 16;

Alde > 16

Vi kan også bruka større eller lik (">="), mindre enn ("<") og mindre eller lik ("<=").

7 BETWEEN

Ein annan aktuell operator er BETWEEN. Hvis vi vil ha ut elevar som er mellom 16 og 18 år, kan vi skriva:

SELECT * FROM elevar WHERE Alder BETWEEN 16 AND 18;

Alder mellom 16 og 19

8 Liste med verdiar

Det er mulig å sjekka på ei liste med verdiar vha IN. Vil vi ha ut elevar som har hobbyen Håndball eller Sykling, kan vi skriva:

SELECT * FROM elevar WHERE Hobby IN ('Håndball','Sykling');

select med IN

9 Mønster

Så har vi også muligheten for å få ut alle som har ein hobby som endar på "ball" vha LIKE-operatoren:

SELECT * FROM elevar WHERE Hobby LIKE '%ball';

select med LIKE

Her er "%" eit såkalt wildcard, som kan stå for ein eller fleir karakterer.

10 Unike verdiar

Som siste eksempel skal vi sjå korleis vi kan få ut bare unike hobbyar, dvs ingen duplikater vha. DISTINCT-operatoren::

SELECT DISTINCT Hobby FROM elevar;

select med DISTINCT