sql >> Databáze >  >> RDS >> Sqlserver

Jaký je nejlepší datový typ SQL pro ukládání řetězce JSON?

Určitě NE :

  • TEXT, NTEXT :tyto typy jsou zastaralé od SQL Server 2005 a neměl by být používán pro nový vývoj. Použijte VARCHAR(MAX) nebo NVARCHAR(MAX) místo

  • IMAGE , VARBINARY(MAX) :IMAGE je zastaralé stejně jako TEXT/NTEXT a opravdu nemá smysl ukládat textový řetězec do binárního sloupce....

Takže v podstatě zbývá VARCHAR(x) nebo NVARCHAR(x) :VARCHAR ukládá řetězce, které nejsou Unicode (1 bajt na znak) a NVARCHAR ukládá vše v režimu Unicode 2 bajty na znak. Takže potřebujete Unicode? Máte ve svých řetězcích arabské, hebrejské, čínské nebo jiné nezápadoevropské znaky? Poté přejděte pomocí NVARCHAR

(N)VARCHAR sloupce mají dvě varianty:buď definujete maximální délku, která má za následek 8000 bajtů nebo méně (VARCHAR až 8000 znaků, NVARCHAR až 4000), nebo pokud to nestačí, použijte (N)VARCHAR(MAX) verze, které ukládají až 2 GB dat.

Aktualizace: SQL Server 2016 bude mít nativní podporu JSON – nový JSON datový typ (který je založen na nvarchar ) a také FOR JSON příkaz pro převod výstupu z dotazu do formátu JSON

Aktualizace č. 2: ve finálním produktu Microsoft nezahrnul samostatný JSON datový typ – místo toho existuje řada funkcí JSON (pro zabalení řádků databáze do JSON nebo pro analýzu JSON do relačních dat), které pracují se sloupci typu NVARCHAR(n)



  1. SELECT pevný počet řádků rovnoměrným přeskakováním řádků

  2. MySQL:vyberte e-maily pouze z jedné tabulky, pokud ne z jiné tabulky?

  3. Jak napsat regex lookahead/lookbehind v mysql

  4. Připojení tabulky PHP-Mysql z jiného hostitele