Avatar billede jette1 Nybegynder
03. august 2001 - 00:55 Der er 6 kommentarer og
1 løsning

Betydning af feltstørrelse?

I min bog gives et eksempel på oprettelse af et felt med datatypen MEDIUMINT:

CREATE TABLE user (
->usernumber MEDIUMINT(10) osv....

Hvorfor har forfatteren mon valgt at sætte feltstørrelsen til 10, når en MEDIUMINT højst kan fylde 8 (unsigned)?

Hvornår skal man sætte en feltstørrelse, og hvornår skal man ikke gøre det. F.eks. ses også følgende i eksemplet:

userprofile TEXT NOT NULL,

Her er ikke sat en feltstørrelse... hvorfor? Og er der andre datatyper der ikke kræver feltstørrelse?
Avatar billede faehunden Nybegynder
03. august 2001 - 01:40 #1
Jeg plejer personligt kun at bruge følgende typer :

INT
TEXT
TINYTEXT

Jeg har aldrig brugt feltstørelser og har aldrig haft problemer.
Avatar billede wizprod.com Nybegynder
03. august 2001 - 03:20 #2
Når man bruger forskellige former for felttyper, er det også på grund af hastighed, så når man bruger INT ved mysql at nu er det et tal der kommer!

Kig også på dette link for lidt mere information omkring dette emne: http://anything.dk/vis_artikler.php?id=32
Avatar billede limemedia Nybegynder
03. august 2001 - 03:38 #3
faehunden >> laes paa optimering og felttyper, hvis du vil videre og programmere stabile, hurtige og optimale loesninger - og NEJ ! det har du ikke gjort foer!

wizprod >> tror mySQL er ret ligeglad med om den outputter en streng eller et tal... De forskellige datatyper er optimeret til forskellige formaal... Fx. er en generel begynderfejl at lagre datoer i varchar eller text felter og vedkommende kan ikke forstaa hvorfor mySQL sorterer forkert. Jeg kan personligt bedst arbejde med optimerede tabeller og har ogsaa vaeret med til de losninger, hvor blot en lille fejl har kunnet vaelte hele serveren - eller vaeret derude hvor man ramler ind i mySQL fejl der kunne ryste selv hr. monty ved mySQL. Saaledes vil jeg fx. ikke anvende en BIGINT til at saette flag men maaske mere en TINYINT(1) unsigned
Avatar billede jette1 Nybegynder
03. august 2001 - 12:00 #4
Jeg ved godt hvorfor man benytter datatyper ... det jeg egentlig spørger til er _feltstørrelsen_, dvs. det tal der angives i parantes ud for hver enkelt datatype.

Hvilken betydning har feltstørrelsen? Skal man _altid_ sætte en feltstørrelse, eller kommer det an på datatypen?
Avatar billede jette1 Nybegynder
11. august 2001 - 19:03 #5
Det lader ikke til at nogen kan svare, så jeg lukker :-)
Avatar billede defrost Nybegynder
11. august 2001 - 19:17 #6
Det kommer an på datatypen. ved fx char og varchar feltet SKAL feltstørrelsen sættes. Ved talfelter (fx int) bliver længden kun brugt, hvis du sætter parametren ZEROFILL. Eksempel:

CREATE TABLE testtabel (id int(4) UNSIGNED ZEROFILL default \'0000\' NOT NULL);

insert into testtabel VALUES (1);

mysql> select * from testtabel;

+------+
|  id  |
+------+
| 0001 |
+------+

Jeg er ikke 110% sikker på, at feltlængden på et talfelt ikke bliver brugt til andet, men næsten. :-)

Avatar billede jette1 Nybegynder
11. august 2001 - 23:25 #7
Så blev jeg alligevel lidt klogere :-)
Tak defrost!
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