Extra övningar i SQL. Följande SQL-satser bygger på exemplen (och databasen) i föreläsningsbilderna från föreläsningen om relationsalgebra.

Relevanta dokument
Structured Query Language (SQL)

Lösningar till tentamen i EDAF75

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

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

Structured query language (SQL)

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

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

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

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

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

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

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

Starta MySQL Query Browser

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

WCMS-15, Webbutvecklare CMS

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

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

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

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

TENTAMEN DATABASKUNSKAP ITEK12

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

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Sample exam questions. Database exam TIG058

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

Grunderna i SQL del 1

Databaser och. SQL, utsökningar mot en tabell

Exempel-Tentamen III

TNK046 GIS - Databaser Laborationsuppgift 2

Databasspråket SQL - online.

INTRODUKTION TILL JDBC

Databasutveckling Introduktion till SQL och TSQL

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

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

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

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

Lösningsförslag, tentamen i Databaser

Tentamen. TDDB38 - Databasteknik

Informa5onsmodellering

Databaser och Datamodellering Foreläsning IV

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

Laboration SQL. Kom igång.

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

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

3. Dynamiska webbplatser, 20 Yhp (4 v)

Databaser. Vad du ska lära dig: Ordlista

Preschool Kindergarten

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

Filbeskrivningar Eller på särskild CD skiva

Databasspråket SQL - online.

Logik. Dr. Johan Hagelbäck.

Labb LABB 15. XML användande i praktiken. Plushögskolan Frågeutveckling inom MSSQL - SU14

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

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

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

Databasspråket SQL - online.

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Idag. Exempel. Exempel modellen (1) Exempel...

Databasspråket SQL - online.

ÖVNING 14. (Primärnycklar är angivna med fetstil.)

Bakgrunds info Installation Musik. Koreografi Optioner Verktyg Nästa version. Agenda

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

INNEHÅLL SQL DEL 2. Funktioner inbyggda Aggregatfunktioner Skalärfunktioner. Chapter 11. Beginning SQL Server 2008 for Developers

13/11/14. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Vad är en Databas?

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

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

Lösningsförslag till Exempel tentamen

Webbprogrammering, grundkurs 725G54

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

Tentamen i Databasteknik

Isometries of the plane

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Tentamen för DD1370 Databasteknik och informationssystem

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.

ÖVNING 14. (Primärnycklar är angivna med fetstil.)

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

Fortbildningsavdelningen för skolans internationalisering. Dossier 3. European Language Portfolio 16+ Europeisk språkportfolio 16+ English version

Databasspråket SQL - online.

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Introduktion MySQL och MariaDB

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Kapitel 4 Arkivmenyn Innehåll

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

1. PLSQL 2 2. Select into

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

TDDD52 Databas. Databas. Databas 1/3/13

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Vad är PostGIS? Hmm, PreGIS måste vara papperskartor..., men vad är PostGIS...?

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

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

Ny tjänst för musikrapportering

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för 1E1601. Måndag 10 mars 2003, kl Alla hjälpmedel tillåtna

INSTALLATION INSTRUCTIONS

Support Manual HoistLocatel Electronic Locks

Reducering till relationsscheman

Transkript:

Extra övningar i SQL Följande SQL-satser bygger på exemplen (och databasen) i föreläsningsbilderna från föreläsningen om relationsalgebra. Person pid pnamn längd vikt land Film fnamn Basic Swordfish Michael Face/Off Con Air Entrapment The Truman Show Congo Absolute Power Mystic River Space Cowboys år 00 00 99 99 99 99 999 998 995 99 00 000 regi ssör 5 8 FilmSkådis fnamn Basic Swordfish Michael Face/Off Face/Off Con Air Con Air Entrapment Entrapment The Truman Show The Truman Show Congo Mystic River Mystic River Space Cowboys pid 9 5 8 0 5 8 9 0 5 8 John Travolta Nicolas Cage Sean Connery Ed Harris Jim Carrey Laura Linney Clint Eastwood Gene Hackman John Cusack Sean Penn Kevin Bacon Jennifer Esposito John McTiernan Dominic Sena Nora Ephron Jon Amiel Catherine Zeta-Jones Peter Weir 5 9 8 5 88 5 8 80 5 5 0 9 9 8 0 9 9 8 9 0 8 Scottland Canada England Wales Australia

Ta fram filmer och regissörs namn! SELECT DISTINCT fnamn, pnamn, Person WHERE regissör = pid; Visa filmer gjorda 000 eller 00! SELECT DISTINCT fnamn WHERE år=000 OR år=00; Vilka skådespelare har spelat i filmer från 99? SELECT DISTINCT pnamn FROM Person, FilmSkådis, Film WHERE Person.pid=FilmSkådis.pid AND FilmSkådis.fnamn=Film.fnamn AND år = 99 Eller: SELECT pnamn FROM Person WHERE pid IN (SELECT pid Skådis WHERE fnamn IN (SELECT fnamn WHERE år = 99)) Visa alla regissörer som väger mer än 0! SELECT DISTINCT pnamn, Person WHERE vikt>0 AND regissör=pid Hur många filmer har varje regissör gjort? Visa namn och antal! SELECT pnamn, COUNT(*) AS antal, Person WHERE regissör= pid GROUP BY pnamn

