Avatar billede nemlig Professor
11. marts 2007 - 18:26 Der er 11 kommentarer og
1 løsning

Lidt omkring felttyper

Hej.

Jeg har brug for lidt input omkring "datatype" og håber der er en som vil forslå den korrekte datatype nedenstående eksempler:
Nederste nogle ekstra spørgsmål:

1. Årstal eller postnr. (Ex. 2007 eller 5000)
2. Ja/nej (kan vel gøres ved at sætte 1 og 0)
3. 10 cifret kundenr. (Ex. 3453213222)
4. En tekst på eksempevis 2000 tegn
5. Beløb med 0 decimaler (ex. -125)

Hvad bruges "nulværdi" til (not null eller null)?
Er der nogen regel for, hvor mange felter, der må være i 1 tabel?
Avatar billede arne_v Ekspert
11. marts 2007 - 18:28 #1
SMALLINT
TINYINT
CHAR(10)
TEXT
DECIMAL(12,0)
Avatar billede nemlig Professor
11. marts 2007 - 18:46 #2
Mange tak.
Kan du også svare på de 2 sidste spørgsmål om "nulværdi" og hvor mange felter, en tabel må have??
Avatar billede arne_v Ekspert
11. marts 2007 - 19:32 #3
NULL betyder ingen værdi som i "ikke udfyldt" eller "ukendt" eller "ikke relevant"
Avatar billede arne_v Ekspert
11. marts 2007 - 19:38 #4
der kan være mange felter i en tabel

en Googling siger at en InnoDB tabel kan have 1000 felter mens at en
MyISAM tabel er limited by 64 KB row size

kort sagt: der kan være nok
Avatar billede nemlig Professor
11. marts 2007 - 19:41 #5
Og lige en sidste ting:
Når der anvendes char(???), er det vel sådan, at tallet i parantes, skal svare til det max. antal tegn, som der er brug for. Har set nogle gange, at der står Char(255) til et felt, som kun skal indeholde 8 tegn. Det betyder måske ingenting.
Avatar billede nemlig Professor
11. marts 2007 - 19:42 #6
Tak for hjælpen - bare send et svar.
Avatar billede arne_v Ekspert
11. marts 2007 - 19:47 #7
VARCHAR : tal angiber max. længde men fylder kun faktisk (+overhead)
CHAR    : tal angiver fast længde
Avatar billede arne_v Ekspert
11. marts 2007 - 19:47 #8
og svar
Avatar billede nemlig Professor
11. marts 2007 - 19:57 #9
Skal jeg forstå det sådan, at hvis jeg har 100 felter, som står med typen varchar(255) selvom de kun fylder 5-10, er OK. Det ændrer ikke noget (systemet bliver ikke hurtigere), at de ændres til varchar(10).
Tak for svarene.
Avatar billede arne_v Ekspert
11. marts 2007 - 20:03 #10
en VARCHAR(255) med 5 tegn i bruger 6 bytes

en CHAR(255) vil altid bruge 255 bytes
Avatar billede erikjacobsen Ekspert
11. marts 2007 - 20:53 #11
Jeg ville ikke lave et postnummer som et tal. Du får lidt bøvl med 0800 (ja, ja, sjældent postnummer *g*) - men vigtigst: Du udelukker på forhånd at opbevare korrekte udenlandske postnumre: S-10510. Tænk bare på alle de danskere, der er ved at generobre Halland, Skåne og Blekinge ;)
Avatar billede nemlig Professor
11. marts 2007 - 21:12 #12
Tak for inputten - nu er jeg meget klogere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester