Frågespråk och SQL. nikos dimitrakas rum 2423

Storlek: px
Starta visningen från sidan:

Download "Frågespråk och SQL. nikos dimitrakas rum 2423"

Transkript

1 Frågespråk och SQL rum 2423 Connolly/Begg (3rd edition) Kapitel 5, 6 (och lite överallt) (4.1, 4.2) (4th edition) Kapitel 5, 6 (och lite överallt) (4.1, 4.2) (5th edition) Kapitel 6, 7, 8.3 (och lite överallt) (5.1, 5.2) (6th edition) Kapitel 6, 7, 8.3 (och lite överallt) (5.1, 5.2) 1 Frågespråk Ett språk för att ställa frågor mot en relationsdatabas. Ett slutet språk: Ett uttryck tar emot en eller flera tabeller och resulterar i en ny tabell. Procedurella vs. Deklarativa frågespråk Procedurella - Man berättar hur, inte vad! (Relationsalgebra) Deklarativa Man berättad vad, inte hur! (Relationskalkyl/Tuppelkalkyl) 2

2 Relationsalgebra Procedurellt språk Består av ett antal operatorer/operationer Varje operation tar en eller två källor och returnerar ett resultat som kan i sin tur bli källa till en annan operation Operationer exekveras i en följd Exempel på operationer: Projektion Π Selektion Join Union Dubblettfritt (bygger på mängdläran) 3 Tuppelkalkyl/Relationskalkyl Ett deklarativt språk som bygger på predikatlogik Databasen betraktas som en tuppelvärld och man letar efter tuppler som kan få ett villkor att bli sant 4

3 SQL Structured Query Language olika förslag till databasspråk för relations-dbms har förekommit, QUEL, SQL SQL fick tidigt dominerande ställning, IBM internationella standarden för data sub-language för relations- DBMS kallas SQL, togs publicerade ISO en standard som kallas SQL2 (eller SQL92) standarden överensstämmer till stora delar med aktuella SQLdialekter för de vanligaste DBMS 1999 publicerade ISO en ny version av standarden, SQL1999 (eller SQL3). Denna standard innehåller en del objektorienterade funktionalitet & 2006 kom de senaste versionerna. De introducerade en hel del XML-funktionalitet. 5 SQL Uppdelning Databeskrivning, SQL-DDL (Data Definition Language) Databearbetning, SQL-DML (Data Manipulation Language) Behörighet, SQL-DCL (Data Control Language) Egenskaper Case insensitive (nyckelord, tabellnamn, kolumnnamn) Relationally complete - kan uttrycka allt som går att uttrycka i relationsalgebran Standarden består av mycket mer än bara språket och språket består av mycket mer än bara ett frågespråk 6

4 SQL - DDL CREATE TABLE, skapa tabell ALTER TABLE, ändra tabell DROP TABLE, ta bort tabell CREATE SCHEMA CREATE DATABASE (även CATALOG) CREATE INDEX, skapa index DROP INDEX, ta bort index CREATE TRIGGER DROP TRIGGER CREATE VIEW, skapa vy DROP VIEW, ta bort vy CREATE PROCEDURE DROP PROCEDURE 7 SQL-DML INSERT, lägg till UPDATE, ändra DELETE, ta bort COMMIT, spara ROLLBACK, återställ SELECT, utsökning (relationsalgebra) 8

5 SQL-DCL CREATE USER, skapa användare CREATE SCHEMA DROP USER, ta bort användare DROP SCHEMA GRANT, ge behörighet REVOKE, ta bort behörighet 9 Exempel DDL, DML Skapa en databas från konceptuell modell till färdiga tabeller Fylla på med data mata in data ändra data ta bort data Ställa frågor mot databasen enkla frågor aggregerade frågor 10

6 Konceptuell modell Logisk modell Relationsdatabas Hund namn 1..1 UNIQUE ras 0..1 ägare * jagar 0..* Katt namn 1..1 UNIQUE färg Konceptuell modell Logisk modell Relationsdatabas CREATE TABLE Hund ( hid NUMBER PRIMARY KEY, namn STRING NOT NULL UNIQUE, ras STRING, ägare STRING NOT NULL) 12

7 Konceptuell modell Logisk modell Relationsdatabas CREATE TABLE Katt ( kid NUMBER PRIMARY KEY, namn STRING NOT NULL UNIQUE, färg STRING) 13 Konceptuell modell Logisk modell Relationsdatabas CREATE TABLE Jakt ( hundid NUMBER, katt NUMBER, PRIMARY KEY (hundid, katt), FOREIGN KEY (hundid) REFERENCES Hund (hid) ON DELETE CASCADE ON UPDATE CASCADE) 14

8 Konceptuell modell Logisk modell Relationsdatabas ALTER TABLE Jakt ADD FOREIGN KEY (katt) REFERENCES Katt ON DELETE RESTRICT ON UPDATE CASCADE 15 ALTER TABLE Kan även ta bort kolumner eller constraints. Constraints kan namnges. ALTER TABLE Hund ADD CONSTRAINT dumregel UNIQUE(ägare), ADD dumkolumn INTEGER Ta bort den dumma regeln och den dumma kolumnen! ALTER TABLE Hund DROP CONSTRAINT dumregel, DROP dumkolumn 16

9 DROP TABLE Tar bort en tabell Ta bort tabellen Bil! DROP TABLE Bil Ta bort tabellen Bil och alla referenser! DROP TABLE Bil CASCADE Tar bort tabellen bil samt andra databasobjekt som beror på tabellen bil. 17 INTEGER SMALLINT NUMBER DECIMAL(p[,q]) FLOAT BIT BOOLEAN CHAR(n) VARCHAR(n) STRING(n) TEXT DATE TIME TIMESTAMP MONEY Datatyper i SQL CLOB (Character Large OBject) BLOB (Binary Large OBject) XML Varierar från DMBS till DBMS! 18

