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

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

Labb LABB 14. Live demo exempeldata. 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

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Structured Query Language (SQL)

WCMS-15, Webbutvecklare CMS

3. Hämta och infoga bilder

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Sta. Sta. Sta. ulricaelisson.se. Scratch STARTA PROVA KODEN KÖR! TIPS. Rita en ny sprite. Eller välj en från mappen

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

Mer information om RefWorks, andra referenshanteringsprogram och hur man refererar hittar du på Linköpings universitetsbiblioteks webbsidor.

Introduktion till Winbas. excel till Winbas

Öppna EndNote varje gång när du vill samla referenser till ditt bibliotek.

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Se till att posten är i Ändringsläge. Gå till rullgardinsmenyn under Föremål och välj Lägg in bild.

Administrationsmanual ImageBank 2

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.

Kopplingar via datalänk från Winbas till Excel samt Pivottabell 1 (13)

Databasutveckling Introduktion till SQL och TSQL

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

Styrsystem. Quantum, M340 o Momentum. Kom-igång med konvertera Concept till Unity Rev

Hur mycket lutar vägen?

Importera referenser till DiVA

ALEPH ver. 18 ALEPH Digital Asset Module (ADAM)

Lab 5: ASP.NET 2.0 Site Navigation

Workshop IBA internet based assessment

Importera referenser till DiVA

Konfigurera Wordpress som Hemsida istället för blogg

Filbeskrivningar Eller på särskild CD skiva

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

Kom igång med TIS-Office

Mobilus får inte användas under tiden uppdateringen genomförs.

Sample exam questions. Database exam TIG058

Nya webbservern Dvwebb.mah.se

Importera referenser till DiVA

EndNote X6 grundkurs

Import av utlandsresultat

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

PNSPO! Exporterar och Importerar texter från CX- Designer. 20 mars 2012 OMRON Corporation

Importera och använda en textdatabas i Excel

Importera referenser till DiVA

IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA

ANVÄNDARMANUAL. Utbyte och ersättning system för utbyte av produkter. Återförsäljare. Brunvaror Vitvaror Foto / video

Administrationsmanual ImageBank 2

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

ID 6_D001_-_001_04 Ver Ansvarig Per Erlandsson. Bilaga 6 Regionservice. för

Användarmeddelande. CSR förfrågan. Flex Lön 2016

Importera referenser till DiVA

IT-körkort för språklärare. Modul 2: Blogg

ANVÄNDARMANUAL, INTERAXO

Läsa dokument/information i advantum

Handledning för publicering av avhandlingar och andra vetenskapliga publikationer i DiVA

VAD GÖR DU / VEM ÄR DU?

Hantering av Exceldata vid import/export till/från utbetalningsansökan

Frågebanker, frågeuppsättningar och slumpvisa block

Guide till RefWorks Skapa ett RefWorks-konto Under Citera och referera > RefWorks Hjälp funktioner i RefWorks Help Tutorial Help

STEG 1 Samla referenser till ditt EndNote-bibliotek

EndNote X7 grundkurs

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

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

Snabbstartsguide. Få hjälp Klicka på frågetecknet om du vill söka efter hjälpinnehåll.

Importera referenser till DiVA

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

ADO.NET Murach Kapitel 17-20

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Lektion 5 HTML, CSS, PHP och MySQL

APA för nybörjare. Innan du börjar. Översikt

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

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

SE... Guldmann Service och Information Konsol v Brukarmanual - ver. 6.00

Importera utskriftsinställningar och Tips och tricks för Disgen 8.2d

Laboration 1 Introduktion till Visual Basic 6.0

LATHUND REVIT/RHINO WORKSHOP

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Användarmanual för Content tool version 7.5

Grundläggande EndNote

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

Version X6 Fler tips

IT-körkort för språklärare. Modul 3: Ljud, del 1

Referenshanteringsprogrammet

Introduktion MySQL och MariaDB

Hur man importerar referenser från olika databaser/databasvärdar

KAP 18 SQL SERVER AGENT

Nätet. Uppgiften. Nivå

Innehåll: Startnyckel, introduktion. Internet som resurs 2. Del 3. Funktioner: Länkverktyget Infoga bild Infoga ljud Spara i Galleriet

Fyrverkerier. Introduktion. Nivå. I det här projektet ska vi skapa ett fyrverkeri över en stad. Activity Checklist.

< Digitala leveranser av väg och VA-modeller>

16/04/2014. Säljfolder Dokumentation för användare. Olivier Franchaud/Anna Wallsby

Rapportera till SCB Grundskola

ALEPH ver. 16 Introduktion

Databasbaserad publicering ME105A Laboration 9 1 (5)

Lathund. Joint Collaboration AB Korta Gatan Stockholm Tel interaxo@joint.se. Org.nr.

Omsorgen Användarhandledning

Databasbaserad publicering ME105A Laboration 8 1 (6) I förra labben gjorde vi en webbsida med produkterna i tabellen products:

Hantering av Exceldata vid import till/export från utbetalningsansökan

Transkript:

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

