Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

SQL introduktion og basis

Lignende præsentationer


Præsentationer af emnet: "SQL introduktion og basis"— Præsentationens transcript:

1 SQL introduktion og basis

2 SQL - introduktion Databaser er ”bare” en struktur, vi kan opbevare data i I princippet kunne vi gemme data i en tekst-fil i stedet En databases virkelig force er dens evne til effektivt at kunne finde en specifik delmængde af data frem Men hvordan…? RHS – HHX (IT A)

3 SQL - introduktion SQL – Structured Query Language
Et sprog som gør det muligt at specificere en delmængde af data i databasen Delmængde med hensyn til Tabeller Felter Betingelser for værdier i felter RHS – HHX (IT A)

4 SQL - introduktion SQL er (i praksis) den gældende standard for database-sprog Man specificere hvilket data man ønsker, ikke hvordan det skal findes Forholdsvist nemt at lære og forstå RHS – HHX (IT A)

5 SQL - introduktion Ved brug af SQL kan vi
Oprette databaser og tabeller Vedligeholde data; indsætte, opdatere og slette poster i tabeller Udføre forespørgsler på data, d.v.s. finde delmængder af data Vi starter med at fokusere på, hvordan man laver forespørgsler RHS – HHX (IT A)

6 SQL - introduktion I Access kan man konstruere en forespørgsel ved hjælp af en fore-spørgsels-guide (drag-and-drop) RHS – HHX (IT A)

7 SQL - introduktion Vi vil dog lave forespørgsler som SQL sætninger (statements) Gøres ved at lave en tom forespørgsel, og skifte til SQL-visning (højre-klik i titellinie) RHS – HHX (IT A)

8 SQL - introduktion På fanen ”Opret”, klik på ”Forespørgselsdesign”
RHS – HHX (IT A)

9 SQL - introduktion Dette vindue dukker op, bare klik på ”Luk”…
RHS – HHX (IT A)

10 SQL - introduktion Højre-klik i titellinien, og vælg ”SQL-visning”
RHS – HHX (IT A)

11 SQL - introduktion Her skrives forespørgsler som SQL RHS – HHX (IT A)

12 SQL - basis Vi benytter en database med information om film som eksempel Film filmid titel land år genre oscars Skuespiller personid navn land født levende oscars Medvirker filmid personid RHS – HHX (IT A)

13 SQL - basis filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4
Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 RHS – HHX (IT A)

14 SQL - basis En basal SQL forespørg-sel ser således ud:
SELECT <feltliste> FROM <tabelnavn> Hvilke felter vil jeg have data fra Hvilken tabel skal data komme fra RHS – HHX (IT A)

15 SQL - basis SELECT titel, år FROM Film filmid titel land år genre
oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT titel, år FROM Film RHS – HHX (IT A)

16 SQL - basis SELECT titel, år FROM Film filmid titel land år genre
oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT titel, år FROM Film RHS – HHX (IT A)

17 SQL - basis SELECT titel, år FROM Film titel år E.T. 1982 Taxi 1998
Sult 1966 Leon 1994 Hard Boiled 1992 1984 Seven 1995 SELECT titel, år FROM Film RHS – HHX (IT A)

18 SQL - basis SELECT filmid, titel, land,… FROM Film filmid titel land
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT filmid, titel, land,… FROM Film RHS – HHX (IT A)

19 * betyder ”alle felter”
SQL - basis filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 * betyder ”alle felter” SELECT * FROM Film RHS – HHX (IT A)

20 SQL - basis En lidt mere kompliceret SQL forespørgsel:
SELECT <feltliste> FROM <tabelnavn> WHERE <betingelse> Hvilke felter vil jeg have data fra Hvilken tabel skal data komme fra Hvilke betingelser skal data opfylde RHS – HHX (IT A)

21 SQL - basis WHERE-delen er et logisk udtryk, der specificerer betingelser på visse felter Fem kategorier af betingelser; Sammenligning (<, > , =) Interval (< AND >) Del af en mængde Mønster match (for tekst-felter) Null (er værdien af et felt null) RHS – HHX (IT A)

22 SQL - basis Vi kan konstruere komplicerede logiske udtryk ved at kombinere de logiske ”operatorer”: AND, OR, NOT Disse udtryk kan blive svære at overskue – brug parenteser til at gøre udtryk mere overskuelige RHS – HHX (IT A)

23 SQL - basis SELECT * FROM Film WHERE år < 1990 filmid titel land år
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE år < 1990 RHS – HHX (IT A)

24 SQL - basis SELECT * FROM Film WHERE år < 1990 filmid titel land år
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE år < 1990 RHS – HHX (IT A)

25 SQL - basis SELECT * FROM Film WHERE år < 1990 filmid titel land år
genre oscars 1 E.T. USA 1982 Sci-Fi 4 3 Sult Danmark 1966 Drama 6 1984 UK 2 SELECT * FROM Film WHERE år < 1990 RHS – HHX (IT A)

