PHP.ee
 php.ee   linuxator.com   whee 
07.02.12 / 23:18
  Artiklid
  » Algajaile
  » Andmebaasid
  » Varia
  » Graafika
  » Advanced
Logi sisse:
< nimi
< pass
Unustasid passi?
Kas eelistad võimalusel PHP koodi objektorienteeritult kirjutada?
 Jah, see teeb töö lihtsamaks
 Jah, see on lihtsalt lahe
 Nii ja naa, ei tunne erilist võitu
 Ei, mõttetu ajakulu
 Ei oska objektorienteeritult progeda
Tulemused
Liitu listiga!
Telli PHP uudiskiri
Nimi:
Email
MySQL veerutüüpide CHAR ja VARCHAR võrdlus
Mihkel Karu

CHAR ja VARCHAR tüübid on suhteliselt sarnased. Siiski erinevad nad väärtuste hoidmisel ja nende väljastamisel.

CHAR veeru pikkus määratakse tabeli loomisel. See võib olla 1 kuni 255 tähemärki. MySQL 3.23-l ja kõrgematel võib CHAR veeru pikkus olla 0 kuni 255 tähemärki. Väärtuste sisestamisel CHAR tüüpi veergudesse lisab MySQL väärtustele vajaliku arvu tühikuid, et täita ära ülejäänud kohad.

Näide 1:
Kui CHAR veeru pikkuseks on määratud 4 tähemärki (tabeli loomisel char(4)), kuid sisestatava väärtuse pikkus on 2 tähemärki, lisatakse sellele väärtusele kaks tühikut.

char(4) >> sisestatakse "ab" >> veeru väärtus "ab "

Väärtuste väljastamisel CHAR tüüpi veerust kaotatakse lisatud tühikud.

Näide 2:
char(4) >> veeru väärtus "ab " >> väljastatakse "ab"

VARCHAR tüüpi veerud on põhimõttelt samad, mis CHAR tüüpi veerud. VARCHAR veeru pikkus määratakse tabeli loomisel. Selle pikkus võib olla 1 kuni 255 tähemärki. Erinevus CHAR ja VARCHAR vahel seisneb aga selles, et VARCHAR tüüpi veergudesse sisestatakse ainult väärtus. See tähendab, et väärtusele ei lisata tühikuid, et täita kogu ruum. Selle arvelt lisandub sisestatava väärtuse suurusele veel 1 byte väärtuse pikkuse salvestamiseks.

Näide 3:
varchar(10) >> sisestatakse "abc" >> veeru väärtus "abc" ja suurus 4 byte-i

Kui CHAR või VARCHAR tüüpi veergudesse sisestada väärtus, mille pikkus ületab veeru pikkuse, siis sisestatakse vaid nii pikk väärtus, kui on määratud veeru pikkuseks.

Nii CHAR kui ka VARCHAR veergudes hoitakse kõiki väärtusi "case- sensitive"-stiilis, st. säilitatakse suur- ja väiketähed. Kui aga tabeli loomisel määratakse BINARY tunnus, hoitakse kõiki väärtusi vastavalt MySQL serveri ASCII järjekorrale..

Artikli kommentaarid

O