sql >> Databáze >  >> RDS >> Oracle

K čemu je ve skutečnosti datový typ SQL National Character (NCHAR)?

„NATIONAL“ v tomto případě znamená znaky specifické pro různé národnosti. Zejména jazyky Dálného východu mají tolik znaků, že jeden bajt nestačí k jejich rozlišení. Pokud tedy máte aplikaci pouze v angličtině (ascii) nebo pole pouze v angličtině , můžete se zbavit použití starších typů CHAR a VARCHAR, které umožňují pouze jeden bajt na znak.

To znamená, že většinu času byste měli používat NCHAR/NVARCHAR. I když si myslíte, že ve svých datech nepotřebujete podporovat (nebo potenciálně podporovat) více jazyků, dokonce i aplikace pouze v angličtině musí být schopny rozumně zvládnout bezpečnostní útoky pomocí cizojazyčných znaků.

Podle mého názoru je asi jediné místo, kde jsou stále preferovány starší typy CHAR/VARCHAR, pro často odkazované interní kódy pouze ascii a data na platformách, jako je SQL Server, které toto rozlišení podporují – data, která by byla ekvivalentem enum v klientském jazyce jako C++ nebo C#.



  1. Pokus o provedení operace MINUS v MySQL

  2. Jak vložím více záznamů do jednoho databázového výletu pomocí PDO?

  3. křížové spojení mysql, ale bez duplicitního páru?

  4. Daný klíč nebyl ve slovníku přítomen. s mysql