26 SQL - basis SELECT titel, år, genre FROM Film WHERE år < 1990 titel
E.T. 1982 Sci-Fi Sult 1966 Drama 1984 SELECT titel, år, genre FROM Film WHERE år < 1990 RHS – HHX (IT A)

27 Opgave 1 – SQL forespørgsler
Brug Filminformation-databasen fra websiten Kør nedenstående SQL-forespørgsler på databasen SELECT * FROM Film WHERE (oscars = 1) SELECT titel, år, oscars FROM Film WHERE (land = ’USA’) SELECT titel, år, genre FROM Film WHERE (år >= 1995) SELECT * FROM Film WHERE ((oscars = 0) AND (land = ’USA’)) Formulér selv SQL-forespørgsler til at finde nedenstående data: Find alle felter for film hvor genren er ’Action’ Find alle felter for film som ikke har vundet en Oscar Find titel, år og genre for film fra efter 1993 Find titel og år for film der ikke er lavet i USA Find alle felter for film fra før 1983 som har vundet en Oscar Find alle felter for film fra enten USA eller UK som har vundet en Oscar RHS – HHX (IT A)

28 SQL - basis En interval søgning er en SQL fore-spørgsel, hvor en værdi skal ligge indenfor et givent interval SELECT * FROM Film WHERE ((år <= 1992) AND (år >= 1980)) RHS – HHX (IT A)

29 SQL - basis SELECT * FROM Film
filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE ((år<= 1992) AND (år >= 1980)) RHS – HHX (IT A)

30 SQL - basis SELECT * FROM Film
filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE ((år<= 1992) AND (år >= 1980)) RHS – HHX (IT A)

31 SQL - basis SELECT * FROM Film
filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 5 Hard Boiled Kina 1992 Action 6 1984 UK 2 SELECT * FROM Film WHERE ((år<= 1992) AND (år >= 1980)) RHS – HHX (IT A)

32 SQL - basis En anden måde at specificere en interval søgning på er at bruge BETWEEN SELECT * FROM Film WHERE år BETWEEN 1980 AND 1992 RHS – HHX (IT A)

33 SQL - basis Vi kan også lave en ”negeret” forespørgsel ved at bruge NOT BETWEEN SELECT * FROM Film WHERE år NOT BETWEEN 1980 AND 1992 RHS – HHX (IT A)

34 SQL - basis Vi kan også lave SQL forespørgsler, hvor en værdi skal tilhøre en given mængde af værdier Vi benytter IN SELECT * FROM Film WHERE genre IN (’Action’,’Drama’) RHS – HHX (IT A)

35 SQL - basis SELECT * FROM Film WHERE genre IN (’Action’,’Drama’)
filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE genre IN (’Action’,’Drama’) RHS – HHX (IT A)

36 SQL - basis SELECT * FROM Film WHERE genre IN (’Action’,’Drama’)
filmid titel land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE genre IN (’Action’,’Drama’) RHS – HHX (IT A)

37 SQL - basis SELECT * FROM Film WHERE genre IN (’Action’,’Drama’)
filmid titel land år genre oscars 3 Sult Danmark 1966 Drama 1 5 Hard Boiled Kina 1992 Action SELECT * FROM Film WHERE genre IN (’Action’,’Drama’) RHS – HHX (IT A)

38 SQL - basis Disse to forespørgsler gør det samme: SELECT * FROM Film
WHERE genre IN (’Action’,’Drama’) WHERE ((genre = ’Action’) OR (genre = ’Drama’)) RHS – HHX (IT A)

39 SQL - basis Vi kan også lave en ”negeret” forespørgsel ved at bruge NOT IN SELECT * FROM Film WHERE genre NOT IN (’Action’,’Drama’) RHS – HHX (IT A)

40 Opgave 2 – SQL forespørgsler
Brug Filminformation-databasen fra websiten Kør nedenstående SQL-forespørgsler på databasen SELECT * FROM Film WHERE ((oscars > 0) AND (oscars < 3)) SELECT * FROM Film WHERE år BETWEEN 1990 AND 1995 SELECT * FROM Film WHERE genre NOT IN (’Drama’, ’Sci-Fi’) SELECT * FROM Film WHERE oscars IN (0,2,4) Formulér selv SQL-forespørgsler til at finde nedenstående data: Find film lavet før 1980 eller efter 1990 Find film fra USA lavet mellem 1985 og 1995 Find film som har fået højst 1 Oscar, i genren ’Thriller’ eller ’Sci-Fi’ Find film lavet i USA, Kina eller Danmark Find film som har vundet 2 eller 4 Oscars, lavet før 1990 RHS – HHX (IT A)

41 SQL - basis En mønster match søgning er en SQL forespørgsel hvor en tekst skal match et givent mønster Vi bruger LIKE Det mønster som teksten skal matche kan formuleres på flere forskellige måder RHS – HHX (IT A)

42 SQL - basis Et mønster defineres ved brug af to specielle tegn: % og _
% : wildcard: enhver sekvens af nul, et eller flere tegn _ : et enkelt tegn RHS – HHX (IT A)

