sql >> Database >  >> RDS >> Sqlserver

Wat is het verschil tussen CHAR en VARCHAR in SQL Server - SQL Server / T-SQL-zelfstudie, deel 31

CHAR en VARCHAR beide gegevenstypen worden gebruikt om tekenreeksen op te slaan.

Char is een vaste breedte, dat betekent dat de opslaggrootte van de char-waarde gelijk is aan de maximale grootte van de kolom/variabele.

Varchar heeft een variabele lengte. De opslaggrootte die door Varchar wordt gebruikt, hangt af van de daadwerkelijk opgeslagen tekens.


Voorbeeld 1:

Laten we een paar variabelen maken en vervolgens dezelfde string opslaan en de opslag controleren die wordt gebruikt door de datalength-functie in 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
 
 Wat is het verschil tussen CHAR en VARCHAR in SQL Server - T-SQL-zelfstudie
Zoals u kunt zie hierboven, Char nam 20 bytes ruimte in beslag voor 20 tekens, zelfs als we slechts 14 tekens hebben opgeslagen. Aan de andere kant gebruikte Varchar slechts 14 bytes om 14 tekens op te slaan.


Voorbeelden 2:

Laten we een tabel maken met twee kolommen, een keer char en een ander varchat-gegevenstype. Sla dezelfde informatie op en controleer vervolgens de ruimte die door elke waarde wordt ingenomen met behulp van de datalength-functie.
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 vs Varchar in SQL Server - SQL Server / T-SQL-zelfstudie 
 
 We kunnen zien dat Char altijd dezelfde ruimte inneemt, ongeacht het aantal of de opgeslagen tekens. Aan de andere kant varieert de gebruikte Varchar-ruimte afhankelijk van het aantal opgeslagen tekens.
In gevallen waarin we weten dat we een vast aantal tekens gaan opslaan, kunnen we Char gebruiken, anders Varchar gebruiken.


  1. De ODBC-laag testen

  2. Controleren of een item niet in een andere tabel voorkomt

  3. Onze Microsoft Ignite-sessieopname is nu beschikbaar om te bekijken!

  4. PostgreSQL gebruikt geen gedeeltelijke index