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

SQLサーバーのVARCHARとNVARCHARの違い-SQLServer/T-SQLチュートリアルパート32

    Varcharは、非Unicodeデータ形式を格納するために使用される可変長文字データ型です。非Unicodeは英語の文字と考えることができます。

    NVarcharは、UniCodeデータ形式を格納するために使用される可変長文字データ型でもあります。 Unicodeデータ形式の場合、中国語、日本語、韓国語、アラビア語のアルファベットを考えることができます。

    Varcharは「英語」の文字を格納でき、各文字の格納には1バイトかかります。 Nvarcharは、英語およびその他の言語の文字を格納できます。 NVarcharは各文字を格納するのに2バイトかかります。

    2つの変数を作成し、各変数が使用するスペースを確認しましょう。

    Declare @Variable1 VARCHAR(20)
    Declare @Variable2 NVARCHAR(20)
    
    SET @Variable1='TechBrothersIT'
    SET @Variable2='TechBrothersIT'
    
    Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2

    VARCHARとNVARCHARの違いは何ですか-SQLServerチュートリアル

    @ Variable2をNVarcharとして宣言すると、文字を格納するためにVarcharである@Variable1と比較して2倍のスペースが必要になります。


    VarcharおよびNVarcharデータ型列を含むテーブルを作成し、いくつか挿入してみましょうレコード。

    Create table dbo.VarcharVsNvarchar( VarcharName Varchar(50),NVarcharName NVARCHAR(50))
    insert into dbo.VarcharVsNvarchar  Values
    ('عامر','عامر'),
    ('عامر',N'عامر'),
    ('TechBrothersIT',N'TechBrothersIT')
    
    Select * from dbo.VarcharVsNvarchar
    go
    Select DataLength(VarcharName) AS CHARNameLength,DataLength(NVarcharName) AS VarNameLength 
    From dbo.VarcharVsNvarchar

    SQLServerのVarcharVSNvarchar-TSQLチュートリアル

    最初のSelectクエリから返されましたデータ。ガベージデータがあることに気づきましたか????。列NVarcharのデータ型を定義しましたが、ガベージが挿入されました。 Nvarcharタイプの列にUnicodeデータを挿入するには、2番目の挿入(('عامر'、N'عامر'))でわかるように、データでNを使用する必要があります。


    1. oracleのMODIFYCOLUMN-null許容に設定する前に、列がnull許容かどうかを確認するにはどうすればよいですか?

    2. Many2manyフィールドへの入力(odoo 8)

    3. 挑戦が始まりました!最速の数級数ジェネレータを作成するためのコミュニティの呼びかけ

    4. MySQLで日付を比較する