Structured Query Language (SQL)

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

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

Databasutveckling Introduktion till SQL och TSQL

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Grunderna i SQL del 1

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

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

Databaser och. SQL, utsökningar mot en tabell

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

Databasspråket SQL - online.

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

Laboration SQL. Kom igång.

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. Kommandon. data åtkomst data manipulation

Vad är SQL? Introduktion till SQL

WCMS-15, Webbutvecklare CMS

Databasspråket SQL - online.

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

Databasspråket SQL - online.

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

Structured query language (SQL)

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

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Databaser och SQL - en kort introduktion

Sample exam questions. Database exam TIG058

Databaser och Datamodellering Foreläsning IV

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

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

Grunderna i SQL del 1

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

Databaser. Vad du ska lära dig: Ordlista

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

Sid 1 (9) Tillämpad fysik och elektronik Karin Fahlquist. Laboration: Databasdesign & SQL

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

Vyer, Prepared Statements, Triggers

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

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

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

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

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.

Databasspråket SQL - online.

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

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

Lösningar till tentamen i EDAF75

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

VAD GÖR DU / VEM ÄR DU?

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

Databasspråket SQL - online.

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Starta MySQL Query Browser

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

Se kurshemsidan för användbara länkar för att genomföra denna laboration.

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

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

VAD GÖR DU / VEM ÄR DU?

3. Dynamiska webbplatser, 20 Yhp (4 v)

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

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

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

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Användarhandledning för SQL- och fönsterfilter

Karlstads Universitet, Datavetenskap 1

Datorlaboration 1 Deskriptiv statistik med hjälp av MS Excel vers. 2010

INTRODUKTION TILL JDBC

Det är fullt tillåtet att göra laborationen innan laborationstillfället.

Webbprogrammering, grundkurs 725G54

Karlstads Universitet, Datavetenskap 1

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data

NKRR. Regelskrivning i praktiken

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Uppgift 1 (grundläggande konstruktioner)

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Funktionsbeskrivning

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

Tentamen DATABASTEKNIK - 1DL116

Prova på-laboration i SQL

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

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

Karlstads Universitet, Datavetenskap 1

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

Programbeskrivning. Chaos på Web. Version

Lathund för studenter

i LabVIEW. Några programmeringstekniska grundbegrepp

Lektion 5 HTML, CSS, PHP och MySQL

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

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

Laboration 2, MS SQL. Observera. Tips. Förberedelse. Genomförande

TNMK30 Elektronisk publicering HT 2014 Laboration 5: PHP och MySQL

Microsoft Excel Grundkurs

Föreläsning 6 Databaser och säkerhet

Microsoft Office Excel, Grundkurs 2. Funktioner

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

Informa5onsmodellering

efact Sök Sök/Rapporter ( )

Exempel-Tentamen III

Transkript:

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 av SELECT kommandot Modifiera Data med SQL INSERT UPDATE DELETE

Introduktion till SQL Hette från början SEQUEL (Structured English Query Language), bytte namn då SEQUEL var varumärkesskyddat av en brittisk flygplanstillverkare Det vanligaste kommersiellt använda språket för relationsdatabaser Ett deklarativt frågespråk, du specificerar vad som skall göras istället för hur Relativt enkelt att lära sig då det använder sig utav engelska termer Baseras på relationsalgebra

Målet med SQL Kunna skapa databaser och tabeller Ge möjlighet att lägga till, ändra och ta bort data från tabeller Kunna utföra både enkla och komplexa frågor (queries) Vara enkelt att använda SQL beskriver hur input tabeller ska transformeras till output tabeller.

Kort om literaler Literaler är konstanter som används i SQL-satser Alla icke numeriska värden måste omges av apostrofer Numeriska värden får inte omges av apostrofer (I många miljöer fungerar även citationstecken men standard är att använda apostrofer)

Grundkommandon SELECT vad som ska hämtas från databasen/tabellen INSERT för att lägga till data i en tabell UPDATE för att ändra/uppdatera data i en tabell DELETE för att ta bort data från en tabell