10 INSERT Används för att lägga till rader i en existerande tabell Det finns två sätt med specificerade värden via SELECT Man kan ange ett värde för varje kolumn i den förbestämda ordningen Man kan ange värden endast för vissa kolumner i valfri ordning Man kan lägga till en eller flera rader med ett kommando 19 INSERT med specificerade värden Lägg till en rad i tabellen Hund med värden 151, Woolfy, Pudel, Johan INSERT INTO Hund VALUES (151, Woolfy, Pudel, Johan ) INSERT INTO Hund (ras, hid, namn, ägare) VALUES ( Pudel, 151, Woolfy, Johan ) Lägg till en rad i tabellen Hund med värden 21, Jumpy, Lisa. Alltså ingen ras! INSERT INTO Hund VALUES (21, Jumpy, NULL, Lisa ) INSERT INTO Hund (namn, hid, ägare) VALUES ( Jumpy, 21, Lisa ) 20

11 INSERT med specificerade värden Lägg till flera rader med en gång (fungerar inte med alla databashanterare, men ingår i standarden): INSERT INTO Hund VALUES (124, Scrapy, NULL, Lisa ), (125, Lucky, Rottweiler, Nils ), (126, Ruddy, Pudel, Lisa ) 21 INSERT via SELECT Antag att vi har en tabell Temp(hund, antaljakter) där vi vill lägga in hund-id och totalt antal jagade katter. Vi kan då räkna fram innehållet till tabellen temp med en SELECT-sats. Vi skall se hur man skriver sådana satser snart! SELECT-satsens resultat blir nya rader i tabellen temp. INSERT INTO Temp(hund, antaljakter) SELECT-sats 22

12 INSERT och främmande nycklar Lägger man in ett värde i en kolumn som är främmande nyckel måste detta värde finnas i den relaterade tabellen. Annars misslyckas inmatningen. Lägg till en rad i tabellen Jakt med värden 125 och 22: INSERT INTO Jakt (hundid, katt) VALUES (125, 22) Fungerar förutsatt att det finns en rad i tabellen Hund med id = 125 och en rad i tabellen Katt med kid = UPDATE Ändrar innehållet i ett eller flera attribut på noll eller flera rader Ändra färgen för alla vita katter till brunt! UPDATE Katt SET färg = brunt WHERE färg = vitt 24

13 DELETE Används för att ta bort en eller flera rader i en tabell Ta bort alla hundar som ägs av Johan DELETE FROM Hund WHERE ägare = Johan Ta bort alla gråa katter DELETE FROM Katt WHERE färg = grått Vad händer med främmande nycklarna? 25 Hund hid namn ras ägare 101 Barky Dalmatin Johan 102 Woolfy Dalmatin Johan 103 Beasty Dobermann Maria 104 Scrapy Lisa 105 Lucky Foxterrier Nils 107 Ruddy Labrador Lisa 108 Grumpy Pudel Johan 110 Slicky Dalmatin Peter 111 Jumpy Pudel Lisa Jakt hundid katt Katt kid namn färg 11 Kitty grått 12 Smokey svart 13 Misty vitt 14 Tiger svart 16 Patches svart 17 Fluffy grått 18 Muffin vitt 19 Missy 20 Lucy brunt 21 Lacey 26

14 SELECT FROM WHERE Väljer ut data från en eller flera tabeller när alla villkor blir uppfyllda. Ta fram namn och ras för alla hundar som ägs av Johan! SELECT namn, ras FROM Hund WHERE ägare = Johan Går igenom tabellen rad för rad och tar med i resultatet de rader som uppfyller villkoret. 27 SELECT vs Relationsalgebra Ta fram namn och ras för alla hundar som ägs av Johan! Π namn, ras ägare = Johan Hund projektion selektion SELECT namn, ras FROM Hund WHERE ägare = Johan 28

15 SELECT vs Tuppelkalkyl Ta fram namn och ras för alla hundar som ägs av Johan! {t.namn, t.ras Hund(t) t.ägare = 'Johan'} resultatet villkor SELECT namn, ras FROM Hund WHERE ägare = Johan 29 WHERE-klausulen Kan innehålla: jämförelseoperatorerna =, <>, >, >=, <, <= logiska operatorerna t ex AND, OR och NOT parenteser för att styra utvärderingen BETWEEN för att testa intervall LIKE för att matcha mönster % _ (eller *?) IN och EXISTS för att hantera mängder IS NULL SELECT * FROM Hund WHERE (ras = Dalmatin OR ras = Pudel ) AND ägare <> Peter AND namn LIKE %ky 30

16 ORDER BY klausulen Används för att sortera resultatet i stigande ordning: ASC (default) i fallande ordning: DESC SELECT ras, namn FROM Hund WHERE ägare <> Johan ORDER BY ras DESC, namn ASC 31 SELECT DISTINCT Används för att ta bort dubbletter från resultatet Ta fram alla hundraser i stigande ordning! SELECT DISTINCT ras FROM Hund ORDER BY ras 32

17 NULL Hur skall NULL tolkas? Visa alla vita katter! SELECT kid FROM Katt WHERE färg = vitt ; Visa alla icke-vita katter! SELECT kid FROM Katt WHERE färg <> vitt ; Använd IS NULL eller IS NOT NULL 33 SELECT från flera tabeller SQL vs relationsalgebra Ta fram namn för de personer som äger en hund som jagar en katt! Π ägare hundid = hid (Hund x Jakt) Π ägare (Hund hundid = hid Jakt) projektion join-villkor selektion SELECT ägare FROM Hund, Jakt WHERE hundid=hid SELECT Hund.ägare FROM Hund, Jakt WHERE Jakt.hundid = Hund.hid Kvalificering av kolumner: tabellnamn.kolumnnamn 34

