Database med OpenOffice og MySQLbok.it-fag.no/konferanse/2004/referat 2004/mysql/Forenkla...

17
Database med OpenOffice og MySQL Av Ingrid Salt 16.02.2004

Transcript of Database med OpenOffice og MySQLbok.it-fag.no/konferanse/2004/referat 2004/mysql/Forenkla...

Database med OpenOffice

ogMySQL

Av Ingrid Salt 16.02.2004

InnholdslisteKom i gang med OpenOffice og MySQL............................................................. 3

Installering av MySQL.............................................................................. 3Litt om SQL språket................................................................................... 3

Starte mysql......................................................................................... 3Kvar finn vi databasefilene....................................................................... 3Lage ein database.................................................................................. 3Lage ein tabell...................................................................................... 4

Litt om felttyper:................................................................................4Legge data inn i tabellen..........................................................................5Spørring mot ein tabell............................................................................ 5Endre tabellar og database....................................................................... 6Eit eksempel der vi lagar klasseliste for 2INA (Brukarsystem)...............................7

Lag databasen:...................................................................................7Legg inn data i tabellane:......................................................................7Spørringer mot databasen..................................................................... 7

Koble til ei datakilde i OpenOffice..................................................................9Bruk av databasen................................................................................ 11Rediger tabellane i databasen.................................................................. 11Lage spørring ......................................................................................12Lage rapportar.....................................................................................13Lage skjema........................................................................................15

Kjelder................................................................................................. 17

2

Kom i gang med OpenOffice og MySQL

Installering av MySQL

Filene finn du på www.mysql.com eller på Diverse på elevnett(P:) Brukarsystem/Mysql

Det er v ik t ig at du kopierer f i lene over t i l maskina lokal t før dubyr jar å ins ta l lere.

Installer MySQLInstaller ODBC-driverenBruk utforsker og gå til C:\mysql\bindobbeltklikk på winmysqladmin.exe

Skriv inn brukarnamn og passord.

Litt om SQL språket

Starte mysqlFor å starte MySQL i kommandolinjemodus brukar du utforskar og finn mappaC:\mysql\bin. Dobbeltklikk på mysql. Du har no mysql> prompten på skjermen.

Kvar finn vi databasefilene

Databasene ligg i mappa C:\mysql\data derligg det to databaser – mysql som er ein slagsadministativ database som held orden pårettigheiter og tilgangar til dei andredatabasene. Den andre databasen heiter testden er tom.

Lage ein database

For å vise dei databasene som alt eksisterer skriv du:

mysql>SHOW DATABASES;Dette viser dei databasene som alt eksisterer. Når du skal lage ein ny database må denha ei namn som er unikt for din database server. Alså ingen av dei namna som visast nårdu brukar SHOW DATABASES.

For å lage ein ny database skriv du:

mysql>CREATE DATABASE databasenamn;

3

Du har no laga ein ny database for å kunne bruke den må du gi beskjed om det:

mysql>USE databasenamn;

Lage ein tabell

Du kan vise kva tabellar som alt finst i databasen med:

mysql>SHOW TABLES;

Lage ein tabell (entitet):

mysql>CREATE TABLE tabellnamn1(felt1 TYPE(LENGDE), felt2 TYPE(LENGDE), felt3 TYPE(LENGDE),->felt4 TYPE(LENGDE));

TYPE er den felttypen du vel. Varchar er ein teksttype denne må spesifiserast medlengde. Char er ein type for tegn og brukast når feltet berre skal innehalde eit teikn.Date er ein type for dato. Sjå tabell lenger nede for full oversikt over dei ulike typane(side 461 i boka).

Lage ein tabell med primærnøkkel:

CREATE TABLE tabellnamn(id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, felt2 TYPE(LENGDE), felt3 TYPE(LENGDE),felt4 TYPE(LENGDE)PRIMARY KEY (id)

);

Litt om felttyper:Det finnast mange ulike felttyper i MySQL, men ikkje alle er like intressante. Dei mestvanlege er heiltal og tekststrenger.

Feltnavn Beskriving

varchar(n)varchar(n) er eit enkelt tekstfelt med maks lengde n. Bytt ut nmed et passande stort tal, men n kan ikkje vere større enn 255.Til større tekstfelt, bruk heller text.

