Databasutveckling Introduktion till SQL och TSQL



Relevanta dokument
Vad är SQL? Introduktion till SQL

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

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Laboration SQL. Kom igång.

Grunderna i SQL del 1

Structured Query Language (SQL)

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

WCMS-15, Webbutvecklare CMS

Innehåll. MySQL Grundkurs

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

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

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

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

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

Design och underhåll av databaser

Sample exam questions. Database exam TIG058

Introduktion MySQL och MariaDB

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Introduktion till Entity Framework och LINQ. Källa och läs mer

Databaser och SQL - en kort introduktion

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

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

VAD GÖR DU / VEM ÄR DU?

Databaser och Datamodellering Foreläsning IV

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

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

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

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

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.

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

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.

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

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

VAD GÖR DU / VEM ÄR DU?

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

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

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

Structured query language (SQL)

Starta MySQL Query Browser

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

Databasspråket SQL - online.

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

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

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

ÖVERVAKNING AV SQL SERVER

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

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

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

732G16: Databaser - Design och programmering

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

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

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

Databasspråket SQL - online.

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

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

Databaser och. SQL, utsökningar mot en tabell

Prova på-laboration i SQL

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

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

Databasspråket SQL - online.

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

Vyer, Prepared Statements, Triggers

FileMaker 14. SQL-referens

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

Databaser - Design och programmering

Klientprogrammering mot databaser

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

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

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

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

Introduktion till PHP

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

Grunderna i SQL del 1

Analytisk relationsdatabasdesign

INTRODUKTION TILL JDBC

3. Dynamiska webbplatser, 20 Yhp (4 v)

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 DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

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

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1

Webbprogrammering, grundkurs 725G54

LATHUND. Outlook 2003 SV/EN. RXK Läromedel Tel: , Fax: e-post:

Agenda (obs! halvdag)

1. Treskiktsarkitektur 2. Applika1onsprogramvara 3. Teknisk programvara. Kapitel 6 sid

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

ADO.NET Murach Kapitel 17-20

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

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

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

1. Kvalitetsbegreppet 2. Kommunikation 4. Olika typer av datalagring. 5. Databas 6. DBMS 7. Molntjänster 8. Tabeller. 10. SQL 11.

Resultatrapport. Utvärdering. Anbudslämnare. Utvärderingskriterium

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

Skapa exempeldatabasen

Guide i hur man arbetar med vår butik från WebbButiker.se

Från Excel laddningar till web arbetsflöden

Konceptuella datamodeller

EndNote online. T5 ht 2015 Therese Nilsson/Camilla Persson

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

Transkript:

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 Ta bort dubbletter med DISTINCT WHERE-satsen BETWEEN Sortera sökresultat med ORDER BY INSERT, UPDATE och DELETE Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2 1

Vad är SQL? Structured Query Language (SQL) är ett standardiserat frågespråk (programspråk) för att hämta och modifiera data i en relationsdatabas. Under 1970 utvecklade IBM Structured English Query Language (SEQUEL). SEQUEL byttes senare ut mot SQL eftersom 'SEQUEL' var ett varumärke. 1986 SQL är ANSI-standard 1987 SQL är ISO-standard SQL:2011 är den senaste versionen (standard ANSI) Copyright Mahmud Al Hakim www.webacademy.se 2015 3 T-SQL (Transact-SQL) T-SQL är ett tillägg till standard SQL från Microsoft och Sybase. T-SQL används i MS SQL Server databaser. Alla applikationer som kommunicerar med en MS Server databas skickar T-SQL-satser till servern. Transact-SQL Reference finns här https://msdn.microsoft.com/en-us/library/bb510741(v=sql.110).aspx Copyright 2015 - Mahmud Al Hakim www.webacademy.se 4 2

www.w3schools.com/sql SQL Tutorial Copyright Mahmud Al Hakim www.webacademy.se 2015 5 SQL (Structured Query Language ) SQL DDL Data Definition Language (Databeskrivning) DML Data Manipulation Language (Databearbetning) CREATE SELECT DROP INSERT ALTER DELETE UPDATE 6 3

