Skirtumas tarp Char ir Varchar

Abu yra duomenų tipai daugelyje programavimo kalbų ir duomenų bazių sistemose, kur „char“ reiškia simbolį, o „varchar“ reiškia kintamąjį ženklą. „Char“ C reiškia simbolių tipą, kuris naudojamas saugoti eilutės reikšmes, dažniausiai UTF-8 užkoduotus simbolius ir sveikus skaičius. Kita vertus, „Varchar“ yra duomenų tipas, kuriame gali būti bet kokio tipo neapibrėžto ilgio duomenų. Varchar nurodo lauko duomenų tipą duomenų bazių valdymo sistemoje. Nors jie abu gali saugoti eilutės reikšmes, ne ilgesnes kaip 8000 ženklų, char reikia daugiau atminties nei varchar. Techniškai jie abu yra naudojami to paties tipo duomenims saugoti, tačiau skiriasi tuo, kaip jie yra saugomi ir gaunami. Pažvelkime į jų skirtumus išsamiai.

Kas yra Char?

„Char“ yra fiksuoto ilgio duomenų tipas, naudojamas ne „Unicode“ simboliams saugoti, taigi ir vardas (trumpas simbolis). Jis užima vieną baitą vietos kiekvienam simboliui, kuris užkoduotas kaip skaičius - iš ASCII kodavimo. „Char“ rūšis taip pat gali būti naudojama mažiems sveikiems skaičiams deklaruoti. Simbolio kintamajam deklaruoti naudojamas raktinis žodis „char“, kuris reiškia, kad vienas simbolis saugomas viename baite.

Kaip ir sveikųjų skaičių tipai, char gali būti pasirašytas arba nepasirašytas. Jis gali laikyti pasirašytas char reikšmes nuo -128 iki 127 ir, priklausomai nuo architektūrinio dydžio, taip pat gali būti nepasirašytos, kurių vertės svyruoja nuo 0 iki 255. Kai char vertės yra saugomos, jos yra dešinėje pažymėtos tarpais iki nurodyto ilgio. . Gaunamos tarpinės vietos pašalinamos.

Pvz., Jei deklaruojate „char“ (7) duomenų rūšies kintamąjį, tai visada užtruks 7 baitus duomenų, neatsižvelgiant į tai, ar kaupiate 1, ar 7 ženklus, tai reiškia, kad stulpelyje galite laikyti daugiausia 7 ženklus.

Kas yra Varchar?

Varchar, kaip rodo pavadinimas, yra kintamo ilgio duomenų tipas, kuriame gali būti bet kokio tipo duomenų, kurių ilgis svyruoja nuo 0 iki 65 535. „Varchar“ lauke gali būti saugomos bet kokio dydžio vertės iki tam tikros ribos, atsižvelgiant į duomenų bazę. Tai gali būti apibrėžta programavimo kalbomis arba duomenų bazės lygiu. Varchar lauko dydis gali būti nuo nulio iki didžiausio deklaruojamo lauko ilgio.

Kintamam simboliui deklaruoti naudojamas raktinis žodis „varchar“. Varchar užima kintamą vietą, tai reiškia, kad ji naudos tik baitų skaičių, lygų simbolių skaičiui. Tai padeda išvengti vietos švaistymo, nes naudojama tik ta vieta, kurios reikia stygos dydžiui. Kai kuriose programavimo kalbose ir duomenų bazių sistemose bet kokia papildoma vieta automatiškai pašalinama iš duomenų bazės.

Pvz., Jei jūs paskelbiate kintamąjį varchar (10), jis naudos baitų skaičių, lygų simbolių skaičiui. Taigi, jei saugote tik vieną simbolį, tai užtruks tik vieną baitą, o jei saugote 10 simbolių, tai užtruks 10 baitų, taip išvengiant duomenų bazės vietos švaistymo.

Skirtumas tarp Char ir Varchar

  1. Duomenų tipas

„Char“ yra fiksuoto ilgio duomenų tipas, naudojamas fiksuoto ilgio simbolių eilutės vertei saugoti, o „Varchar“ yra kintamo ilgio duomenų tipas, naudojamas kintamo ilgio raidiniams ir skaitmeniniams duomenims saugoti..

  1. Sandėliavimo dydis

Simbolio vertės saugyklos dydis yra lygus maksimaliam šio stulpelio dydžiui, kurį deklaravote kurdami lentelę. Kita vertus, „varchar“ vertės saugojimo dydis yra faktinis įvestų duomenų ilgis, o ne maksimalus šio stulpelio dydis.

  1. Duomenų įrašai

Galite naudoti char, kai tikimasi, kad stulpelio duomenų įrašai bus tokio paties dydžio, tuo tarpu, priešingai, varchar gali būti naudojamas, kai tikimasi, kad stulpelio duomenų įrašai skirsis.

  1. Atminties paskirstymas

Char naudoja statinę atminties paskirstymą, o varchar - dinaminę atminties paskirstymą

  1. Ilgis

Char kintamojo ilgis gali būti bet kokia reikšmė nuo 0 iki 255, o varchar kintamojo ilgis svyruoja nuo 0 iki 65,535.

  1. Taikymas

Duomenų įvedimas yra nuoseklus simboliu, kuris naudojamas duomenims, pavyzdžiui, telefonų numeriams, saugoti, o „varchar“ naudojamas įvairiems duomenims, pvz., Adresams, saugoti..

Char'as prieš Varcharą

Char Varčaras
Naudojama fiksuoto ilgio simbolių eilutės reikšmei saugoti. Naudojami įvairaus ilgio raidiniams ir skaitmeniniams duomenims saugoti.
Ilgis svyruoja nuo 0 iki 255. Ilgis svyruoja nuo 0 iki 65,535.
Kiekvieno simbolio reikia 1 baitui saugoti. Priimama 1 baitas už simbolį ir 1 arba 2 papildomi baitai informacijos apie ilgį saugojimui.
„Char“ laikymo dydis yra toks pat, kaip deklaruota. „Varchar“ saugyklos dydis priklauso nuo konkrečios saugomos eilutės.
Naudojamas statinis atminties paskirstymas. Naudoja dinaminį atminties paskirstymą.
Char turėtų būti naudojamas, kai kintamojo ilgis žinomas. Varchar turėtų būti naudojamas tik tada, kai kintamojo ilgis nežinomas.
Priima tik simbolius. Jis priima tiek ženklus, tiek skaičius.
Tai 50 procentų greičiau nei Varchar. Tai lėčiau nei Char.
Char vertės saugyklos dydis yra lygus maksimaliam stulpelio dydžiui. „Varchar“ vertės saugojimo dydis yra lygus faktiniam įvestų duomenų ilgiui, o ne maksimaliam stulpelio dydžiui.

Santrauka

  • „Char“ ir „Varchar“ yra duomenų tipai programavimo kalbose ir duomenų bazių sistemose, pasižyminčiose kai kuriais bendrais bruožais, kalbant apie funkcionalumą ir techninį pobūdį. Tačiau jie labai skiriasi, nes jie laikomi ir gaunami.
  • Nors char iš tikrųjų reiškia charakterį, varchar reiškia kintamąjį. Kaip rodo pavadinimas, char yra fiksuoto ilgio duomenų tipas, o varchar - kintamo ilgio duomenų tipas.
  • „Char“ užtrunka iki 1 baito už ženklą, tuo tarpu „varchar“ taip pat užtrunka iki 1 baito už simbolį, pridėjus papildomą 1 arba 2 baitus, kad būtų galima išsaugoti ilgio informaciją. „Char“ ilgis svyruoja nuo 0 iki 255, o „varchar“ - nuo 0 iki 65 535.
  • Kadangi char yra fiksuoto ilgio, bet kokia likusi vieta lauke yra užpildyta ruošiniais. Kita vertus, Varchar yra kintamo ilgio, todėl jame yra tik tie simboliai, kuriuos jam priskiriate.
  • Likę simboliai užpildomi baltais tarpais, kai reikšmės saugomos „char“ laukeliuose, tuo tarpu „varchar“ neprideda papildomų tarpų, kai pateikiate mažiau duomenų nei nurodytas ilgis.