texttext er eit stort tekstfelt. Det er veldig treigt å søke på tekstfeltog dei bør unngåast der dei kan. Men, hvis ein skal lagre størremengder data er dei vegen å gå.

int unsigned Eit heiltal som ikkje kan ha negative verdier. Maksverdi ligg på ca4.2 milliardar.

int Eit heiltal mellom ca -2.1 milliardar og +2.1 milliardar

Hvis du vil bruke fleire felttypar enn dette, sjå vedlegget meir om felttypar.

4

Eit døme:

CREATE TABLE venner ( id int unsigned AUTO_INCREMENT NOT NULL, fornavn varchar(32), etternavn varchar(32), tlf int unsigned, PRIMARY KEY (id));

For å sjå den nye tabellen kan du køyre MySQL-kommandoen DESCRIBE tabellnavn;

Legge data inn i tabellenDersom du skal legge inn data i tabellen er syntaksen enten slik:

INSERT INTO tabellnavnVALUES(verdi1,verdi2,verdi3.....);

eller slik:INSERT INTO tabellnavn(feltnavn1,feltnavn2,...,feltnavnN)

VALUES(verdi1,verdi2,...,verdiN);

Døme der vi legg data inn i tabellen venner:INSERT INTO venner(fornavn, etternavn, tlf)

VALUES ('Ingrid', 'Salt', 70073008);

Dersom du har ei tekstfil med data (der kvart felt er skilt med tabulator og det er kunein post per linje) kan du bruke kommandoen LOAD:

LOAD DATA INFILE «namn.txt» INTO TABLE venner;

Spørring mot ein tabell

Spørre mot alle poster i tabellen:

SELECT * FROM tabellnamn;

Spørre etter alle poster i felt2;

SELECT' (felt2) FROM tabellnamn;

Spørre etter alle poster i tabellen sortert:

SELECT * FROM tabellnamn ORDER BY felt1;

Sortert i omvendt rekkefølge:

SELECT * FROM tabellnamn ORDER BY felt1 DESC;

5

Spørring med betingelse:

SELECT * FROM tabellnamn WHERE felt1=verdi;Her kan du og bruke operatorene < og >.

Spørring med sammmensatt betingelse:

SELECT * FROM tabellnamn WHERE felt1>verdi AND felt1>verdi;

Sende ei spørring til ei tekstfil

SELECT * INTO OUTFILE "minedata.txt" FROM tabellnamn;

Endre tabellar og databaseNår vi held på med databaser vil behovet for å endre på tabellar og felttyper ofte meldeseg. MySQL har og kommandoar for dette.

Redigere data som alt ligg i databasene

UPDATE tabell SET felt='verdi' WHERE felt='verdi';

Slette postar i ein tabell

DELETE FROM tabellnamn WHERE felt='verdi';

Slette ein tabell med alt som ligg i den

DROP TABLE tabellnamn;

Slette database

DROP databasenamn;

Kommandoen ALTER TABLE vil prøve å ta vare på dei data som alt er lagt inn idatabasen dersom det er mogleg. Feltnamn og nyttfeltnamn kan vere like. Eit typiskeksempel på når ein har behov for dette kan vere når eit tekstfelt er forlite og einynskjer å utvide dette. Det finst fleire mogleheiter ved bruk av ALTER TABLE sjå kap.6.5.4 i manualen til MySQL.

Legge til eit felt

ALTER TABLE tabellnamnADD feltnamn felttype;

Fjerne eit felt

ALTER TABLE tabellnavnDROP feltnavn;

Endre på eit felt

ALTER TABLE tabellnamn

6

CHANGE feltnamnnyttfeltnamn nyfelttype;

Sette primærnøkkel som manglar

ALTER TABLE tabellnamnADD PRIMARY KEY(felt);

Eit eksempel der vi lagar klasseliste for 2INA (Brukarsystem)

Lag databasen:CREATE DATABASE 2ina;

Bruk databasen:

USE 2ina;

Lag tabellen elev:

CREATE TABLE Elev (Namn VARCHAR(30), Adresse VARCHAR(30), Postnummer VARCHAR(4),Tlf VARCHAR(11),Klasse VARCHAR(4),PRIMARY KEY (Namn));