18 SELECT från flera tabeller SQL vs tuppelkalkyl Ta fram namn för de personer som äger en hund som jagar en katt! {t.ägare Hund(t) ( t2)(jakt(t2) t.hid = t2.hundid) SELECT Hund.ägare FROM Hund, Jakt WHERE Jakt.hundid = Hund.hid 35 Alias Använd ett alias istället för tabellnamnet för att undvika skriva långa tabellnamn om och om igen skilja mellan olika instanser av samma tabell SELECT h.namn, h.ras FROM Hund AS h WHERE h.ägare = Johan Obs! Hund kan inte användas i SELECT och WHERE, bara h 36

19 Alias, exempel Vilka två hundar har samma ägare? SELECT h1.namn, h2.namn FROM Hund AS h1, Hund h2 WHERE h1.ägare = h2.ägare AND h1.hid < h2.hid 37 Ett till exempel Vilka två hundar jagar samma katt? SELECT DISTINCT h1.namn, h2.namn FROM Hund h1, Hund h2, Jakt j1, Jakt j2 WHERE h1.hid = j1.hundid AND h2.hid = j2.hundid AND j1.katt = j2.katt AND h1.hid < h2.hid 38

20 IN och EXISTS Används för att jobba med mängder (oftast genererade med nästlade SELECT-satser) Vilka hundar jagar en katt med id 12? SELECT namn FROM Hund WHERE hid IN (SELECT hundid FROM Jakt WHERE katt=12) 39 IN och EXISTS Vilka hundar jagar en katt med id 12? SELECT namn FROM Hund WHERE EXISTS (SELECT hundid FROM Jakt WHERE katt=12 AND hundid=hid) 40

21 Ett till exempel Vilka två hundar jagar samma katt? SELECT h1.namn, h2.namn FROM Hund h1, Hund h2 WHERE h1.hid < h2.hid AND h1.hid IN (SELECT hundid FROM Jakt WHERE katt IN (SELECT katt FROM Jakt WHERE hundid=h2.hid)) 41 IN och EXISTS med negation Vilka katter jagas inte? SELECT namn FROM Katt WHERE kid NOT IN (SELECT katt FROM Jakt) SELECT namn FROM Katt WHERE NOT EXISTS (SELECT * FROM Jakt WHERE katt = kid) 42

22 Division i SQL Vilka hundar jagar alla vita katter? (Division) SELECT namn FROM Hund WHERE NOT EXISTS (SELECT * FROM Katt WHERE färg = vitt AND kid NOT IN (SELECT katt FROM Jakt WHERE hundid=hid)) 43 Division i SQL Vad har man i de tre nivåerna? Nivå 1 Det som vi vill ha i resultatet. Inget annat. Nivå 2 Det som utgör alla. Har ingen direkt koppling till nivå 1. Nivå 3 Det som kombinerar det vi letar efter (som finns i nivå 1) och det som utgör alla (som finns i nivå 2). 44

23 Andra mängdoperationer UNION EXCEPT (MINUS) INTERSECT(ION) Kom ihåg unionskompatibilitet! 45 Unionskompatibilitet Mängdoperationer som UNION, DIFFERENCE och INTERSECTION kräver att de två mängder som ingår i operationen är kompatibla. Unionskompatibilitet innebär: Lika många kolumner Kolumner i samma ordning Kolumner av samma datatyper 46

24 UNION exempel Vilka hundar jagar katt 12 eller katt 17? SELECT namn FROM Hund, Jakt WHERE hid = hundid AND katt = 12 UNION SELECT namn FROM Hund, Jakt WHERE hid = hundid AND katt = INTERSECT exempel Vilka hundar jagar både katt 12 och katt 17? SELECT namn FROM Hund, Jakt WHERE hid = hundid AND katt = 12 INTERSECT SELECT namn FROM Hund, Jakt WHERE hid = hundid AND katt = 17 48

25 EXCEPT exempel Vilka hundar jagar inga katter? SELECT namn FROM Hund EXCEPT SELECT namn FROM Hund, Jakt WHERE hid = hundid SELECT namn FROM Hund WHERE hid NOT IN (SELECT hundid FROM Jakt) 49 Mängdoperationer Mängdoperationer kan i vissa fall uttryckas utan mängdoperatorer. Union kan uttryckas med hjälp av OR-villkor Snitt kan uttryckas med hjälp av AND-villkor Differens kan uttryckas med hjälp av NOT-villkor 50

26 Aggregatfunktioner COUNT(*) räknar antalet rader i en tabell COUNT(att) räknar antalet värden i en kolumn/attribut MAX(att) ger det största värdet i en kolumn/attribut MIN(att) ger det minsta värdet i en kolumn/attribut Bara numeriska kolumner/attribut: SUM(att) summerar värdena i en kolumn/attribut AVG(att) tar genomsnittet av värdena i en kolumn/attribut VARIANCE(att) räknar variationen av värdena i en kolumn/attribut STDEV(att) räknar standardavvikelse av värdena i en kolumn/attribut 51 Exempel på funktioner Hur många jakter finns det i databasen? SELECT COUNT(*) FROM Jakt Hur många katter jagas? SELECT COUNT(DISTINCT katt) FROM Jakt 52

27 Nya kolumnnamn Skapar man kolumner med aggregatfunktioner, har de ursprungligen inget namn. Hur många katter jagas av hund 101 eller hund 103? SELECT COUNT(DISTINCT katt) AS kattantal FROM Jakt WHERE hundid = 101 OR hundid = 103 Notera att COUNT(DISTINCT) inte stöds i Access. 53 GROUP BY Grupperar rader på angivna kolumner. Rader grupperas i mindre grupper så att inom varje grupp alla rader har samma värden på de angivna kolumnerna. Kombineras oftast med aggregatfunktionerna. Räkna antal katter av varje färg! SELECT färg, COUNT(kid) AS antal FROM Katt GROUP BY färg; Alla icke aggregerade kolumner som förekommer i SELECTklausulen måste finnas med i GROUP BY klausulen! 54

28 GROUP BY Exempel Hur många katter jagas av varje hund? SELECT namn, COUNT(katt) AS antal FROM Jakt, Hund WHERE hundid=hid GROUP BY hundid, namn ORDER BY antal DESC, namn ASC 55 HAVING Används för att sätta villkor på resultatet av aggregatfunktioner (villkor på grupper) Vilka katter jagas av minst 3 hundar? SELECT katt FROM Jakt GROUP BY katt HAVING COUNT(hundid) > 2 56

29 HAVING Vilka katter jagas av minst 3 hundar? Visa namnet! SELECT namn FROM Jakt, Katt WHERE katt=kid GROUP BY namn HAVING COUNT(hundid) > 2 57 HAVING Exempel Hur många katter av varje färg jagar varje hund? Visa bara hundar som jagar minst 3 katter! SELECT Hund.namn, färg, COUNT(kid) AS antal FROM Jakt, Hund, Katt WHERE hundid=hid AND katt=kid AND hundid IN (SELECT hundid FROM Jakt GROUP BY hundid HAVING COUNT(katt)>2) GROUP BY Hund.namn, färg 58

30 Nästlade SELECT-satser Det är också möjligt att nästla satser i FROM-klausulen Ta fram alla personer som äger endast 1 hund! (utan att använda HAVING, EXISTS eller IN) SELECT ägare FROM (SELECT ägare, COUNT(hid) AS antal FROM Hund GROUP BY ägare) AS nytabell WHERE antal = 1 59 Utan COUNT(DISTINCT) COUNT(DISTINCT) utan COUNT(DISTINCT): Hur många katter jagas av hund 101 eller hund 103? SELECT COUNT(katt) AS kattantal FROM (SELECT DISTINCT katt FROM Jakt WHERE hundid = 101 OR hundid = 103) 60

31 Ett till exempel på nästlade satser Ta fram den eller de personer som äger de flesta hundar! SELECT ägare FROM Hund GROUP BY ägare HAVING COUNT(hid) = (SELECT MAX(antal) FROM (SELECT ägare, COUNT(hid) AS antal FROM Hund GROUP BY ägare) AS nytabell) 61 Mera nästlade SELECT-satser Det är också möjligt att nästla satser i SELECT-klausulen under förutsättningen att de endast producerar en rad och en kolumn. Ta fram alla hundar och antalet katter de jagar! Ta med samtliga hundar! SELECT namn, (SELECT COUNT(*) FROM Jakt WHERE hundid = hid) AS antal FROM Hund Här blir hela den nästlade satsen ett värde i varje rad i resultatet. Det finns ingen WHERE-klausul så alla hundar kommer med. 62

32 Aritmetiska uttryck +, -, *, / kan användas direkt i SELECT-satser Om varje hund kostar 500 kronor per månad, vad är då kostnaden för varje hundägare? SELECT ägare, COUNT(hid)*500 AS hundkostnad FROM Hund GROUP BY ägare 63 JOIN-operationer INNER JOIN Tar med alla kombinationer av rader från båda tabellerna då villkoret stämmer LEFT OUTER JOIN Tar med alla rader från tabellen till vänster och de rader från tabellen till höger som uppfyller villkoret RIGHT OUTER JOIN Tar med alla rader från tabellen till höger och de rader från tabellen till vänster som uppfyller villkoret FULL OUTER JOIN Tar med alla rader från båda tabeller CROSS JOIN UNION JOIN 64

33 INNER JOIN Visa alla hundar som jagar katter! SELECT namn FROM Hund INNER JOIN Jakt ON (hid=hundid) 65 OUTER JOIN Visa alla katter och vilka hundar som jagar dem! SELECT kid, hundid FROM Katt LEFT OUTER JOIN Jakt ON (kid=katt) Visa alla katter och alla hundar och alla jaktförhållanden! SELECT kid, hundid FROM Katt LEFT OUTER JOIN Jakt ON (kid=katt) FULL OUTER JOIN Hund ON (hundid=hid) 66

34 SELECT-satsens syntax SELECT [DISTINCT] <attributlista> FROM <tabellista> [WHERE <villkorsuttryck>] [GROUP BY <kolumnlista> [HAVING <villkorsuttryck>]] [ORDER BY <kolumnlista>]; 67 VIEWS En vy (view) är en virtuell tabell som finns för användarna, men skapas med data från andra tabeller. Skapa en vy med alla hundägare och antalet hundar de äger! CREATE VIEW Hundägande AS SELECT ägare, COUNT(hid) AS antal FROM Hund GROUP BY ägare SELECT ägare, antal FROM Hundägande WHERE antal > 1 68

35 Fördelar med VIEWS Samma data kan betraktas av olika användare på olika sätt (på samma gång) Användaren kan få en förenklad bild av databasen - mindre komplex DML Flexibel behörighetskontroll Optimering (materialized views) Återanvändning 69 INDEX Ett index skapas för att snabbt kunna komma åt data, genom att : begränsa kolumner sortera om rader Skapa ett index på kattfärgerna! CREATE INDEX kattfärg ON Katt(färg, kid) Skapa ett index på hundägarna och ras! CREATE INDEX hundägare ON Hund(ägare, ras) 70

36 VIEWS & INDEX Tänk på att dessa tar plats och kräver tid för att hålla uppdaterade! Skapa endast de som verkligen behövs! 71 Domän Constraint CHECK Constraint kön STRING(1) CHECK (kön IN ( m, k ) ) DOMAIN kön MK CREATE DOMAIN MK AS STRING(1) CHECK VALUE IN ( m, k ) CREATE DOMAIN COUNTRYTYPE AS STRING(50) CHECK VALUE IN (SELECT namn FROM land) 72

37 General Constraint Assertion CREATE ASSERTION könkoll CHECK (NOT EXISTS (SELECT kön FROM person WHERE kön NOT IN ( m, k ))) 73 Enterprise Constraint ECA Event Condition Action Trigger CREATE TRIGGER triggernamn AFTER/BEFORE händelse ON tabellnamn REFERENCING ny & gammal FOR EACH ROW/STATEMENT WHEN villkor logik att utföras 74

38 CREATE TRIGGER Räkna hur många rottweiler samma ägare äger vid inmatning av en ny rottweiler och gör något. CREATE TRIGGER hundantalkoll BEFORE INSERT ON HUND REFERENCING NEW AS n FOR EACH ROW WHEN n.ras = rottweiler IF (SELECT COUNT(*) FROM Hund WHERE ras= rottweiler AND ägare = n.ägare) > 5 THEN gör något. 75 CREATE / DROP USER CREATE USER Skapa användare Skapa användaren Kalle! CREATE USER Kalle DROP USER Ta bort användare Ta bort användaren Kalle! DROP USER Kalle 76

39 GRANT Beviljar ett subjekt (användare) vissa privilegier (läsa/skriva/etc) på ett objekt (tabell/vy/etc) Ge Kalle behörighet att titta i tabellen Hund! GRANT SELECT ON Hund TO Kalle Förutsätter att man själv har behörighet att ge denna behörighet! 77 GRANT GRANT privilegier ON objekt TO subjekt [WITH GRANT OPTION] Privilegier SELECT, INSERT, UPDATE, DELETE, REFERENCES, USAGE, ALL PRIVILEGES, roll Specifika kolumner: UPDATE(adress) Objekt Tabell, vy, domän, etc Subjekt Användare, grupp, roll, PUBLIC WITH GRANT OPTION Tillåt subjektet att ge bort samma behörighet vidare 78

40 REVOKE Ta bort vissa privilegier (läsa/skriva/etc) från ett subjekt (användare) Ta bort Kalles behörighet att titta i tabellen Hund! REVOKE SELECT ON Hund TO Kalle Man måste ha gett användaren behörigheten för att få ta bort den! 79 Tumregler Tänk ut vad ni vill göra innan ni börjar skriva satsen. Tänk ett steg i taget. Dela upp ett komplext problem till flera mindre problem som kan lösas var för sig. Använd vyer vid behov. Kontrollera vilka kolumner som finns och hur främmande nycklar länkar tabellerna. Kvalificera kolumnerna vid behov. Tänk på ordningen som villkor utvärderas (OR, AND). Styr med parenteser. Ta inte med onödiga tabeller eller kolumner. 80

41 SQL Validator Ni kan kontrollera om era SQL-satser följer standarden här: 81 Nästa steg Quiz 2 Lektionsuppgifter lektion 4-5 Öva/Experimentera med exempeldatabaserna Kompendium om Access Kompendium om MySQL 82

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3. Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Relationsalgebra Tilldelning := Relationsalgebran är sluten: Med hjälp av dessa operatorer kan andra (icke-primitiva) operatorer

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 3 Kap. 4 Kap. 5 utom

Läs mer

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information

Läs mer

Databasutveckling Introduktion till SQL och TSQL

Databasutveckling Introduktion till SQL och TSQL Databasutveckling Introduktion till SQL och TSQL Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till SQL SELECT satsen, enkla frågor Hämta specifika kolumner Alias

Läs mer

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Introduktion Enkla frågor (queries) Hämta en specifik kolumn Sök Sammanfattning

Läs mer

Structured query language (SQL)

Structured query language (SQL) Structured query language SQL) Varför SQL? SQL är ett standardspråk som är oberoende av databashanteringssystemen som finns på marknaden. Med andra ord kommer du kunna arbeta mot nästan alla sorters relationsdatabaser

