sql >> Database teknologi >  >> RDS >> Oracle

Hvad er SQL national character (NCHAR) datatypen egentlig til?

"NATIONAL" betyder i dette tilfælde karakterer, der er specifikke for forskellige nationaliteter. Fjernøsten-sprog har især så mange tegn, at en byte ikke er nok plads til at skelne dem alle. Så hvis du har en app kun på engelsk (ascii) eller et felt kun på engelsk , kan du slippe afsted ved at bruge de ældre CHAR- og VARCHAR-typer, som kun tillader én byte pr. tegn.

Når det er sagt, det meste af tiden bør du bruge NCHAR/NVARCHAR. Selvom du ikke mener, du skal understøtte (eller potentielt understøtte) flere sprog i dine data, skal selv apps, der kun er på engelsk, være i stand til fornuftigt at håndtere sikkerhedsangreb ved hjælp af tegn på fremmedsprog.

Efter min mening er omtrent det eneste sted, hvor de ældre CHAR/VARCHAR-typer stadig foretrækkes, for ofte refererede ascii-only interne koder og data på platforme som Sql Server, der understøtter skelnen - data, der ville svare til en enum på et klientsprog som C++ eller C#.



  1. Sådan fungerer MICROSECOND() i MariaDB

  2. Find dublerede værdier, der er tildelt mere end én unik værdi

  3. hukommelsesforbrug eksport fra database til csv i php

  4. Kan jeg løse dette med ren mysql? (sammenføjning på '' adskilte værdier i en kolonne)