Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sự khác biệt giữa VARCHAR và NVARCHAR trong máy chủ SQL - Hướng dẫn SQL Server / T-SQL Phần 32

Varchar là kiểu dữ liệu ký tự có độ dài thay đổi được sử dụng để lưu trữ định dạng dữ liệu không phải Unicode. Bạn có thể coi Non-Unicode là các ký tự tiếng Anh.

NVarchar cũng là kiểu dữ liệu ký tự có độ dài thay đổi được sử dụng để lưu trữ định dạng dữ liệu UniCode. Đối với các định dạng dữ liệu Unicode, bạn có thể nghĩ đến các bảng chữ cái của ngôn ngữ Trung Quốc, Nhật Bản, Hàn Quốc và tiếng Ả Rập.

Varchar có thể lưu trữ các ký tự 'tiếng Anh' và cần một byte để lưu trữ mỗi ký tự. Nvarchar có thể lưu trữ các ký tự tiếng Anh và các ngôn ngữ khác. NVarchar lấy hai byte để lưu trữ mỗi ký tự.

Hãy tạo hai biến và kiểm tra không gian được sử dụng bởi mỗi biến.

 Khai báo @ Variable1 VARCHAR (20) Khai báo @ Variable2 NVARCHAR (20) SET @ Variable1 ='TechBrothersIT'SET @ Variable2 =' TechBrothersIT'S chọn độ dài dữ liệu (@ Variable1) là VarLength1, độ dài dữ liệu (@ Variable2) là VarLength2 

Sự khác biệt giữa VARCHAR và NVARCHAR - Hướng dẫn sử dụng SQL Server

Như chúng ta có khai báo @ Variable2 là NVarchar, cần gấp đôi không gian so với @ Variable1 là Varchar để lưu trữ các ký tự.


Hãy tạo một bảng với các cột kiểu dữ liệu Varchar và NVarchar và chèn một vài bản ghi.

 Tạo bảng dbo.VarcharVsNvarchar (VarcharName Varchar (50), NVarcharName NVARCHAR (50)) chèn vào dbo.VarcharVsNvarchar Giá trị ('عامر', 'عامر'), ('عامر ', N' عامر '), (' TechBrothersIT ', N'TechBrothersIT') Chọn * từ dbo.VarcharVsNvarchargoSelect DataLength (VarcharName) AS CHARNameLength, DataLength (NVarcharName) AS VarNameLength Từ dbo.Varchar> 
Varchar VS Nvarchar trong SQL Server - Hướng dẫn TSQL

Truy vấn Chọn đầu tiên của chúng tôi đã trả lại cho chúng tôi dữ liệu. Nhận thấy rằng chúng tôi có một số dữ liệu rác ????. Ngay cả khi chúng tôi đã xác định kiểu dữ liệu của cột NVarchar, nó đã chèn rác. Để chèn dữ liệu Unicode trong cột kiểu Nvarchar, chúng ta cần Sử dụng N với dữ liệu như bạn có thể thấy trong chèn thứ hai (('عامر', N 'عامر')).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DB_NAME () so với ORIGINAL_DB_NAME () trong SQL Server:Sự khác biệt là gì?

  2. Chỉ mục Clustered và Non-Clustered thực sự có nghĩa là gì?

  3. Làm cách nào để có được một danh sách các từ riêng biệt được sử dụng trong tất cả các Bản ghi Trường bằng MS SQL?

  4. Sử dụng sp_help_schedule trong SQL Server

  5. Cài đặt ngôn ngữ có thể ảnh hưởng đến kết quả FORMAT () của bạn như thế nào trong SQL Server (Ví dụ T-SQL)