43 SQL - basis Mønster Betydning ’s%’ ’s_ _ _’ ’%s’ ’%s%’ ’%s_ _ _%
Enhver tekst der starter med ’S’, længde mindst 1 (’super’, ’s’, ’s123’, ’s 123’) ’s_ _ _’ Enhver tekst der starter med ’S’, længde præcis 4 (’such’, ’s123’, ’ssss’, ’s 1’) ’%s’ Enhver tekst der slutter med ’s’, længde mindst 1 (’Spurs’, ’s’, ’123s’, ’ s’, ’1 2s’) ’%s%’ Enhver tekst der indeholder ’s’, længde mindst 1 (’Spurs’, ’s’, ’bassin’, ’ s ’, ’12s34’) ’%s_ _ _% Tænk over den… RHS – HHX (IT A)

44 SQL - basis SELECT * FROM Film WHERE titel LIKE ’S%’
RHS – HHX (IT A)

45 SQL - basis SELECT * FROM Film WHERE titel LIKE ’S%’ filmid titel land
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE titel LIKE ’S%’ RHS – HHX (IT A)

46 SQL - basis SELECT * FROM Film WHERE titel LIKE ’S%’ filmid titel land
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE titel LIKE ’S%’ RHS – HHX (IT A)

47 SQL - basis SELECT * FROM Film WHERE titel LIKE ’S%’ filmid titel land
genre oscars 3 Sult Danmark 1966 Drama 1 7 Seven USA 1995 Thriller SELECT * FROM Film WHERE titel LIKE ’S%’ RHS – HHX (IT A)

48 SQL - basis SELECT * FROM Film WHERE titel LIKE ’_ _ _ _’ filmid titel
land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE titel LIKE ’_ _ _ _’ RHS – HHX (IT A)

49 SQL - basis SELECT * FROM Film WHERE titel LIKE ’_ _ _ _’ filmid titel
land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 5 Hard Boiled Kina 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE titel LIKE ’_ _ _ _’ RHS – HHX (IT A)

50 SQL - basis SELECT * FROM Film WHERE titel LIKE ’_ _ _ _’ filmid titel
land år genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult Danmark 1966 Drama Leon 1994 Thriller 6 1984 UK SELECT * FROM Film WHERE titel LIKE ’_ _ _ _’ RHS – HHX (IT A)

51 SQL - basis Vi kan også lave en ”negeret” forespørgsel ved at bruge NOT LIKE SELECT * FROM Film WHERE titel NOT LIKE ’S%’ RHS – HHX (IT A)

52 SQL - basis En null søgning er en SQL forespørgsel hvor en værdi kan være null Vi benytter IS NULL Hvad er en null værdi…? Hvis det giver mening, kan vi godt tillade at et felt har en udefineret værdi – dette kaldes null RHS – HHX (IT A)

53 SQL - basis SELECT * FROM Film WHERE land IS NULL filmid titel land år
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult <null> 1966 Drama Leon 1994 Thriller 5 Hard Boiled 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE land IS NULL RHS – HHX (IT A)

54 SQL - basis SELECT * FROM Film WHERE land IS NULL filmid titel land år
genre oscars 1 E.T. USA 1982 Sci-Fi 4 2 Taxi Frankrig 1998 Komedie 3 Sult <null> 1966 Drama Leon 1994 Thriller 5 Hard Boiled 1992 Action 6 1984 UK 7 Seven 1995 SELECT * FROM Film WHERE land IS NULL RHS – HHX (IT A)

55 SQL - basis SELECT * FROM Film WHERE land IS NULL filmid titel land år
genre oscars 3 Sult <null> 1966 Drama 1 5 Hard Boiled 1992 Action 7 Seven 1995 Thriller SELECT * FROM Film WHERE land IS NULL RHS – HHX (IT A)

56 SQL - basis Vi kan også lave en ”negeret” forespørgsel ved at bruge IS NOT NULL SELECT * FROM Film WHERE land IS NOT NULL RHS – HHX (IT A)

57 Opgave 3 – SQL forespørgsler
Brug Filminformation-databasen fra websiten Kør nedenstående SQL-forespørgsler på databasen SELECT * FROM Film WHERE titel LIKE ’%a%’ SELECT * FROM Film WHERE titel LIKE ’%n’ SELECT * FROM Film WHERE titel LIKE ’%_ _ _ _ _ %’ SELECT * FROM Film WHERE land IS NOT NULL Formulér selv SQL-forespørgsler til at finde nedenstående data: Find film med en titel der indeholder et ’i’ Find film med en titel der starter med ’A’, ’T’ eller ’S’ Find film med en titel der er kortere end 6 tegn Find film med en titel der indeholder et ’e’ og et ’r’ Find film med en titel der beståpr af mere end et enkelt ord RHS – HHX (IT A)


Download ppt "SQL introduktion og basis"

Lignende præsentationer


Annoncer fra Google