Introduktion MySQL och MariaDB

Relevanta dokument
Vad är en databas? Databasutveckling Med MySQL/MariaDB

Vad är SQL? Introduktion till SQL

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

Innehåll. MySQL Grundkurs

Databasutveckling Introduktion till SQL och TSQL

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

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

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

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

Databaser och Datamodellering Foreläsning IV

Introduktion till MySQL

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

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.

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

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

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

Starta MySQL Query Browser

Installera din WordPress med 9 enkla steg

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

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

Structured query language (SQL)

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

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

VAD GÖR DU / VEM ÄR DU?

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

Dokumentation för VLDIT AB. Online classroom

Konceptuella datamodeller

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

Tentamen för DD1370 Databasteknik och informationssystem

Prova på-laboration i SQL

3. Dynamiska webbplatser, 20 Yhp (4 v)

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

Databasspråket SQL - online.

emopluppen Installationsmanual

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

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

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

Databasspråket SQL - online.

PHP - Fortsättning. PHP och MySQL

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

NORMALISERING. Mahmud Al Hakim

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

Databasspråket SQL - online.

Exempel-Tentamen III

ER-Diagram. Databasutveckling Diagram

Nya webbservern Dvwebb.mah.se

Databasspråket SQL - online.

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

WCMS-15, Webbutvecklare CMS

Agenda (obs! halvdag)

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

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

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

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

Sample exam questions. Database exam TIG058

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

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

VAD GÖR DU / VEM ÄR DU?

Databaser. Vad du ska lära dig: Ordlista

Handbok SSCd. Peter H. Grasch

Grunderna i SQL del 1

Labb 1. prompt> mysql -h db-und.ida.liu.se -u [liuid] -p Enter password. mysql --host=db-und.ida.liu.se --user=[liuid] --password=[lösen]

Skapa exempeldatabasen

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

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

Databasspråket SQL - online.

Stored procedure i ASP.NET

Kort handledning för Databassystemet Ingres och gränssnittsprogrammet isql

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

Lösningar till tentamen i EDAF75

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

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

Handledning för installation och komma igång med Joomla

Labb 1. prompt> mysql --host=db-und.ida.liu.se --user=[liuid] -- password=[lösenord] [liuid]

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

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

Open Source - Utmaningar och fördelar

Handbok Simond. Peter H. Grasch

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås

TENTAMEN DATABASKUNSKAP ITEK12

Funktionsbeskrivning

Hemsideutveckling för Anjool AB

Webbprogrammering, grundkurs 725G54

Programvaror - Jo, tack, det vill vi ha...

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Stompunktsmanual Trafikverket

Innehållsförteckning. Användarmanual för Lockbee Backup Databas 2009

Skapa din egen MediaWiki

Databaser och SQL - en kort introduktion

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

Transkript:

Introduktion MySQL och MariaDB Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är MySQL? MySQL är en databashanterare. Den använder sig av frågespråket SQL. MySQL är fri programvara, licensierad under GNU General Public License. Programmet skrevs och underhölls före 2008 av det svenska företaget MySQL AB i Uppsala. De sålde support och servicekontrakt såväl som kommersiella licensierade kopior av MySQL. Programmets huvudsakliga utvecklare var finlandssvenske Michael Widenius och David Axmark. Grundarna arbetar numera med MariaDB. 2008 köptes MySQL AB av Sun Microsystems för en miljard dollar och den 27 januari 2010 köptes Sun upp av Oracle för 8,5 miljarder amerikanska dollar. Källa https://sv.wikipedia.org/wiki/mysql https://en.wikipedia.org/wiki/michael_widenius 2 1

Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQLdatabasen. Programkoden går under GNU General Public License, i motsats till den numera Oracle-ägda MySQL, där uppdateringar skyddas i allt större utsträckning genom upphovsrätt. Bakgrunden är att Oracle inte verkar ha några planer för MySQL's framtida livscykel. Bakom MariaDB står de ursprungliga skaparna till MySQL, Michael Widenius, David Axmark och Allan Larsson. Källa: https://sv.wikipedia.org/wiki/mariadb 3 Webbserverprogrampaket Webbserverprogrampaket är ett paket av program som inkluderar några applikationer som används för att skapa och arbeta med databaser och serverbaserade webbsidor, t.ex. Apache, MySQL/MariaDB, PHP och phpmyadmin. Exempel på webbserverprogrampaket är: XAMPP WampServer www.apachefriends.org www.wampserver.com/en 4 Copyright 2015 Mahmud Al Hakim www.webacademy.se 2