I dagens labb ska vi försöka använda information från XML. Innehåll XML-fil... 2 Lista upp maten... 3 Spara din XML... 4 Pris och kalorier... 5 Manipulera data... 6 Lite ändringar i menyn... 7 Filtrering av XML... 8 Beräkningar... 9 FOR XML... 10 1

XML-fil Vi börjar med att läsa in XMLfil. Med dagens exempel så fick du med filen Nom.xml, om inte ladda ner del från http://www.w3schools.com/xml/simple.xml Jag döpte om filen för Nom lät bättre än Simple. Declare @xmldata XML; Declare @sql varchar(max); SELECT @xmldata = CONVERT(xml,[BulkColumn]) FROM OPENROWSET(BULK '{Sökväg till dina labbfiler}\labb\nom.xml', SINGLE_BLOB) as [XmlData]; Select @xmldata; Det första som händer är att vi skapar variabler. OPENROWSET fungerar inte så bra med variabler som filnamn, så vi hårdkodar det just nu. I Select satsen tilldelat vi @xmldata XMLdata som skapats av Convert. Med OpenRowset läser vi in filen som en Bulk, alltså en klump data som inte behandlats på något sätt. Den blir av typen SINGLE_BLOB som talar om att den är en rad, en kolumn data i varbinary(max). Detta för att inte behöva bekymra sig med konverteringar. [XmlData] i slutet är bara ett namn för själva kolumnen. Såja, nu kan du använda koden från gårdagens labb för att läsa in tabellen in i din databas. Declare @xmldata XML; Declare @sql varchar(max); Declare @docid int; SELECT @xmldata = CONVERT(xml,[BulkColumn]) FROM OPENROWSET(BULK '{Sökväg till dina labbfiler}\labb\nom.xml', SINGLE_BLOB) as [XmlData]; exec sp_xml_preparedocument @DocID OUTPUT, @xmldata; select * from OPENXML(@docID,'/') order by id, parentid exec sp_xml_removedocument @DocID Sådärja nu ska vi experimentera med XMLkoden 2

Lista upp maten Precis som i gårdagens övning så kan vi få fram listan på mat genom att använda with select * from OPENXML(@docID,'//food') with ( Name varchar(max) 'name' ) Ändra koden så att den visar Price, Calories och Description Nu när du sett hur datan ser ut, då ska vi börja leka med det. 3

Spara din XML Nu ska vi stoppa in XMLdatat i en tabell. Att ha allt i en rad och en kolumn är inte så bra och det är precis vad som händer om vi försöker importera XMLn till tabellen. Vi löser det såhär: 1. Skapa en tabell kallad Food som ska innehålla a. ID (autoräknande) b. XML för maträtt 2. Importera datat in i din tabell, en rad per maträtt Det låter enkelt, men det är det inte eller jo, när man vet hur. I gårdagens exempel importerade vi in färdiga tabeller som omvandlades till XMLkod. Då kunde vi splittra XML-raderna baserat på ID, men nu importerar vi från XML direkt. Då får man göra lite annorlunda. En rekursiv-aktig Select är en bra lösning i det här fallet. insert into food select XmlKod.Rad.query ('.') from @xmldata.nodes('//food') as XmlKod(Rad); Det ser lite knasigt ut, men det är kortfattat så att vi för en sökning på själva XMLkoden och plockar fram all data som finns vid //food, detta läggs i en Fejkad tabell ( XmlKod ) med en fejkad datarad ( Rad ). Då vår SQL-Query selectar all XML-data så får den alltså fram allt som ligger i samma nivå som food. Prova :) 4

Pris och kalorier Skriv Querys som letar upp (och visar information om) 1. Den dyraste maträtten 2. Rätten med högst antal kalorier 3. Billigaste rätten 4. Rätten med minst kalorier Jag hjälper dig med den första för att få dig på rätt spår Select top 1 Food.value('(//price)[1]', 'money') as price from food order by price desc Queryn kommer att leta upp den dyraste rätten, resten av informationen får du söka upp själv :) 5

Manipulera data Nu ska du skapa en XML rad Name Fried Macaroni and cheese Price $7.50 Description Fried Macaroni and cheese with bacon bits and sour cream Calories 1756 Skapa den och spara den i din tabell. För mer inspiration om fantastiska rätter, se http://www.buzzfeed.com/bennyjohnson/17-heart-stopping-foods-at-the-iowa-statefair#.orl9kz4j30 6

Lite ändringar i menyn Kocken har fått slut på ägg, radera raden med mat där ägg Döp om Fried Macaroni and cheese till Dangerous & Delicious fried Macaroni and cheese 7

Filtrering av XML Skriv Querys som 1. Visar bara upp Waffles-rätter 2. Söker upp rätten som innehåller ägg 3. Visar rätter som inte är våfflor 8

Beräkningar Skriv queries som 1. Räknar ut mängden kalorier om man äter upp en st av alla våffelrätter 2. Räknar ut medel av mängden kalorier på våffelrätterna 3. Sorterar upp maträtterna så att minsta mängd kalorier, och lägsta pris kommer först 4. Räknar ut antal kalorier per dollar, per maträtt 9

FOR XML Exportera din sorterade tabell, och spara koden som du får. Kopiera din SQL-kod och skriv över informationen i filen. Prova nu med att läsa in XML-koden igen. 10