Lag tabellen Postadresse:

CREATE TABLE Postadresse (Postnummer VARCHAR(4),Poststed VARCHAR(25),PRIMARY KEY (Postnummer));

Legg inn data i tabellane:INSERT INTO Elev VALUES('Ole Olsen', ' ', '6133', '70 00 00 00', '2ØA2');

No må vi legge inn data i Postadresse tabellen:

Kopier fila Postadresse.txt til mappa c:\mysql\data\2ina\ og skriv fylgjande kommando iMySQL vinduet:

LOAD DATA INFILE 'Postadresse.txt' INTO TABLE Postadresse;

Spørringer mot databasen

Hente ut alle elevane sortert etter klasse:

SELECT * FROM Elev ORDER BY Klasse;

7

Hente ut alle elevane som bur i Volda:

SELECT * FROM Elev WHERE Postnummer=6100;

Hente ut alle elevane som ikkje bur i Volda:

SELECT * FROM Elev WHERE Postnummer<>6100;

Hente fram Namn, Adresse, Postnummer og Poststed:

SELECT Elev.Namn, Elev.Adresse, Elev.Postnummer, Postadresse.Poststed FROM Elev, Postadresse WHERE Elev.Postnummer=Postadresse.Postnummer;

8

Koble til ei datakilde i OpenOffice

For å vise datakilder i OOo kan du trykke F4 eller på knappen for vis datakilder .

Høgreklikk i området til venstre velgAdministrer datakilder...

No får du opp dialogboksen foradministrering av datakilder – dvs her kandu legge til, slette og endre dei uliketilkoblingane.

Velg Ny Datakilde

Gi den eit namn – namnet på databasen

Velg tilkobling (Normalt MySQL) men pgaein feil i 1.1. testversjonen må du velgeAdabas

Klikk på tab MySQL. Og velg knappenmed ... etter der det står Nettadressen tildatakilden.

Velg organiser i dette bildet dersom ikkjedu tidlegare har gjort dette og finndatakilda i lista.

9

Då får du opp dette bildet.

- Velg konfigurer

- Velg MyODBC driver 3.51 fra det bildet dufår opp og velg fullfør.

- Skriv inn namnet på databasen i DataSource Name og i Database Name.

Pass på at namnet er skrevet på samemåten som databasen du har laget.

- Du kan og teste at du finn databasen vedå klikke Test Data Source

OK

Velg OK to gongar til du har dette bildetigjen.

Pass på at du her vel den databasen dunettopp har lagt til.

Klikk Ok til du er ute igjen.

10

Bruk av databasen

Rediger tabellane i databasen

Høgreklikk på tabellen du skal redigerevelg Rediger tabell

Du kan no legge til felt i tabellen – du kanikkje redigere dei felta som alt er der. Forå kunne redigere eksisterande felt brukardu SQL og ALTER TABLE kommandane.

Lagre tabellen og lukk

Rediger ev. Dei andre tabellane og koblefra (høgreklikk og vel koble fra) koble tiligjen ved å klikke på tabellar og tabellendu skal legge til data i no er dei nye feltakomne med.

Legge til ein ny tabell

Høgreklikk og vel Ny tabellutforming

HUGS alle tabellar må ha ein Primærnøkkel

11

Lage spørring

Merk spørringer i venstre del avdatabasevinduet, høgreklikk og velg nyspørringsutforming.

No kan du velje kva for tabellar du skalhente data fra.

Merk ein og ein tabell og velg Legg til.

Koble saman tabellane ved å merke feltetsom det skal koblas på og dra over tiltilsvarande felt i den tabellen som skalkoblast til.

Du kan no velge kva felt du skal ha med iden nederste delen av vinduet.

Du kan og sette inn sortering og avgrensekva felt du skal ha med.

For å køyre spørringa klikkar du køyr.

Resultatet av spørringa får du no øverst iskjermbildet.

Lagre spørringa

Vil du sjå SQL setninga kan du klikke pådenne knappen

Du kan og redigere SQL setning i det bildetdu får opp no.

12

Lage rapportar

Velg Fil, Veiviser, Rapport

No får du opp veivisaren for rapport – påvenstre side vel du datakilda/databasenrapporten skal bygge på. Når du har valgtdenne får du på høgre sida opp tabellaneog spørringane du har laga.

