Guide: PHP- & MySQL-innføring: Kapittel 8
Tid for databaser
Vi har til nå dekket svært mye av språket PHP; i dag tar vi tak i MySQL og introduserer begreper som relasjonsdatabase.
Datatyper
Før man kan lagre data i databasen vår, er vi nødt til å bestemme strukturen på dataene vi vil lagre. Denne strukturen defineres av en tabell-definisjon (noen ganger kalt et tabell-skjema). Som vi har nevnt tidligere, består en tabell av kolonner, og vi må bestemme hvilke data hver kolonne skal inneholde.
Til forskjell fra PHP, er vi i MySQL nødt til å definere hvilken type data som skal lagres i hver kolonne. Det finnes mange datatyper i MySQL, og her er en liste over de viktigste;
| Navn | Hva den lagrer |
|---|---|
| Tall | |
TINYINT |
Lagrer et heltall mellom -128 og 127. Ved å sette nøkkelordet UNSIGNED foran, endres rekkevidden til 0 til 255. |
SMALLINT |
Lagrer et heltall mellom -32 768 og 32 767. Ved å sette nøkkelordet UNSIGNED foran, endres rekkevidden til 0 til 65 535. |
MEDIUMINT |
Lagrer et heltall mellom -8 388 608 og 8 388 607. Ved å sette nøkkelordet UNSIGNED foran, endres rekkevidden til 0 til 16 777 215. |
INT |
Lagrer heltall, i rekkevidden -2 147 483 648 til 2 147 483 647. Ved å sette nøkkelordet UNSIGNED foran, endres rekkevidden til 0 til 4 294 967 295. Er den vanligste datatypen for å lagre heltall. |
BIGINT |
Lagrer heltall, i rekkevidden -9 223 372 036 854 775 808 til 9 223 372 036 854 775 807. Ved å sette nøkkelordet UNSIGNED foran, endres rekkevidden til 0 til 18 446 744 073 709 551 615. Bør unngås om du ikke trenger å bruke så store tall. |
DOUBLE |
Lagrer flyttal ifølge IEEE-standarden. Tallet er nøyaktig til omtrent 15-desimalplasser. |
BOOL |
En boolsk verdi (TRUE/FALSE). I MySQL er TRUE definert som alle verdier som ikke er 0 eller NULL. Lagres som en TINYINT på disk. |
| Tidspunkt | |
DATE |
Lagrer en dato, på formatet ÅÅÅÅ-MM-DD. |
TIME |
Lagrer et tidspunkt (uten datobiten) på formatet TT:MM:SS. |
DATETIME |
Lagrer en dato og et tidspunkt, på formatet ÅÅÅÅ-MM-DD TT:MM-SS. |
TIMESTAMP |
Lagrer et tidspunkt som antall sekunder fra 1. januar 1970 kl. 00:00:00. |
| Tekst | |
CHAR(størrelse) |
CHAR-datatypen lagrer tekst i et felt med statisk størrelse. Du oppgir størrelsen på feltet i antall tegn (maksimum størrelse er 255). Uansett om du lagrer et tegn, eller så mange tegn som er tillatt, vil det ta størrelse når det lagres på disk (om teksten du lagrer ikke er lang nok, fylles den med NULL-tegn). |
VARCHAR(størrelse) |
Samme som CHAR, men kun den faktiske strengen lagres på disk. Noe tregere enn CHAR. |
TEXT |
Lagrer tekst med en lengde på opptil 216 bytes (64 KiB) med tekst. Bruker kun lengden på teksten som blir lagret på disk. |
MEDIUMTEXT |
Lagrer tekst med en lengde på opptil 224 bytes (16 MiB) med tekst. Bruker kun lengden på teksten som blir lagret på disk. |
LONGTEXT(størrelse) |
Lagrer tekst med en lengde på opptil 232 bytes (4 GiB) med tekst. Bruker kun lengden på teksten som blir lagret på disk. |
Om du er interessert i resten av disse datatypene, eller detaljer om de enkelte, finner du dem i MySQL-manualen. På neste side skal vi opprette vår første tabell.