XAMPP www.apachefriends.org Copyright 2015 Mahmud Al Hakim www.webacademy.se 5 WampServer www.wampserver.com/en Copyright 2015 Mahmud Al Hakim www.webacademy.se 6 3

Ladda ner och installera WampServer Copyright 2015 Mahmud Al Hakim www.webacademy.se 7 OBS! Tillåt åtkomst Copyright 2015 Mahmud Al Hakim www.webacademy.se 8 4

Starta WampServer Copyright 2015 Mahmud Al Hakim www.webacademy.se 9 Starta MySQL console Copyright 2015 Mahmud Al Hakim www.webacademy.se 10 5

MySQL console (monitor) Blankt lösenord Eller root Copyright 2015 Mahmud Al Hakim www.webacademy.se 11 Visa alla databaser med kommandot SHOW DATABASES Copyright 2015 Mahmud Al Hakim www.webacademy.se 12 6

Några vanliga kommandon SHOW DATABASES; CREATE DATABASE TestDatabas; USE TestDatabas; CREATE TABLE TestTabell(id INT); SHOW TABLES; INSERT INTO TestTabell VALUES(1), (2), (3); SELECT * FROM TestTabell; DROP DATABASE TestDatabas; Testa direkt i MySQL Console Copyright 2015 Mahmud Al Hakim www.webacademy.se 13 phpmyadmin phpmyadmin är ett gratis och öppenkällkodsverktyg skrivet i PHP för att administrera MySQL via en webbläsare. Starta phpmyadmin Copyright 2015 Mahmud Al Hakim www.webacademy.se 14 7

phpmyadmin gränssnitt Copyright 2015 Mahmud Al Hakim www.webacademy.se 15 Skapa en databas Öppna fliken Databaser Ange Databasnamn Välj Kollationering (Teckenkodning) Copyright 2015 Mahmud Al Hakim www.webacademy.se 16 8

Skapa en tabell Välj en Databas Ange namn och antal kolumner Copyright 2015 Mahmud Al Hakim www.webacademy.se 17 Skapa en tabell forts Ange kolumnnamn Välj Datatyp T.ex. VARCHAR och ange Längden Copyright 2015 Mahmud Al Hakim www.webacademy.se 18 9

Lägg till data Öppna fliken Lägg till Skriv data och Kör Copyright 2015 Mahmud Al Hakim www.webacademy.se 19 Exportera en tabell (eller en databas) Öppna fliken Exportera Välj format Copyright 2015 Mahmud Al Hakim www.webacademy.se 20 10

Kopiera en tabell Öppna fliken Operationer Ange ett namn och Kör Copyright 2015 Mahmud Al Hakim www.webacademy.se 21 Töm eller ta bort en tabell Öppna fliken Operationer Copyright 2015 Mahmud Al Hakim www.webacademy.se 22 11

Övning Skapa en databas åt en liten videobutik. Använd följande schema Kunder(Kundnummer, Namn, Gatuadress, Postnummer, Ort) Filmer(FilmID, Titel, Kategori, Huvudroll, Pris) Uthyrning(Film, Kund, Uthyrning, Aterlamning) Importera CSV-filer till databasen. Kör några SQL-frågor mot databasen. Copyright 2015 Mahmud Al Hakim www.webacademy.se 23 Steg 1 Skapa databasen Copyright 2015 Mahmud Al Hakim www.webacademy.se 24 12

