[ voxi @ 23.01.2008. 16:48 ] @
Zanima me da li u MySql kad se stavi Integer 10 to znaci da je to integer broj od max 10 cifara ili je to broj od 10 bajtova?


Hvala u napred
[ BigFoot @ 23.01.2008. 16:56 ] @
max 10 cifara, ali pazi da ne premašiš opseg. Npr. TINYINT je -128...127, dakle 1 bajt, ali ako ti trebaju vrednosti od 0 do 9, koristićeš TINYINT(1) i tako pomoći MySQL-u da bolje organizuje podatke i iskoristi prostor u bazi.
[ voxi @ 23.01.2008. 17:24 ] @
Ok hvala znam to oko tipova samo me ovo bunilo posto valjda u mssql to
oznacava broj bajtova tako mi rece bar asistent
[ stsung @ 23.01.2008. 20:30 ] @
Pozd.

Ovo nije tachno.

Numerichki tip podatka tipa INTEGER se chuva binarno, ne postoji parametar "broj cifara". Tip INT se chuva u 4 bajta i samim time ima 2^32 mogucih razlichitih vrednosti. Tipovi BIGINT, SMALLINT i TINYINT zauzimaju 8, 2 odnosno 1 bajt, i imaju 2^64, 2^16 odnosno 2^8 mogucih razlichitih vrednosti.
Podatak koji si ovde pomenuo, kada je polje u tabeli definisano kao INT(10), predstavlja obichno INT polje, sa dodatnim DISPLAY WIDTH parametrom, koji govori da ce pri prikazu podatka mysql dodati space karaktere sa leve strane (left padding) kako bi popunio prikaz do 10 karaktera. Ukoliko se koristi opciono ZEROFILL parametar, dodavace se nule umesto space karaktera.

Ova konkretna osobina MySQL je bila pokvarena, ne znam da li je popravljena u najnovijem buildu - nije funkcionisalo dodavanje space-ova, jedino je radilo ako se navede ZEROFILL parametar.

Svako dobro.
[ voxi @ 23.01.2008. 20:38 ] @
E ovo bi vec moglo da ima logike sto stsung rece i verovatno je za ZEROFILL znam da radi
[ BigFoot @ 24.01.2008. 00:19 ] @
Da, jeste tako. Malo je čudno da se u bazi definiše kako će podatak biti prikazivan. Mislio sam da ovaj parametar pomaže da se odredi eventualno, manji broj bajtova za čuvanje vrednosti, svakako binarne, a dodatno me zbunilo što piše da se BIT vrednost unutar baze interpretira kao TINYINT(1). Dakle, greška...