Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaka jest różnica między CHAR i VARCHAR w SQL Server - SQL Server / T-SQL Tutorial, część 31

CHAR iVARCHAR oba typy danych są używane do przechowywania ciągów znaków.

Char ma stałą szerokość, co oznacza, że ​​rozmiar przechowywania wartości char jest równy maksymalnemu rozmiarowi kolumny/zmiennej.

Varchar ma zmienną długość. Rozmiar pamięci używany przez Varchar zależy od rzeczywistych zapisanych znaków.


Przykład 1:

Stwórzmy kilka zmiennych, a następnie zapiszmy ten sam ciąg i sprawdźmy pamięć używaną przez funkcję datalength w SQL Server.

Declare @Variable1 CHAR(20)
Declare @Variable2 VARCHAR(20)

SET @Variable1='TechBrothersIT'
SET @Variable2='TechBrothersIT'

Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2
 
 Jaka jest różnica między CHAR i VARCHAR w SQL Server — samouczek T-SQL
Jak możesz patrz wyżej, Char zajmował 20 bajtów miejsca na 20 znaków, a my zapisaliśmy tylko 14 znaków. Z drugiej strony Varchar używał tylko 14 bajtów do przechowywania 14 znaków.


Przykłady 2:

Stwórzmy tabelę z dwiema kolumnami, raz char i innym typem danych varchat. Przechowuj te same informacje, a następnie sprawdź miejsce zajmowane przez każdą wartość za pomocą funkcji długości danych.
Create table dbo.CharVsVarChar( CHARName CHAR(50),VARName VARCHAR(50))
insert into dbo.CharVsVarChar  
Values
('Aamir','Aamir'),
('TechBrothersIT','TechBrothersIT')
,('Raza','Raza')
go
Select DataLength(CharName) AS CHARNameLength,DataLength(VarName) AS VarNameLength 
From dbo.CharVsVarChar
 
 Char kontra Varchar w SQL Server — samouczek SQL Server / T-SQL 
 
 Widzimy, że Char zawsze zajmuje to samo miejsce, niezależnie od liczby lub zapisanych znaków. Z drugiej strony zajmowane miejsce Varchar różni się w zależności od liczby zapisanych znaków.
W przypadkach, gdy wiemy, że będziemy przechowywać stałą liczbę znaków, możemy użyć Char, w przeciwnym razie użyj Varchar.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego warto korzystać z Select Top 100 procent?

  2. Wykonaj sp_msforeachdb w aplikacji Java

  3. Jak zwrócić tylko Date z typu danych DateTime serwera SQL?

  4. SQL Server 2005 i tymczasowy zakres tabel

  5. DATENAME() Przykłady w SQL Server