Databasehåndtering med MySQL

Download Report

Transcript Databasehåndtering med MySQL

Databasehåndtering med
MySQL
Databaseverktøy
 DBMS (Database Management System)
er et program som benyttes til å
kommunisere med databaser
 DBMS brukes blant annet til å:
 opprette databaser
 hente data fra databaser
 skrive data til databaser
 slette data og databaser
Brukere
 Hver bruker som skal jobbe mot
databasen, trenger en brukerkonto
 I DBMS’et er det definert hvilke rettigheter
hver brukerkonto har
 Administrator har adgang til å definere
rettigheter til de forskjellige brukerkontoene
MySQL
 Mye brukt database
 Open source
 kildekoden er fritt tilgjengelig
 http://www.mysql.com
SQL
 SQL (Structured Query Language)
 Spørrespråk (query language) for databaser
 etablert som standard i 1986
 gir muligheten til å aksessere data i en database
 De vanligste SQL-kommandoene:
 For henting av data
 Select
 For manipulasjon av rader
 Insert, Update, Delete
 For manipulasjon av tabeller
 Create, Drop
SQL - Eksempel
 Vi ønsker å hente alle data fra tabellen ”bok”
SELECT *
FROM bok
SQL
 ”SQL-setninger” har en struktur som ligner på ”naturlig
språk”
 med ”verb, subjekter og adjektiver”
 SQL-setningene begynner alltid med et verb.
1.
2.
3.
4.
CREATE TABLE Ordre (
Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
Vare VARCHAR(10),
Antall INT(5) ) ;
INSERT INTO Ordre VALUES (0,'Epler',12) ;
SELECT Antall FROM Ordre WHERE Vare LIKE 'Epler’ ;
DROP TABLE Ordre;
 Kjør SQL-setningene over i mySQL-Front
 Forklar hva hver av disse gjør
 Bruk gjerne http://www.mysql.com
Oppgave
 Lage en SQL-setning som lager en tabell
 Tabellens navn:
 Product
 Atributter:
 Id (primærnøkkel)
 Price (heltall)
 Description (256 tegn)
 Bruk mySql-Front til å kjøre SQL-setningen
INSERT, UPDATE, DELETE
 INSERT INTO tabell (felter) VALUES (verdier)
• INSERT INTO bileiere VALUES
(0,‘Jan‘,’Hansen’,’1473’);
 UPDATE tabell SET betingelse WHERE betingelse
• UPDATE bileiere SET fornavn=’Marie' WHERE
fornavn=’Maria’;
 DELETE FROM tabell (felt) WHERE betingelse
• DELETE FROM bileiere WHERE etternavn=‘Seim’;
Oppgave
 Ta utgangspunkt i løsningen din fra forrige
oppgave
 Bruk SQL-setninger og mySQL-Front til å:
 Sette inn fem produkter
 Endre produktbeskrivelsen på alle produkter
med id mindre enn 3 til
 ”Produktet er utgått”
 Slette produktet med id = 2
SELECT
 Se alle data i en tabell.
• SELECT * FROM bileiere ;
 Se ett eller flere felt i en tabell
• SELECT etternavn, postnr FROM bileiere ;
 Se sortert utvalg
• SELECT * FROM bileiere ORDER BY etternavn ;
 Se gruppert utvalg av en tabell
• SELECT * FROM bileiere GROUP BY fornavn ;
 Se de 3 første postene i en tabell, sortert
• SELECT * FROM bileiere ORDER BY etternavn LIMIT 0,3 ;
 Se distinkte verdier
• SELECT DISTINCT biltype FROM biler ;
 Søk etter en del av en tekst
• SELECT biltype FROM biler WHERE biltype LIKE ’t%’ ;
Oppgave
 Ta utgangspunkt i løsningen din fra forrige
oppgave
 Bruk SQL-setninger og mySQL-Front til å finne:
 all informasjon om alle produkter
 Produktinformasjon for alle produkter sortert etter pris
 All informasjon om de to dyreste produktene
 Alle priser (og bare priser) sortert
SELECT fra flere tabeller
SELECT fornavn, etternavn, biltype
FROM bileiere, biler
WHERE eier_id=bileier_id;
 Kan også skrives som:
SELECT fornavn, etternavn, biltype
FROM bileiere, biler
WHERE bileiere.eier_id=biler.bileier_id;
 Kan dette brukes til noe?
OPPGAVE1: bilregister
• Databasen skal lagre informasjon om
- bileiere (fornavn, etternavn, adresse)
- biler (bilnummer, biltype, farge)
• Betingelse: En bil kan kun ha en eier, men en
eier kan eie flere biler.
• Oppgave:
1. Lag en databasemodell som beskriver bilregisteret
2. Lag databasen slik du har foreslått i MySQL
1. Fyll inn noen data vha insert
2. Modifiser data vha update
3. Slett noen rader vha delete
storoppgave
OPPGAVE2: bibliotekdatabase
• Databasen som skal lagre informasjon om
- bøker
- låntakere
- utlån
- reservasjoner
• En bok kan finnes i flere eksemplarer
Alle utlån har samme utlånstid (1 mnd)
• Oppgave:
Avgjør hvilke entitetstyper (og attributter) du trenger
samt relasjonene mellom entitetstypene.
(Det er noen tips på de to neste sidene, prøv å løse
oppgaven uten de)
Mulige entitetstyper (oppg2)
• låntakere
fornavn, etternavn, adresse, postnr, poststed
• bøker
tittel, forfatters fornavn, forfatters etternavn, genre, kode,
ISBN-nr, forlag
kode = bokens plassering i bibliotekets hyller
• eksemplarer
status
status = inne, utånt eller reservert
• reservasjoner
dato
• utlån
dato
Mulige relasjoner (oppg2)
• En bok kan ha flere eksemplarer, et eksemplar
hører til en bok.
• En låner kan ha flere utlån, et utlån er koblet til
en låner og et eksemplar.
• En låner kan ha flere reservasjoner, en
reservasjon er koblet til en bok.
• En bok kan ha flere reservasjoner, en
reservasjon er koblet til en bok.