sql >> Database teknologi >  >> RDS >> Mysql

MySQL binær vs char tegnsæt binær

Der er ingen forskel.

Der er dog en advarsel, hvis du gemmer en streng.

Hvis du kun ønsker at gemme et byte-array eller andre binære data, såsom en strøm eller fil, så brug den binære type, da det er det, de er beregnet til.

Citat fra MySQL-manualen :

Så teknisk set er der ingen forskel.

Når en streng lagres, skal den dog konverteres fra en streng til byteværdier ved hjælp af et tegnsæt. Beslutningen er enten at gøre dette selv før MySQL-serveren, eller du overlader det til MySQL at gøre for dig. MySQL vil optræde med ved at caste en streng til BINARY ved at bruge BIN-tegnsættene.

Hvis du ønsker at gemme kodningen i et andet format, lad os sige, at du har et forretningskrav, der siger, at du skal bruge 4 bytes pr. tegn (MySQL gør ikke dette som standard), kan du derefter bruge CHARACTER SET BINARY til en tekstspalte og udfør selv tegnsætkodningen.

Det er også værd at læse Den BINÆRE og VARBINARY Typer fra MySQL-manualen, da denne detaljerer vigtige oplysninger såsom polstring.

Oversigt: Der er ingen teknisk forskel, da det ene er et synonym til det andet. Efter min mening giver det logisk mening at gemme binære strenge i datatyper, der normalt ville indeholde en streng ved hjælp af CHARACTER SET BINARY og for at gemme byte-arrays / streams osv. i BINÆR felter, der ikke kan repræsenteres ved at transformere dataene gennem et tegnsæt.




  1. SQL IN-operatør for begyndere

  2. Mønstermatchning:Mere sjov, da jeg var barn

  3. Hvad er brugen af ​​GO i SQL Server Management Studio &Transact SQL?

  4. SQL Server Stored Procedures fra Oracle®