250 likes | 402 Views
DATABASHANTERING för programmerare. Lektion 7 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se. Idag. Skapa en databas till Videobutikskedja. Normalisering. Butik (butikNamn, butikAdress, kundNamn, kundAdress, telefonNummer, film, pris, uthyrning, aterlamning ).
E N D
DATABASHANTERINGför programmerare Lektion 7 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se
Idag Skapa en databas till Videobutikskedja
Normalisering • Butik (butikNamn, butikAdress, kundNamn, kundAdress, telefonNummer, film, pris, uthyrning, aterlamning )
Förslag till databasen Videobutik • Videobutik databasen kan ha följande tabeller • Butik • Kunder • Telefon • Filmer • Antal • Uthyrning
Databasschema • Butik(ButikID, Namn, Gatuadress, Postnummer, Postadress, Oppnar, Stanger, Helgoppen) • Kunder(Kundnummer, Fornamn, Efternamn, Gatuadress, Postnummer , Postadress) • Telefon(TelefonID, Nummer, ButikID) • Filmer(FilmID, Namn, Kategori, Regissor, Huvudroll, Ar, Land, Pris ) • Antal(FilmID, ButikID, Totalt, Inne ) • Uthyrning(FilmID, ButikID, Kundnummer, Uthyrning, Aterlamning )
Tabellen Butik • CREATE TABLE Butik (ButikID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,Namn VARCHAR(30),Gatuadress VARCHAR(30),Postnummer VARCHAR(6),Postadress VARCHAR(20),Oppnar TIME,Stanger TIME,Helgoppen ENUM(’Y’, ’N’));
Tabellen Telefon • CREATE TABLE Telefon (TelefonID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,Nummer VARCHAR(20),ButikID INT);
Tabellen Kunder • CREATE TABLE Kunder (Kundnummer INT NOT NULL PRIMARY KEY AUTO_INCREMENT,Fornamn VARCHAR(20),Efternamn VARCHAR(20),Gatuadress VARCHAR(20),Postnummer VARCHAR(6),Postadress VARCHAR(20));
Tabellen Filmer • CREATE TABLE Filmer (FilmID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,Namn VARCHAR(40),Kategori ENUM (’Drama’, ’Rysare’, ’Action’, ’Thriller’, ’Komedi’),Regissor VARCHAR(40),Huvudroll VARCHAR(40), Ar YEAR,Land VARCHAR(20), Pris INT);
Tabellen Antal • CREATE TABLE Antal(FilmID INT NOT NULL,ButikID INT NOT NULL,Totalt INT,Inne INT);
Tabellen Uthyrning • CREATE TABLE Uthyrning(FilmID INT NOT NULL,ButikID INT NOT NULL,Kundnummer INT NOT NULL,Uthyrning DATE,Aterlamning DATE);
Importera data till MySQL • Ladda ner dessa filer: • antal.txt • filmer.txt • telefon.txt • butik.txt • kunder.txt • uthyrning.txt • LOAD DATA INFILE ’C:/Videobutik/antal.txt’ INTO TABLE Antal;
Frågor • Visa all data i alla kolumner i tabellen Telefon. • Visa all Fornamn och Efternamn i Kunder. • Visa alla svenska filmer i tabellen Filmer. • Visa information om kunder som har Johansson i efternamnet • Visa alla amerikanska filmer som kostar 25 kronor att hyra. • Visa alla som heter Mikael eller Michael i Kunder. • Visa alla vars efternamn börjar på Lind i Kunder. • Visa alla kunder som inte bor i Stockholm. • Visa alla länder som det finns filmer från, utan några dubbletter. • Visa en lista på alla filmer som finns, men där kolumnens namn byts till Filmer.
SQL Fråga 1 • Visa all data i alla kolumner i tabellen Telefon.
SQL Fråga 2 • Visa all Fornamn och Efternamn i Kunder.
SQL Fråga 3 • Visa alla svenska filmer i tabellen Filmer.
SQL Fråga 4 • Visa information om kunder som har Johansson i efternamnet
SQL Fråga 5 • Visa alla amerikanska filmer som kostar 25 kronor att hyra.
SQL Fråga 6 • Visa alla som heter Mikael eller Michael i Kunder.
SQL Fråga 7 • Visa alla vars efternamn börjar på Lind i Kunder.
SQL Fråga 8 • Visa alla kunder som inte bor i Stockholm.
SQL Fråga 9 • Visa alla länder som det finns filmer från, utan några dubbletter.
SQL Fråga 10 • Visa en lista på alla filmer som finns, men där kolumnens namn byts till Filmer.