Läs mer

Design och underhåll av databaser

Design och underhåll av databaser Design och underhåll av databaser 1. Modell av verkligheten 2. Normalformer 3. Introduktion till DDL 4. Skapa databaser 5. Skapa tabeller 6. Skapa index 7. Restriktioner 8. Ta bort databaser, tabeller

Läs mer

Övningar i SQL. SQLAccess.doc Ove Lundgren 2000-11-14

Övningar i SQL. SQLAccess.doc Ove Lundgren 2000-11-14 Övningar i SQL Övningar i SQL Använd Access för att öva SQL (= Structured Query Language) Skapa tabeller med SQL 1. Ny databas: SQLÖVNING Klicka: Frågor > Ny > Design > OK >Stäng > SQL Radera ordet SELECT.

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LIVE Exempelkod från föreläsningen Plushögskolan Frågeutveckling inom MSSQL - SU14 Här kommer exempelkoden jag använde under föreläsningen Exemplen Constraints... 2 Transactions... 4 Views... 5 Functions...

Läs mer

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information. Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling

Läs mer

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata Innehåll MySQL Intro Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata 1 Lagrad procedur / Stored Procedure Lagrad procedur har många namn, förkortningen

Läs mer

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation SQL Structured Query Language Frågespråk för att används för data åtkomst data manipulation Kommandon Lägga in ny data, INSERT Ändra data, UPDATE Radera data, DELETE Hämta data, SELECT mfl 2005-10-13 Gk/ÖK:ITO,

