vad är mysql? · 2015-11-08 · 2 vad är mariadb mariadb är en fortsatt utvecklad gren av mysql-...

20
1 Introduktion MySQL och MariaDB © Copyright Mahmud Al Hakim [email protected] 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 2 https://en.wikipedia.org/wiki/Michael_Widenius

Upload: others

Post on 26-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

1

Introduktion MySQL och MariaDB

© Copyright

Mahmud Al Hakim

[email protected]

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/MySQL2

https://en.wikipedia.org/wiki/Michael_Widenius

Page 2: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

2

Vad är MariaDB

MariaDB är en fortsatt utvecklad gren av MySQL-

databasen.

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/MariaDB3

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 www.apachefriends.org

◦ WampServer www.wampserver.com/en

4 Copyright 2015 Mahmud Al Hakim www.webacademy.se

Page 3: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

3

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

Page 4: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

4

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

Page 5: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

5

Starta WampServer

Copyright 2015 Mahmud Al Hakim www.webacademy.se 9

Starta MySQL console

Copyright 2015 Mahmud Al Hakim www.webacademy.se 10

Page 6: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

6

MySQL console (monitor)

Copyright 2015 Mahmud Al Hakim www.webacademy.se 11

Blankt lösenord

Eller root

Visa alla databaser med kommandot

SHOW DATABASES

Copyright 2015 Mahmud Al Hakim www.webacademy.se 12

Page 7: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

7

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;

Copyright 2015 Mahmud Al Hakim www.webacademy.se 13

Testa direkt i

MySQL Console

phpMyAdmin

phpMyAdmin är ett gratis och

öppenkällkodsverktyg skrivet i PHP för

att administrera MySQL via en

webbläsare.

Copyright 2015 Mahmud Al Hakim www.webacademy.se 14

Starta phpMyAdmin

Page 8: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

8

phpMyAdmin gränssnitt

Copyright 2015 Mahmud Al Hakim www.webacademy.se 15

Skapa en databas

Copyright 2015 Mahmud Al Hakim www.webacademy.se 16

Öppna fliken

Databaser

Ange

Databasnamn Välj

Kollationering

(Teckenkodning)

Page 9: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

9

Skapa en tabell

Copyright 2015 Mahmud Al Hakim www.webacademy.se 17

Välj en

Databas

Ange namn

och antal kolumner

Skapa en tabell forts…

Copyright 2015 Mahmud Al Hakim www.webacademy.se 18

Ange

kolumnnamn

Välj Datatyp

T.ex. VARCHAR och

ange Längden

Page 10: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

10

Lägg till data

Copyright 2015 Mahmud Al Hakim www.webacademy.se 19

Öppna fliken

”Lägg till”

Skriv data

och Kör

Exportera en tabell (eller en databas)

Copyright 2015 Mahmud Al Hakim www.webacademy.se 20

Öppna fliken

”Exportera”

Välj format

Page 11: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

11

Kopiera en tabell

Copyright 2015 Mahmud Al Hakim www.webacademy.se 21

Öppna fliken

”Operationer”

Ange ett namn

och Kör

Töm eller ta bort en tabell

Copyright 2015 Mahmud Al Hakim www.webacademy.se 22

Öppna fliken

”Operationer”

Page 12: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

12

Ö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

Page 13: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

13

Steg 2.1 – Skapa tabellen Kunder

Copyright 2015 Mahmud Al Hakim www.webacademy.se 25

Primärnyckel

anges här

Steg 2.2 – Skapa tabellen Filmer

Copyright 2015 Mahmud Al Hakim www.webacademy.se 26

Page 14: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

14

Steg 2.3 – Skapa tabellen Uthyrning

Copyright 2015 Mahmud Al Hakim www.webacademy.se 27

Steg 3 – Importera data via CSV

Copyright 2015 Mahmud Al Hakim www.webacademy.se 28

Välj en tabell

Öppna fliken

Importera

Välj en fil

Se nästa bild

Page 15: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

15

Copyright 2015 Mahmud Al Hakim www.webacademy.se 29

Välj

CSV using LOAD DATA(Detta är ett MySQL-kommando)

Ändra till

semikolon

Lämna allt annat

och Kör

Kör SQL-frågor

Copyright 2015 Mahmud Al Hakim www.webacademy.se 30

Page 16: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

16

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

-- 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) >= 10Copyright 2015 Mahmud Al Hakim www.webacademy.se 32

SQL mot databasen Videobutik – Del 2

Page 17: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

17

-- 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 3

-- 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

SQL mot databasen Videobutik – Del 4

Page 18: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

18

-- 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 5

-- 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

SQL mot databasen Videobutik – Del 6

Page 19: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

19

-- 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 7

-- 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.NamnCopyright 2015 Mahmud Al Hakim www.webacademy.se 38

SQL mot databasen Videobutik – Del 8

Page 20: Vad är MySQL? · 2015-11-08 · 2 Vad är MariaDB MariaDB är en fortsatt utvecklad gren av MySQL- databasen. Programkoden går under GNU General Public License, i motsats till den

20

-- 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 9

-- 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

SQL mot databasen Videobutik – Del 10