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.