Läs mer

Relationsdatabasdesign 2I-4067 HT99. Relationsalgebra. som resultat!

Relationsdatabasdesign 2I-4067 HT99. Relationsalgebra. som resultat! Relationsalgebra Relationsalgebra Relationsalgebran r ett formellt sprâk fˆr att extrahera data ur relationer. SprÂket r uppbyggt av ett litet antal operatorer. Tar en eller två tabeller De primitiva operatorerna

Läs mer

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL) Idag 1. Från modell till databasstruktur 2. Prata med databaser (frågepsråket SQL) DD1370 (Föreläsning 3) Databasteknik och informationssystem 7,5 hp Hösten 2008 1 / 22 Från verklighet via modell till

Läs mer

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas Idag 1. Från modell till databasstruktur Från verklighet via modell till databas När vi analyserat den värld vi vill representera i en databas har vi tagit med alla möjliga kopplingar och beskrivit dem

Läs mer

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen. Databasmetodik Lördag 27 september 2014 kl Inst. för Data- och Systemvetenskap SU/KTH Tentamen EIT:DB, SP:DB, DVK:DB, ATD:DB, FK:DB, DSK:DB Ska även användas av äldre kurstillfällen, t ex för IV1018, IV1003, ITK3:DB, ITK1:DB, DSV1:DB mfl. Databasmetodik

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Databaser, design och programmering Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company

