sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er forskellen mellem CHAR og VARCHAR i SQL Server - SQL Server / T-SQL Tutorial Del 31

CHAR og VARCHAR begge datatyper bruges til at gemme tegnstrenge.

Char er fast bredde, det betyder, at lagerstørrelsen af ​​char-værdien er lig med den maksimale størrelse af kolonnen/variablen.

Varchar er variabel længde. Lagerstørrelsen, der bruges af Varchar, afhænger af de faktiske gemte tegn.


Eksempel 1:

Lad os oprette et par variable og derefter gemme den samme streng og kontrollere lageret brugt af datalength-funktionen i SQL Server.

Declare @Variable1 CHAR(20)Declare @Variable2 VARCHAR(20)SET @ Variable1='TechBrothersIT'SET @Variable2='TechBrothersIT'Vælg datalength(@Variable1) som VarLength1, datalength(@Variable2) som VarLength2
 
 Hvad er forskellen mellem CHAR og VARCHAR i SQL Server - T-SQL Tutorial
Som du kan se ovenfor, Char optog 20 bytes plads til 20 tegn, selv om vi kun gemte 14 tegn. På den anden side brugte Varchar kun 14 bytes til at gemme 14 tegn.


Eksempler 2:

Lad os oprette en tabel med to kolonner, én gang char og andre varchat-datatyper. Gem de samme oplysninger, og kontroller derefter pladsen optaget af hver værdi ved at bruge datalængdefunktionen.
Opret tabel dbo.CharVsVarChar( CHARName CHAR(50),VARName VARCHAR(50))insert into dbo.CharVsVarChar  
Værdier('Aamir','Aamir'),('TechBrothersIT','TechBrothersIT'),('Raza','Raza')go
Vælg DataLength(CharName) AS CHARNameLength,DataLength(VarName) AS VarNameLength Fra dbo.CharVsVarChar
 
 Char vs Varchar i SQL Server - SQL Server / T-SQL vejledning 
 
 Vi kan se, at Char altid optager den samme plads uanset antal eller gemte tegn. På den anden side varierer Varchar plads optaget afhængigt af antallet af gemte tegn.
I tilfælde, hvor vi ved, at vi skal gemme et fast antal tegn, kan vi bruge Char ellers bruge Varchar.


  1. SQL Server 2016

  2. Forskellen mellem SYSDATE() og NOW() i MariaDB

  3. Sådan eksporteres clob-feltdata i oracle sql-udvikler

  4. Udforskning af SQL Server 2016 Query Store GUI