Steg 2.1 Skapa tabellen Kunder Primärnyckel anges här Copyright 2015 Mahmud Al Hakim www.webacademy.se 25 Steg 2.2 Skapa tabellen Filmer Copyright 2015 Mahmud Al Hakim www.webacademy.se 26 13

Steg 2.3 Skapa tabellen Uthyrning Copyright 2015 Mahmud Al Hakim www.webacademy.se 27 Steg 3 Importera data via CSV Välj en tabell Öppna fliken Importera Välj en fil Se nästa bild Copyright 2015 Mahmud Al Hakim www.webacademy.se 28 14

Välj CSV using LOAD DATA (Detta är ett MySQL-kommando) Ändra till semikolon Lämna allt annat och Kör Copyright 2015 Mahmud Al Hakim www.webacademy.se 29 Kör SQL-frågor Copyright 2015 Mahmud Al Hakim www.webacademy.se 30 15

SQL mot databasen Videobutik Del 1 -- Enkla frågor mot enstaka tabeller SELECT * FROM Kunder SELECT * FROM Filmer SELECT * FROM Uthyrning -- Visa ej återlämnade filmer. SELECT * FROM Uthyrning WHERE Aterlamning IS NULL -- Vilka olika filmer med Mel Gibson i huvudrollen finns i databasen? SELECT * FROM Filmer WHERE Huvudroll = 'Mel Gibson' Copyright 2015 Mahmud Al Hakim www.webacademy.se 31 SQL mot databasen Videobutik Del 2 -- Visa antal filmer som inte lämnats tillbaka per kund (Visa kundnummer). SELECT Kund, Count(Film) AS 'Antal filmer' FROM Uthyrning WHERE Aterlamning IS NULL GROUP BY Kund -- Visa en lista på alla kunder (kundnummer) som har mer än 10 filmer. SELECT U.Kund, Count(U.film) FROM Uthyrning U WHERE U.Aterlamning IS NULL GROUP BY U.Kund HAVING Count(U.film) >= 10 Copyright 2015 Mahmud Al Hakim www.webacademy.se 32 16

SQL mot databasen Videobutik Del 3 -- Cross Join (Kartesisk produkt) SELECT * FROM kunder, Uthyrning; SELECT * FROM Filmer, Uthyrning; -- Join (Inner Join) (koppla flera tabeller) SELECT * FROM Kunder, Uthyrning WHERE kunder.kundnummer = Uthyrning.Kund -- Visa några fält från olika tabeller SELECT Kunder.Namn, Uthyrning.Film, Uthyrning.Uthyrning FROM Kunder, Uthyrning WHERE kunder.kundnummer = Uthyrning.Kund Copyright 2015 Mahmud Al Hakim www.webacademy.se 33 SQL mot databasen Videobutik Del 4 -- Använd Alias SELECT K.Namn, U.Film, U.Uthyrning FROM Kunder AS K, Uthyrning AS U WHERE K.Kundnummer = U.Kund -- Använd nyckelorden INNER JOIN ON istället för WHERE SELECT K.Namn, U.Film, U.Uthyrning FROM Kunder AS K INNER JOIN Uthyrning AS U ON K.Kundnummer = U.Kund -- INNER är inte obligatoriskt (Bara JOINT = INNER JOIN) SELECT K.Namn, U.Film, U.Uthyrning FROM Kunder AS K JOIN Uthyrning AS U ON K.Kundnummer = U.Kund Copyright 2015 Mahmud Al Hakim www.webacademy.se 34 17