Läs mer

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ; Lösningsförslag till Övning i SQL Data Definition Language (DDL) D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ; D2. Create Domain CHARNRKEY char(7 D3. Create Table Skiva( T1. Create Table Skiva(

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index INNEHÅLL SQL DEL 4 DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index Chapter 3, 6, 8 delar av. Beginning SQL Server 2008 for Developers 1 CREATE

Läs mer

Starta MySQL Query Browser

Starta MySQL Query Browser Starta MySQL Query Browser 1. Starta MySQL Query Browser genom att antingen välja i Startmenyn: 2. eller leta upp ikonen på skrivbordet för start av MySQL Query Browser och dubbelklicka på den. 3. Du bör

Läs mer

SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. SQL, nästlade delfrågor 3-19 Nästlade delfrågor SQL har en mekanism för nästling av delfrågor: En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. Delfrågor används

Läs mer

Vyer, Prepared Statements, Triggers

Vyer, Prepared Statements, Triggers Vyer, Prepared Statements, Triggers Vyer En vy är en virtuell tabell, som ej behöver existera fysiskt, en namngiven fråga En vy är inte snabbare än SELECT satsen som definierar vyn Det är möjligt att ställa

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Databaser, design och programmering Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company

Läs mer

Vad är SQL? Introduktion till SQL

Vad är SQL? Introduktion till SQL Introduktion till SQL Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är SQL? Structured Query Language (SQL) är ett standardiserat frågespråk för att hämta och modifiera data i en

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Databaser, design och programmering Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company

Läs mer

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

SQLs delar. Idag. Att utplåna en databas. Skapa en databas Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver

Läs mer

Föreläsning 2: Översikt över ett databassystem

Föreläsning 2: Översikt över ett databassystem Föreläsning 2: Översikt över ett databassystem DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över databassystemets arkitektur, delar och

Läs mer

Sample exam questions. Database exam TIG058

Sample exam questions. Database exam TIG058 Sample exam questions Database exam TIG058 Distribution of topics covered 1. Grundläggande om Databaser och Databashanterare (5p) 2. SQLite-databashanteraren (5p) 3. SQL - SELECT, ORDER BY, WHERE, LIMIT

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i

Läs mer

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post SQL Structured Query Language Frågespråk för att används för data åtkomst data manipulation Kommandon Lägga in ny data, INSERT Ändra data, UPDATE Radera data, DELETE Hämta data, SELECT mfl Rader Tabeller

Läs mer

WCMS-15, Webbutvecklare CMS

WCMS-15, Webbutvecklare CMS WCMS-15, Webbutvecklare CMS Övningstentamen, delkurs Dynamiska webbplatser (20 YH-poäng) Plats: Medieinstitutet, Malmö Tid: 25 november 2015, kl. 13.00-16.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,

Läs mer

Introduktion till frågespråket SQL (v0.91)

Introduktion till frågespråket SQL (v0.91) DD1370: Databaser och Informationssystem Hösten 2014 Petter Ögren Introduktion till frågespråket SQL (v0.91) 13:e November Disclaimer: Dessa anteckningar har producerats under viss tidspress, och kan därför

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Webprogrammering och databaser Fö 5 Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company.

Läs mer

Föreläsning 5: Relationsmodellen

Föreläsning 5: Relationsmodellen Föreläsning 5: Relationsmodellen DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över hur relationsmodellen fungerar Relationsmodellen Relationsalgebra

Läs mer

MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL

MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL Ted Codd 970 - klassisk artikel: The relational model of data - DATASTRUKTUR - OPERATIONER - INTEGRITY

Läs mer

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner INNEHÅLL Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner Kapitel 5 och 6. Beginning SQL Server 008

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Webprogrammering och databaser Fö 5 Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company.

Läs mer

1.Lär känna MS SQL Observera. Tips. Förberedelse

1.Lär känna MS SQL Observera. Tips. Förberedelse 1.Lär känna MS SQL 2008 Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill genomföra

Läs mer

Databaser. Vad du ska lära dig: Ordlista

Databaser. Vad du ska lära dig: Ordlista Databaser Vad du ska lära dig: Ordlista Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda en

Läs mer

3. Dynamiska webbplatser, 20 Yhp (4 v)

3. Dynamiska webbplatser, 20 Yhp (4 v) Webbutvecklare CMS, Yh-utbildning, 2 år, 400 Yhp, Medieinstitutet, www.m Webbutvecklare CMS, Yh-utbildning, 2 år, 400 Yhp, Medieinstitutet, www.medieinstitutet.se, sida 3/12 3. Dynamiska webbplatser, 20

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE Kap. 3 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join Kap. 4 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 5 utom

Läs mer

Databaser och Datamodellering Foreläsning IV

Databaser och Datamodellering Foreläsning IV Webbprogrammering - 725G54 Databaser och Datamodellering Foreläsning IV Agenda Databaser ERD SQL MySQL phpmyadmin Labb 4 Databaser Databas - samling med data Databashanterare Enkelt Kraftfullt Flexibelt

Läs mer

Lösningar till tentamen i EDAF75

Lösningar till tentamen i EDAF75 Lösningar till tentamen i EDAF75 4 april 2018 Lösning 1 (a) Här är ett förslag till E/R-modell: Det finns flera rimliga alternativa sätt att modellera, så du behöver inte vara orolig bara för att du inte

Läs mer

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20 Idag Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten 2009 1 / 20 Idag Hur skapar vi och underhåller en databas? Hur skapar man tabeller?

Läs mer

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar: DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL r s använder vi för att uttrycka frågor där ordet alla figurerar: Ex. Vilka personer har stamkundskort vid ALLA klädesbutiker i stad X? Vilka personer har bankkonto

Läs mer

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h)

Läs mer

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse Lär känna MS SQL 2008 / Övning Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill

Läs mer

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser? Databaser Design och programmering! Diverse praktiskt! Varför databaser?! Vad är en databas?! Andra viktiga begrepp Kursöversikt! Teori och praktik! Samläsning! Olika projekt! Examination (tenta, labb

Läs mer

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra. 1 Datafiler tillhör alltid en filgrupp. Det måste alltid finnas en PRIMARY group. Det är inget som hindrar att datafiler på olika diskar tillhör samma filgrupp. PRIMARY gruppen innehåller huvudfilen till

Läs mer

INNEHÅLL. Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE

INNEHÅLL. Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE INNEHÅLL Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE Chapter 8, 9, 11 delar av. Beginning SQL Server 2008 for Developers 1 VAD

Läs mer

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet

Läs mer

Prova på-laboration i SQL

Prova på-laboration i SQL Prova på-laboration i SQL Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-19 1. Introduktion till databaser Databaser finns i så gott som alla sammanhang

Läs mer

Skapa exempeldatabasen

Skapa exempeldatabasen Skapa exempeldatabasen Koden i detta dokument är avsedd att exekveras i SQL Editor i MySQL Workbench. Skapa databasen För att kunna använda svenska alfabetet för lagring av data deklareras teckenensuppsättningen

Läs mer

732G16: Databaser - Design och programmering

732G16: Databaser - Design och programmering 732G16: Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Johan Falkenjack, IDA (johan.falkenjack@liu.se) Fö 1 Introduktion 2 Kursöversikt Teori och praktik Kursbok, lektionshäfte,

Läs mer

Relationsdatabasdesign

Relationsdatabasdesign Vad är Relationsdatabasdesign? Relationsdatabasdesign nikosd@kth.se 08-7904460 rum 8522 Connolly/Begg (3rd edition) Kapitel 4., 4.2 och 5 (4th edition) Kapitel 5., 5.2 och 6 (5th edition) Kapitel 6., 6.2

Läs mer

SQL del 2. Christer Stuxberg Institutionen för Informatik och Media

SQL del 2. Christer Stuxberg Institutionen för Informatik och Media SQL del 2 Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Repetition SELECT INSERT Mer SELECT Null sökning Gruppering (GROUP BY) Begränsad gruppering (HAVING)

Läs mer

Analytisk relationsdatabasdesign

Analytisk relationsdatabasdesign Analytisk relationsdatabasdesign Att förbättra kvaliteten i databaser Presenter s Name Organization name www.horton.com Domän-regler och främmande nyckel regler via DDL Datatyp! Datatyp! Maxvärde! Maxvärde!

Läs mer

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner Databasföreläsning Del 2 lagrade procedurer, vyer och transaktioner Lagrade procedurer (Stored procedures) En stored procedure är en procedur (funktion) lagrad i en databas, och exekveras direkt på databasservern

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar FÖ 8: Databaskursen 1. SQL 2. Utsökningar mot en tabell 3. Od Order by 4. Funktionerna upper, lower och initcap 5. Konkatenering 6. Kolumnalias 7. Distinct 8. Hantera nullvärden med nvl-funktionen 9. Between

Läs mer

9. Anonyma block 10. Clean code och läsbarhet 11. Variabeltyper och variabeldeklaration 12. Olika loopar: Basic, while och for loop

9. Anonyma block 10. Clean code och läsbarhet 11. Variabeltyper och variabeldeklaration 12. Olika loopar: Basic, while och for loop FÖ 10: Databaskursen 1. Vyer (Views) 2. Vyer och dataåtkomst 3. Olika typer av vyer 4. Fördelar med vyer 5. Syntax för att skapa vyer 6. Enkla och komplexa vyer 7. Vyer och constraints 8. PLSQL - introduktion

Läs mer

Databaser - Design och programmering

Databaser - Design och programmering Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Fö 1; introduktion Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp 2 Kursöversikt

Läs mer

1. SQL DDL (Data Definition Language) 2. Skapa tabell

1. SQL DDL (Data Definition Language) 2. Skapa tabell FÖ 4: Databaskursen 1. SQL DDL (Data Definition Language) 2. Skapa tabell 3. Lägga till PK 4. Data Dictionary Views 5. Namn på constraints 6. Lägga till FK 7. Lägga till en kolumn 8. Objektet sekvens 9.

Läs mer

Exempel-Tentamen III

Exempel-Tentamen III Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Exempel-Tentamen III Inga hjälpmedel tillåtna (syntaxsammanställning behövs inte på denna tentamen) Skriv bara på en sida av

Läs mer

1. SQL 2. Utsökningar mot flera tabeller. 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias

1. SQL 2. Utsökningar mot flera tabeller. 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias FÖ 9: Databaskursen 1. SQL 2. Utsökningar mot flera tabeller 3. Nästlad sökning eller sub queries 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias 8. Distincti 9. Group by 10. Having 11. In

Läs mer

Lösningsförslag, tentamen i Databaser

Lösningsförslag, tentamen i Databaser LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Lösningsförslag, tentamen i Databaser 2004-04-20 1. ER-diagram: Matsedel år vecka serveras 1..5 lagas-med Maträtt Ingrediens dag mängd Allergi

Läs mer

Databaser och SQL - en kort introduktion

Databaser och SQL - en kort introduktion Databaser och SQL - en kort introduktion Databaser är inte precis något som i sig är svårbegripligt. Det är bara en massa data samlade på ett ställe i strukturerad form. Problemen består i att det just

Läs mer

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix Arbetsuppgift 1: Uppdatera och uppgradera din installation. Steg 1: Starta och logga på din server,

Läs mer

Relationsmodellen och syntetisk databasdesign

Relationsmodellen och syntetisk databasdesign Relationsmodellen och syntetisk databasdesign Den teoretiska grunden för relationsdatabaser Från konceptuellt schema till databas Relationsmodellen Bil Ägare En relationsdatabas är en databas som uppfattas

Läs mer

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7) 1 (7) Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen Sal (1) Tid Kurskod Provkod Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som ingår i tentamen

Läs mer

Innehåll Programability Del 2

Innehåll Programability Del 2 Innehåll Programability Del 2 Transaktioner Returvärden och OUTPUT Dynamisk SQL CURSOR / FECTH Trigger Chapter 8, 10 och 13. Beginning SQL Server 2008 for Developers Sven Åke Johansson Institutionen Institutionen

Läs mer

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Namn: Personnummer: Individuell prövning 41E03B Öppen för alla Tentamensdatum: 2013-08-20 Tid: 09:00-13:00 Hjälpmedel: Inga hjälpmedel

Läs mer

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg Databaser och Informationssystem 15 hp IK1008 Föreläsning 8 SQL, utsökningar mot flera tabeller Övningsuppgifter STUDENT TENTA KURS # studnr * fnamn * enamn o regdatum # radnr (#) studnr (#) kursnr * tentadatum

Läs mer

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7. FÖ 5: Databaskursen 1 1. SQL DML (Data Manipulation Language) 2. Lägga till data 3. Kopiera tabell 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7. Ta bort data 8. SQL TCL (Transaction Control

Läs mer

Databaser och. SQL, utsökningar mot en tabell

Databaser och. SQL, utsökningar mot en tabell Databaser och Informationssystem 5 hp IK008 Föreläsning 7 SQL, utsökningar mot en tabell Övningsuppgifter Övningstabell SQL> desc personal Name Null? Type ------------------------------------- --------

Läs mer

Innehåll MySQL Intro. Historik / Utveckling Produkter Primära delsystem Installation Tabell och datatyper Namnsättning

Innehåll MySQL Intro. Historik / Utveckling Produkter Primära delsystem Installation Tabell och datatyper Namnsättning Innehåll MySQL Intro Historik / Utveckling Produkter Primära delsystem Installation Tabell och datatyper Namnsättning Institutionen Institutionen för Datavetenskap, för Kommunikation Fysik o och design

Läs mer

Kompendium till databaser och informationssystem 10p för SY2 2000

Kompendium till databaser och informationssystem 10p för SY2 2000 Högskolan Dalarna Anders Forsman tel: 023-778956 email: afm@blg.du.se Kompendium till databaser och informationssystem 10p för SY2 2000 2000-09-04 Innehållsförteckning INNEHÅLLSFÖRTECKNING... 2 1 DATAMODELLERING...

Läs mer

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen MySQL - testmiljöer på minuter Thomas Johansson IT-avdelningen 1 Kort presentation! MySQL-DBA Unix-gubbe sedan 90-talet 2 Testmiljöer för MySQL För att testa innan uppgradering För att testa uppgradering

Läs mer

MySQL. Maths Göthe. 25 februari Inledning Några konventioner Licens... 2

MySQL. Maths Göthe. 25 februari Inledning Några konventioner Licens... 2 En liten introduktion Maths Göthe maths57gothe(at)yahoo(punkt)se 25 februari 2010 Innehåll 1 Inledning 2 1.1 Några konventioner.......................... 2 1.2 Licens................................. 2

Läs mer

Introduktion till Jasmine 1.2 ODQL

Introduktion till Jasmine 1.2 ODQL Introduktion till Jasmine 1.2 ODQL I detta avsnitt beskrivs ett antal praktiska handgrepp som behövs för att köra Jasmine ODQL. 1 ODQL miljön Man kan enklast köra ODQL mot Jasmine från ett vanligt Command

Läs mer

Tentamen DATABASTEKNIK - 1DL116

Tentamen DATABASTEKNIK - 1DL116 Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn Tentamen 2003-05-20 DATABASTEKNIK - 1DL116 Datum...Tisdagen den 20 Maj, 2003 Tid...12:00-17:00 Jourhavande lärare...kjell Orsborn,

Läs mer

Webbprogrammering, grundkurs 725G54

Webbprogrammering, grundkurs 725G54 Webbprogrammering, grundkurs 725G54 Bootstrap jquery SEO RWD MuddyCards. Tidigare Muddycards Många positiva kommentarer Ibland för högt tempo på föreläsning Lägg ut labbar tidigare Mer föreläsningar (2

Läs mer

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13 Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Tentamen DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 203 kl. 9-3 Inga hjälpmedel tillåtna (syntaxsammanställning

Läs mer

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö. Laboration 2, Databashantering med MySQL Av: Marcus Rejås I denna laboration skall vi jobba vidare på bildatabasen som vi började på förra gången. Vi skall ändra fält och lära oss att

Läs mer

Genomgång av tentamen. Databasteknik ITHS 4/3 2016

Genomgång av tentamen. Databasteknik ITHS 4/3 2016 Genomgång av tentamen Databasteknik ITHS 4/3 2016 Tentans upplägg Täcka in de 10 delar av kursen vi bedömt som viktigast Säkerställa att det funnits såväl teoripass som övningspass kring varje del Lätt

Läs mer

ÖVERVAKNING AV SQL SERVER

ÖVERVAKNING AV SQL SERVER ÖVERVAKNING AV SQL SERVER Hantering resurser för samtidiga användare Övervakning av SQL Servers aktiviteter Hantering av blockerade processer Användning av SQL Profiler för att hitta besvärliga frågor

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 24 Augusti 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

Laboration SQL. Kom igång. http://www.tfe.umu.se/courses/systemteknik/webbkurser/d&w/laborationer/sql.ht...

Laboration SQL. Kom igång. http://www.tfe.umu.se/courses/systemteknik/webbkurser/d&w/laborationer/sql.ht... Page 1 of 5 Laboration SQL Syfte: Under denna laboration skall du bekanta dig med SQL. När laborationen är genomförd skall du klara av att själv formulera enklare SQL-frågor för att kunna ta fram information

Läs mer

Frågespråk mot relationsmodellen

Frågespråk mot relationsmodellen HUND Mindy Ossi Frågespråk mot relationsmodellen Relationsalgebra Relationsalgebra Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Med hjälp av dessa operatorer kan andra

Läs mer

Föreläsning 5 Dagens föreläsning går igenom

Föreläsning 5 Dagens föreläsning går igenom Databasbaserad publicering Föreläsning 5 1 Föreläsning 5 Dagens föreläsning går igenom SQL-sammanfattning Komplett exempel, från E/R till tabeller och SQL Databasbaserad publicering Föreläsning 5 2 SQL

Läs mer

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem? Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem? En mängd program som tillåter användaren att skapa och underhålla

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig? Allmänna frågor Databasteknik och informationssystem DD1370 F2 Petter Ögren Är Kurswebben svårbegriplig? Är lab0 svårbegriplig? Är bonus-poängen tydliga? Har ni lyckats installera Open Office? Fungerar

Läs mer

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok). Inst. för Data- och Systemvetenskap SU Maria Bergholtz Tentamen 2/3 205 kl. 4 8 Inga hjälpmedel är tillåtna (annat än ordbok). Skall även användas som omtentamen för DB:EIT/DSK/FK samt äldre databaskurser.

Läs mer

Informationssystem och Databasteknik. Frågespråk mot relationsmodellen

Informationssystem och Databasteknik. Frågespråk mot relationsmodellen Informationssystem och Databasteknik HUND Namn Ras Mindy Tax Ossi Tax Frågespråk mot relationsmodellen Relationsalgebra SQL 1 Relationsalgebra Primtiva operatorer projektion π selektion σ union differens

Läs mer

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot Att konstruera och underhålla en databas Skapa en databas Då man gjort färdig sin modell, fört över den till en databasstruktur och normaliserat strukturen så måste man realisera databasen i någon databashanterare.

Läs mer