Vel den spørrina eller tabellen sominneheld dei data du skal presentere irapporten.

Då kjem alle felta opp i det store feltet tilvenstre – velg dei felta du skal ha med.

Klikk neste.

I dette bildet vel du kva namn felta skal ha– du kan kalle felta noko anna det deiheiter i tabellen/spørringa.

13

I dette bildet vel du gruppering. Det betyrat om du vil ha ei liste over f.eks. Elevarfordelt på den enkelte klasse – må du velgeklasse som gruppering.

Klikk neste.

I dette bildet vel du kva for felt rapportenskal sorterast på. Dersom du vil at den skalsorterast på f.eks. Etternamn alfabetisk fraA – Å vel du det her. Du kan og seie at denskal sortere på førenamn dersom det erfleire med same etternamn.

Klikk neste.

Det bildet du får opp no inneheld malar forkorleis rapporten skal sjå ut – prøv degfram og velg den malen som du synespassar best til dei data du skal presentere.

I dette bildet ligg deg og ein feil fråoversettarane. Default verdi er ligganderapport – dersom du skal ha ståanderapport må du velge liggande!!!!!

Klikk neste.

No er du nesten ferdig. I dette bildet veldu kvar rapporten skal lagrast. Det vertautomatisk laga ei lenke til rapportenunder lenker i datakilde bildet.

Du vel her om rapporten skal vere statisk –altså ein rapport som viser dei data som erpå dette tidspunktet og ikkje oppdatereseg om du legg inn fleire data, ellerdynamisk – rapporten vert automatiskoppdatert med nye data.

Klikk opprett.

14

Lage skjema

Du finn veivisaren for skjema på samemåten som for rapport. Også her må duførst velge datakilde/database og derettertabell eller spørring. Deretter kva felt duskal ha med – som oftast alle.

Klikk neste.

I dette bildet vel du layout for skjemaet.

No får du opp spørsmål om kvar du skallagre skjemaet.

No vert skjemaet laga og lagra. Det vertlaga ein link til skjemaet under lenker idatakilda du har valgt.

Skjemaet er no klart til bruk, men ofteynskjer vi å redigere skjemaet slik at detblir meir brukarvennleg.

Hent fram verktøylinja skjemafunksjonar(langtrykk på 4 knapp fra toppen påverktøylinja til venstre i skjermbildet) brukmusa for å flytte verktøylinja dit du vil haden. Klikk først på redigeringsknappen,deretter klikkar du på pil for å velge allefelta i skjemaet. No er skjemaet merkaresten av bildet er eit vanlegtekstdokument. Øverst har du no fått eiekstra verktøylinje.

15

Knapp nummer 5 fra venstre erskjemanavigering. Klikkar du på den får duopp denne.

Den treng vi først og fremst dersom vi skalsette inn delskjema – for å kunne redigeredata i frå fleire tabellar samtidig.

Det er og mulig å sette inn delskjema fråein annan database om vi skulle trengedet.

Klikk på standard i skjemanavigering –høgreklikk og vel ny - skjema.

Nå du no klikkar på knappen tabellkontrolli verktøylinja skjemafunksjonar får du oppeit trådkors og kan tegne området som skalinnehalde delskjemaet.

Du får då opp veivisaren for tabellkontrolldet vil seie at du må velge datakilde ogtabell som skal settast inn i det områdetdu nettopp teikna.

16

Klikk neste.

Vel dei felta du skal ha med.

Klikk neste.

For å kople saman hovudskjema ogdelskjema må ein bruke noko som kallast«Named Parameters».

Dette skal eg lage ei vegleiing til snart.

For å få eit brukarvennleg skjema bør dulage overskrifter og gjerne ei kortbrukarvegleiing til den som skal bruke det.Når du er ferdig klikkar du på knappenutformingsmodus av/på for å kommetilbake til brukarmodus.

Lagre skjemaet når du er fornøgd medlayout.

Hugs BRUKARVENNLEGHEIT.

Kjelder• MySQL Tutorial fra NTNU

• MySQL references Manual

• How to Link Tables Using SQL Named Parameters fra The OpenOffice.orgDocumentation Project

• Hjelpfunksjonen i OpenOffice

17