SQL mot databasen Videobutik Del 5 -- Visa ej återlämnade filmer. Visa kundnamnet och filmid (FK). SELECT K.Namn, U.Film, U.Uthyrning FROM Kunder AS K, Uthyrning AS U WHERE K.Kundnummer = U.Kund AND U.Aterlamning IS NULL -- Visa ej återlämnade filmer. Visa Filmtitel och uthyrningsdatumet. -- (Vilka filmer finns ute) SELECT Filmer.Titel, Uthyrning.Uthyrning FROM Uthyrning, Filmer WHERE Aterlamning IS NULL AND Filmer.FilmID = Uthyrning.Film ORDER BY Uthyrning DESC Copyright 2015 Mahmud Al Hakim www.webacademy.se 35 SQL mot databasen Videobutik Del 6 -- Visa ej återlämnade filmer. -- Visa Kundnamn, Filmtitel och uthyrningsdatumet. SELECT K.Namn, F.Titel, U.Uthyrning FROM Filmer F, Kunder K, Uthyrning U WHERE K.Kundnummer = U.Kund AND F.FilmID = U.Film AND Aterlamning IS NULL -- Visa kundnamn och filmtitel som finns i tabellen uthyrning! SELECT K.Namn, F.Titel, U.Uthyrning, U.Aterlamning FROM Kunder AS K, Filmer AS F, Uthyrning AS U WHERE K.Kundnummer = U.Kund AND F.FilmID = U.Film ORDER BY F.Titel Copyright 2015 Mahmud Al Hakim www.webacademy.se 36 18

SQL mot databasen Videobutik Del 7 -- Hur många gånger har "Dödligt vapen 1" hyrts ut? SELECT Count(u.uthyrning) FROM Filmer AS F, Uthyrning U WHERE F.FilmID = U.Film AND F.Titel = 'Dödligt vapen 1' -- Visa antal filmer som inte lämnats tillbaka per kund -- (Visa Kundnamnet). SELECT K.Namn, Count(U.Film) AS 'Antal filmer' FROM Uthyrning U, Kunder K WHERE Aterlamning IS NULL AND K.Kundnummer = U.Kund GROUP BY K.Namn Copyright 2015 Mahmud Al Hakim www.webacademy.se 37 SQL mot databasen Videobutik Del 8 -- Visa en lista på alla kunder (Kundnamn) som har mer än 10 filmer. SELECT K.Namn, Count(U.film) FROM Uthyrning U, Kunder K WHERE U.Aterlamning IS NULL AND K.Kundnummer = U.Kund GROUP BY K.Namn HAVING Count(U.film) >= 10 -- Visa en lista på alla filmer som är ute -- Visa kundnamn och filmtitel SELECT K.Namn, F.Titel FROM Uthyrning U, Kunder K, Filmer F WHERE U.Aterlamning IS NULL AND K.Kundnummer = U.Kund AND F.FilmID = U.Film ORDER BY K.Namn Copyright 2015 Mahmud Al Hakim www.webacademy.se 38 19

SQL mot databasen Videobutik Del 9 -- Vilka dramor har Vera Lindberg hyrt? (Kategori=Drama) SELECT F.Titel, K.Namn, U.Uthyrning, F.Kategori FROM Kunder K, Filmer F, Uthyrning U WHERE K.Kundnummer = U.Kund AND F.FilmID = U.Film AND F.Kategori = 'Drama' AND K.Namn = 'Vera Lindberg' -- Använd JOIN istället för WHERE SELECT F.Titel, K.Namn, U.Uthyrning, F.Kategori FROM Uthyrning U JOIN Kunder K ON K.Kundnummer = U.Kund JOIN Filmer F ON F.FilmID = U.Film WHERE F.Kategori = 'Drama' AND K.Namn = 'Vera Lindberg' Copyright 2015 Mahmud Al Hakim www.webacademy.se 39 SQL mot databasen Videobutik Del 10 -- Vilka filmer som kostar 30 kronor att hyra har Natalie Karlsmark hyrt? SELECT F.Titel, F.Pris, K.Namn FROM Kunder K, Filmer F, Uthyrning U WHERE F.Pris = 30 AND K.Namn = 'Natalie Karlsmark' AND K.Kundnummer = U.Kund AND F.FilmID = U.Film -- Använd JOIN istället för WHERE SELECT F.Titel, F.Pris, K.Namn FROM Uthyrning U JOIN Kunder K ON K.Kundnummer = U.Kund JOIN Filmer F ON F.FilmID = U.Film WHERE F.Pris = 30 AND K.Namn = 'Natalie Karlsmark' Copyright 2015 Mahmud Al Hakim www.webacademy.se 40 20