Kom igång med SELECT Vi börjar med en databas som innehåller tabellen Films filmnum title genre restrictions 201 The Spy who Shagged me Action Over 12 678 Harry Potter and the Broomstick Children None 134 Silence of the Lambs Horror Over 17 985 The day of the living dead Horror Over 17 343 Airplane Comedy Over 12 234 Star Wars Action None Vi kan hämta hela tabellen med frågan: SELECT filmnum, title, genre, restrictions FROM Films; Eller så använder vi * för att lista alla kolumner i tabellen: SELECT * FROM Films;

Hämta vissa kolumner Om vi endast är intresserade av filmnum, title och genre från våra filmer: SELECT filmnum, title, genre FROM Films; Den frågan ger oss följande tabell: filmnum title genre 201 The Spy who Shagged me Action 678 Harry Potter and the Broomstick Children 134 Silence of the Lambs Horror 985 The day of the living dead Horror 343 Airplane Comedy 234 Star Wars Action

DISTINCT Om vi hämtar endast genre från vår tabell så kommer vi att få dubbletter För att slippa dubbletter så använder vi DISTINCT kommandot: SELECT genre FROM Films; genre Action Children Horror Horror Comedy Action SELECT DISTINCT genre FROM Films; genre Action Children Horror Comedy

Aggregatfunktioner Vi kan skriva frågor som gör beräkningar på numeriska fält, här på tabellen Staff SELECT staffnum, name, position, salary/12 FROM Staff; ger oss allas månadslön: staffnum name position salary L001 George CEO 60000 L002 John Manager 48000 L003 Adam Assistant 24000 staffnum name position col4 L001 George CEO 5000 L002 John Manager 4000 L003 Adam Assistant 2000

Ge nya kolumner ett namn Den fjärde kolumnen i resultattabellen fick namnen col4 eftersom SQL inte vet hur den ska namnge kolumnen Vi kan använda oss utav AS för att namnge den nya tabellen: SELECT staffnum, name, position, salary/12 AS monthysal FROM Staff; staffnum name position monthlysal L001 George CEO 5000 L002 John Manager 4000 L003 Adam Assistant 2000

Jämförande sökvillkor Hitta alla anställda som tjänar mer än 40000 om året: SELECT staffnum, name, position, salary FROM Staff WHERE salary > 40000; staffnum name position salary L001 George CEO 60000 L002 John Manager 48000

Jämförelseoperatorer SQL stöder de vanliga jämförelseoperatorerna: =, <, >, <>, <=, >= Mer komplexa jämförelser kan göras med hjälp av logiska operatorer: AND, OR, NOT Parenteser används för att bestämma i vilken ordning utvärderingen ska ske.

Intervall sökvillkor Hitta alla anställda som tjänar mellan 20000 och 50000 SELECT staffnum, name, position, salary FROM Staff WHERE salary >= 20000 AND salary <= 50000; staffnum name position salary L002 John Manager 48000 L003 Adam Assistant 24000 Alternativt kan vi skriva: SELECT staffnum, name, position, salary FROM Staff WHERE salary BETWEEN 20000 AND 50000;

Andra sätt att söka ut data För att list alla filmer som tillhör Action eller Children genren: SELECT filmnum, title, genre FROM Films WHERE genre = Action OR genre = Children ; Ger oss följande tabell: filmnum title genre 201 The Spy who Shagged me Action 678 Harry Potter and the Broomstick Children 234 Star Wars Action

Alternativ till samma sökning Vi kan göra samma sökning fast med IN för att se om värdet matchar ett i en lista av värden: SELECT filmnum, title, genre FROM Films WHERE genre IN ( Action, Children );

Mönstermatchning SQL tillåter enklare mönstermatchnings sökningar som kan användas med LIKE kommandot: % representerar 0 eller fler tecken. LIKE S% betyder att första tecknet måste vara S, men resten kan vara vilken sträng som helst. _ representerar vilket tecken som helst (1 tecken). LIKE S betyder att första tecknet måste vara S, följt av 4 andra tecken.