I vilka filmer spelar alla skådespelare från Australien? SELECT fnamn WHERE NOT EXISTS (SELECT * FROM Person WHERE Person.pid IN (SELECT pid Skådis) AND land='australia' AND pid NOT IN (SELECT pid Skådis WHERE FilmSkådis.fnamn=Film.fnamn)) Vilken film har inga skådespelare från? SELECT fnamn WHERE fnamn NOT IN (SELECT Film.fnamn FROM Person, FilmSkådis, Film WHERE land='' AND Person.pid=FilmSkådis.pid AND FilmSkådis.fnamn=Film.fnamn); Från hur många länder finns det skådespelare i varje film? SELECT fnamn, COUNT(DISTINCT land) Skådis, Person WHERE FilmSkådis.pid=Person.pid GROUP BY fnamn Eller om man inte ha COUNT(DISTINCT): SELECT fnamn, COUNT(land) FROM (SELECT DISTINCT fnamn, land Skådis, Person WHERE FilmSkådis.pid=Person.pid) GROUP BY fnamn Hur många skådespelare från varje land finns det i varje film? SELECT fnamn, land, COUNT(pid) Skådis, Person WHERE FilmSkådis.pid=Person.pid GROUP BY fnamn, land

Vilken film har regisserats av en av skådespelarna i filmen? SELECT Film.fnamn, FilmSkådis WHERE Film.fnamn=FilmSkådis.fnamn AND regissör=pid

Följande exempel bygger på samma databas som används i kompendiet "Introduction to Microsoft Access": Tables (primary keys are underlined): Artist (Name, Age, FavouriteComposer, Mentor) Composer (Name) Song (ID, Name, Length, Composer) SongPerformance (Date, Song) ArtistPerformance (Name, Date, Song) CD (ID, Title, Year) CDSongPosition (Position, CDID, Date, Song) Foreign keys (foreign key on the left, referenced key on the right): Artist.FavouriteComposer << Composer.Name Artist.Mentor << Artist.Name Composer.Name << Artist.Name Song.Composer << Composer.Name SongPerformance.Song << Song.ID ArtistPerformance.Name << Artist.Name ArtistPerformance.(Date, Song) << SongPerformance.(Date, Song) CDSongPosition.CDID << CD.ID CDSongPosition.(Date, Song) << SongPerformance.(Date, Song) 5

Vilken artist har en mentor som är yngre än artisten själv? SELECT Artist.Name FROM Artist, Artist AS Mentor WHERE Artist.Mentor = Mentor.Name AND Artist.Age > Mentor.Age Visa titeln och längden i sekunder för alla CD från 000! SELECT CD.Title, SUM(Song.Length) FROM CD, CDSongPosition, Song WHERE CD.Year=000 AND CD.ID=CDSongPosition.CDID AND CDSongPosition.Song=Song.ID GROUP BY CD.Title På vilken CD är alla inspelningar från 00? Här är det enklast att börja med att ta fram det man inte vill ha. Alltså ta fram alla CD med inspelningar från annat är 00. Sedan kan man dra bort dessa CD från alla CD och kvar har vi rätt CD! Man gör på detta sätt för att man vill kontrollera att samtliga inspelningar är från 00. Hade vi letat efter CD med minst en inspelning från 00, hade vi gått direkt efter det vi vill ha. SELECT Title, Year FROM CD WHERE ID NOT IN (SELECT CDID FROM CDSongPosition WHERE NOT (Date BETWEEN #00 0 0# AND #00 #)) Vilken är den längsta låten av varje kompositör? SELECT Song.Composer, Song.Name, Song.Length FROM Song, (SELECT Composer, MAX(Length) AS maxlength FROM Song GROUP BY Composer) AS ComposerMax WHERE Song.Composer=ComposerMax.Composer AND Song.Length=ComposerMax.maxlength Man kan också lösa detta på det här sättet: SELECT Composer, Name, Length FROM Song AS s WHERE Length = (SELECT MAX(length) FROM Song WHERE Composer = s.composer)

På vilken CD finns det en låt av Yanni (composer) på plats och en låt med Madonna på plats? Visa titeln och året! SELECT Title, Year FROM CD WHERE ID IN (SELECT CDID FROM Song, CDSongPosition WHERE Composer = 'Yanni' AND Position = AND ID=Song) AND ID IN (SELECT CDID FROM ArtistPerformance AS ap, CDSongPosition AS cdsp WHERE Name= Madonna AND Position= AND ap.date=cdsp.date AND ap.song=cdsp.song) Hur många låtar ingår i varje CD? SELECT Title, Year, COUNT(*) antal FROM CD, CDSongPosition WHERE ID = CDID GROUP BY Title, Year Vilken artist har spelat Yannis alla låtar? SELECT Name FROM Artist WHERE NOT EXISTS (SELECT * FROM Song WHERE Composer='Yanni' AND ID NOT IN (SELECT Song FROM ArtistPerformance WHERE Name=Artist.Name))