SQL Syntax SQL-frågor består av ett antal satser (statements) SQL är INTE Case Sensitive (Skiftlägeskänsligt) SQL Nyckelord skrivs normalt i versaler Vissa databashanterare kräver semikolon efter varje sats; www.alhakim.org, mahmud@alhakim.org, 070-7556405 7 Öppna en databas med SQL USE northwind; 8 4

SELECT satsen SELECT är den viktigaste satsen i SQL. Används för att hämta rader från en eller flera tabeller. SELECT * FROM tabell; Eller SELECT kolumn1, kolumn2 FROM tabell; 9 Enkla frågor ; Hämtar alla kolumner och rader från tabellen Customers 10 5

Spara resultatet i en CSV-fil Högerklicka i resultat-panelen och Save Results As Copyright 2015 - Mahmud Al Hakim www.webacademy.se 11 Enkla frågor - Exempel 1. Hämta allt från tabellen Categories 2. Hämta allt från tabellen Contacts 3. Hämta allt från tabellen Employees 4. Hämta allt från tabellen Orders 5. Hämta allt från tabellen Products 6. Hämta allt från tabellen Region 7. Hämta allt från tabellen Shippers 8. Hämta allt från tabellen Suppliers 9. Hämta allt från tabellen Territories 10. Hämta allt från tabellen [Order Details] OBS! Om tabellnamnet består av flera ord använd hakparenteser. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 12 6

Hämta specifika kolumner SELECT ContactName FROM Customers; 13 Hämta specifika kolumner Exempel 1. Hämta CompanyName från tabellen Customers 2. Hämta Country från tabellen Customers 3. Hämta City från tabellen Customers 4. Hämta CompanyName och Address från tabellen Customers 5. Hämta Country och City från tabellen Customers 6. Hämta fullständig adress från Customers (CompanyName, ContactName, Aderss, PostalCode, City och Country) 7. Hämta en lista på produktnamn från tabellen Products. 8. Hämta en lista på produktnamn och antal i lager (UnitInStock) från tabellen Products. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 14 7

SELECT TOP Med SELECT TOP kan hämta en del av en stor tabell. T.ex. visa de första fem raderna OBS! Det är inte alla databashanterare som har SELECT TOP Copyright 2015 - Mahmud Al Hakim www.webacademy.se 15 Alias (kolumn alias) SELECT ContactName As Namn FROM Customers; 16 8

Alias (tabell alias) SELECT C.ContactName FROM Customers AS C; 17 Skapa Alias som kombinerar flera kolumner SELECT Address+', '+City+', '+PostalCode+', '+Country AS Address FROM Customers; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 18 9

Ta bort dubbletter med DISTINCT SELECT DISTINCT City FROM Customers; 19 Hämta och filtrera specifika kolumner med WHERE WHERE Country = 'Mexico'; 20 10

AND och OR Visa alla produkter som finns i lagret och där en order finns. (beställda produkter som finns i lagret). SELECT * FROM Products WHERE UnitsInStock > 0 AND UnitsOnOrder > 0 Visa alla kunder som bor i Germany eller UK WHERE Country='Germany OR Country ='UK'; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 21 Operatorer som används i WHERE Operator Beskrivning = Lika med <> eller!= Inte lika med > Större än < Mindre än >= Större än eller lika med <= Mindre än eller lika med BETWEEN LIKE IN Mellan två olika värden Används för att söka texter Används för att leta efter multipla värden Copyright 2015 - Mahmud Al Hakim www.webacademy.se 22 11