Mönstermatchning SELECT title, genre FROM Films WHERE title LIKE %the% ; Ger oss följande tabell: title The Spy who Shagged me Harry Potter and the Broomstick Silence of the Lambs The day of the living dead genre Action Children Horror Horror

Sortera resultat Om man bara gör en vanlig sökning så får man (oftast) resultatet i den ordningen som de är inlagda i tabellen ORDER BY kan användas för att sortera på en eller flera kolumner Sortering kan göras stigande (ASC) eller fallande (DESC) på en kolumn eller en kombination av kolumner

Sortera resultat Säg att vi vill sortera filmerna på genre och filmnum SELECT * FROM Films ORDER BY genre DESC, filmnum ASC; filmnum title genre restrictions 134 Silence of the Lambs Horror Over 17 985 The day of the living dead Horror Over 17 343 Airplane Comedy Over 12 678 Harry Potter and the Broomstick Children None 201 The Spy who Shagged me Action Over 12 234 Star Wars Action None

SQLs aggregeringsfunktioner Det finns fem aggregeringsfunktioner: COUNT returnerar antalet värden i en specifik kolumn SUM returnerar summan av värdena i en specifik kolumn AVG returnerar medelvärdet av värdena i en specifik kolumn MIN returnerar det minsta värdet i en specifik kolumn MAX returnerar det största värdet i en specifik kolumn De används i SELECT och HAVING satserna

COUNT och SUM Lista antalet anställde med en lön över 40000 och summan av deras löner: SELECT COUNT(staffNum) AS totalstaff, FROM Staff SUM(salary) AS totalsalary WHERE salary > 40000; totalstaff totalsalary 2 108000

Sammanfattning av SELECT SELECT specificerar vilka kolumner som ska vara med i resultatet FROM specificerar vilken eller vilka tabeller som ska användas WHERE filtrerar rader som uppfyller vissa kriterier GROUP BY grupperar rader på ett kolumn värde HAVING filtrerar bort grupper som inte uppfyller vissa kriterier ORDER BY specificerar hur resultatet ska sorteras

Modifiera data SQL kan inte bara hämta data från en databas utan även lägga till, ändra och ta bort data från databasen INSERT lägger till en rad med data i en tabell UPDATE ändrar existerande data i en tabell DELETE tar bort rader med data från en tabell

INSERT Nu ska vi lägga till en rad i Films tabellen: INSERT INTO Films VALUES ( 882, Enter the Dragon, Action, Over 12 ); I det här exemplet så har vi gett värden för alla kolumner i den ordning som specificerades när tabellen skapades Det betyder att vi inte behöver specificera kolumnamnen

UPDATE Vi vill uppdatera Staff tabellen så att alla assistenter får en lönehöjning på 5%. UPDATE Staff SET salary = salary* 1.05 WHERE position = Assistant ; staffnum name position salary L001 George CEO 60000 L002 John Manager 48000 L003 Adam Assistant 24000 staffnum name position salary L001 George CEO 60000 L002 John Manager 48000 L003 Adam Assistant 25200

UPDATE SET kommandot specificerar namnet på en eller fler kolumner som ska uppdateras WHERE kommandot är frivilligt. Om WHERE inte används så kommer alla rader i tabellen uppdateras i kolumnerna som specificerats i SET Om WHERE används så kommer endast de rader som uppfyller kravet att uppdateras

DELETE Nu vill vi ta bort alla skräckfilmer från Films tabellen DELETE FROM Films WHERE genre = Horror ; filmnum title genre restrictions 201 The Spy who Shagged me Action Over 12 678 Harry Potter and the Broomstick Children None 343 Airplane Comedy Over 12 234 Star Wars Action None 882 Enter the Dragon Action Over 12

Öva själv http://www.w3schools.com/sql/ Finns även många andra bra sidor på nätet där man kan lära sig och även få öva lite på olika databaser och tabeller.