sql >> データベース >  >> RDS >> Sqlserver

SQL Server の異なる文字列型の違いは?

    textntext 非推奨なので、しばらく省略します。残っているものには、3 つの次元があります:

    • Unicode (UCS-2) と非 Unicode:N 名前の前は Unicode を示します
    • 固定長と可変長:var 変数を示します。それ以外の場合は固定です
    • 行内対 BLOB:(max) 長さは BLOB を示し、それ以外は行内の値です

    したがって、これを使用すると、任意の型の意味を読み取ることができます:

    • CHAR(10) :サイズ 10 の行内固定長非 Unicode です
    • NVARCHAR(256) :最大 256 のサイズの行内可変長 Unicode です
    • VARCHAR(MAX) :Unicode 以外の BLOB 可変長

    非推奨の型 textntext 新しい型 varchar(max) に対応 および nvarchar(max)

    詳細に行くと、in-row の意味 対 BLOB エンジンの可能性に応じて、短い長さでぼやけます ストレージを最適化し、BLOB を行内にプルするか、行内の値を「小さな BLOB」アロケーション ユニットにプッシュしますが、これは単なる実装の詳細です。 テーブルとインデックスの編成 を参照してください .

    プログラミングの観点から、すべてのタイプ:CHAR , VARCHARNCHARNVARCHAR , VARCHAR(MAX) および NVARCHAR(MAX) 、統一文字列 API をサポート:文字列関数 .古い非推奨のタイプ TEXT および NTEXT しないしない この API をサポートしている場合は、操作する別の廃止された TEXT API があります。非推奨のタイプは使用しないでください。

    BLOB 型は、UPDATE table SET column.WRITE(@value, @offset) を使用して効率的なインプレース更新をサポートします 構文。

    固定長型と可変長型の違いは、テーブルで行圧縮を行うとなくなります。行圧縮を有効にすると、固定長型と可変長型は同じ形式で格納され、末尾のスペースはディスクに格納されません。行圧縮の実装 .ページ圧縮は行圧縮を意味することに注意してください。



    1. MySQL-BETWEENは正しい結果を選択しません

    2. 夏時間を念頭に置いて繰り返し日付を保存する方法

    3. SQLServerのデータベース内のすべてのテーブルのAddColumnステートメントを生成する方法-SQLServer/T-SQLチュートリアルパート49

    4. 旅行ウェブサイトデータベースを設計する方法