WHERE Flera exempel SELECT * FROM Products WHERE ProductID=1; SELECT * FROM Products WHERE ProductID<=5; SELECT * FROM Products WHERE UnitPrice < 10; SELECT * FROM Products WHERE UnitsInStock!=0; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 23 LIKE, % och _ Visa alla kunder där postnumret börjar på 1 WHERE PostalCode LIKE '1%'; Visa alla länder som innehåller texten land WHERE Country LIKE '%land%'; Visa alla länder som INTE innehåller texten land WHERE Country NOT LIKE '%land%'; Visa alla kunder där postnumrets andra siffra är 1 WHERE PostalCode LIKE '_1%'; (OBS! Understreck) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 24 12

BETWEEN Visa alla produkter som kostar mellan 5 och 10 SELECT * FROM Products WHERE UnitPrice BETWEEN 5 AND 10; Visa alla produkter som INTE kostar mellan 5 och 10 SELECT * FROM Products WHERE UnitPrice NOT BETWEEN 5 AND 10; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 25 IN Visa alla kunder som bor i Paris eller London WHERE City IN ('Paris','London'); Visa alla kunder som INTE bor i Paris eller London WHERE City NOT IN ('Paris','London'); Copyright 2015 - Mahmud Al Hakim www.webacademy.se 26 13

Sortera sökresultat med ORDER BY Visa en lista över alla kunder, sortera efter namn stigande ORDER BY ContactName ASC; (OBS! ASC är defalut, kan utelämnas) Visa en lista över alla kunder, sortera efter Country fallande ORDER BY Country DESC; 27 Tips! Visa sista raden Copyright 2015 - Mahmud Al Hakim www.webacademy.se 28 14

SELECT INTO Kopiera data från en befintlig tabell till en ny tabell Copyright 2015 - Mahmud Al Hakim www.webacademy.se 29 SELECT INTO Välj kolumner Skapa en ny tabell som enbart innehåller info om kontaktpersoner i kundregistret SELECT CompanyName, ContactName, ContactTitle, Phone INTO CustomersContacts FROM Customers; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 30 15

SELECT INTO Välj rader Skapa en ny tabell som enbart innehåller kunder från Sverige. SELECT * INTO CustomersSweden FROM Customers WHERE Country='Sweden'; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 31 INSERT INTO Infoga en ny rad (post/record) i en tabell. INSERT INTO Customers (CustomerID, CompanyName, ContactName, Address, City, PostalCode, Country) VALUES ('12345', 'Web Academy', 'Mahmud Al Hakim', 'Hemfridsvägen 17', 'Sollentuna', '19267', 'Sweden'); Copyright 2015 - Mahmud Al Hakim www.webacademy.se 32 16

UPDATE Uppdaterar en rad (post/record) i en tabell UPDATE Customers SET Phone = '08-53339879' WHERE CustomerID = '12345'; Uppdatera flera fält UPDATE Customers SET CompanyName= 'Web Academy AB', ContactTitle = 'CEO' WHERE CustomerID = '12345'; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 33 DELETE Tar bort en rad från en tabell DELETE FROM Customers WHERE CustomerID ='12345'; VIKTIGT: Om du glömmer WHERE-satsen så töms hela tabellen (du kan inte ångra). DELETE FROM Customers; Satsen tar bort alla rader (tabellen töms). Copyright 2015 - Mahmud Al Hakim www.webacademy.se 34 17

Övningar Svara på följande frågor från Northwind databasen. Skriv SQL-satser, testa och spara resultatet som CSV. 1. Visa en lista över alla kontaktpersoner? 2. Visa en sorterad lista (A-Ö) på alla kontaktpersoner? 3. Från vilka länder kommer kunderna? Visa en tabell över dessa länder. 4. Hur många kunder finns det i databasen? Visa en tabell över alla kunder. 5. Hur många kunder finns det i USA? Visa en tabell över dessa kunder. 6. Hur många kunder finns det i varje land? Visa en tabell. 7. Visa en lista på alla kunder som har kontor i Tyskland? 8. Visa information om kunden som har Berglund som efternamn? 9. Visa en lista över alla kunder som inte kommer från USA? 10. Visa en lista över alla produkter som finns i lagret. 35 18