SQL Server’da Varchar ve Nvarchar Veri Tipleri Arasındaki Farklar

Herkese merhaba,

Bu başlık altında SQL Server’da Varchar ve Nvarchar veri tipleri arasındaki farkları inceleyeceğiz.

Varchar[(n)]

Temel Tanım

Unicode olmayan değişken uzunluk karakteri veri türü.
Örnek:

DECLARE @Ad AS VARCHAR(50) = 'Yavuz Selim'
SELECT
	@Ad

Her Karakter için Gerekli Byte Sayısı

Her karakter için 1 byte yer kaplar.
Örnek:

DECLARE @Ad AS VARCHAR(50) = 'Yavuz ve Pelin'
SELECT
	@Ad AS Adınız
   ,DATALENGTH(@Ad) AS Uzunluk

Sonuç:
Ad Uzunluk
Yavuz ve Pelin 14

İsteğe Bağlı Parametre Aralığı

İsteğe bağlı parametre değeri 1 ile 8000 arasında olabilir. Unicode olmayan maksimum karakterleri depolayabilirsiniz.

Değişken Bildiriminde veya Sütun Tanımında İsteğe Bağlı Parametre Belirtilmemişse

İsteğe bağlı parametre değeri n değişken bildiriminde veya sütun tanımında belirtilmemişse 1 olarak kabul edilir.
Örnek:

DECLARE @Ad
VARCHAR = 'Yavuz Selim'
SELECT
	@Ad Ad
   ,DATALENGTH(@Ad)
	Uzunluk

Sonuç :
Ad, Uzunluk
Y 1

İsteğe Bağlı Parametre Kullanırken Belirtilmiş CAST/CONVERT Fonksiyonları

Bu isteğe bağlı parametre n, CAST / CONVERT işlevlerini kullanırken belirtilmediğinde, 30 olarak kabul edilir.
Örnek:

DECLARE @ad VARCHAR(35) =
'Yavuz Selim ve
Pelin İstanbul Konya Artvin Türkiye'
SELECT
	CAST(@ad AS VARCHAR) Ad
   ,DATALENGTH
	(CAST(@ad AS VARCHAR)) Uzunluk


Sonuç:
Ad Uzunluk
Yavuz Selim ve Pelin İstanbul  30

Hangisini Kullanmalıyım?

Sütun içinde saklanacak verilerin Unicode karakterler olmadığını biliyorsak kullanmalıyız.

Depolama Boyutu

Girilen karakterlere karşılık tanımlanan değer kadar byte alır.

NVarchar[(n)]

Temel Tanım

Unicode Değişken Boyu
karakteri veri türü. Hem Unicode olmayan hem de Unicode (yani Japonca,
Korece vb.) Karakterler depolayabilirsiniz.
Örnek:

DECLARE @Ad AS NVARCHAR(50) = 'Pelin'
SELECT
	@Ad

Her Karakter için Gerekli Byte Sayısı

Unicode / Unicode olmayan karakter başına 2 byte yer kaplar.
Örnek:

DECLARE @Ad AS NVARCHAR(50) =
'Yavuz Selim Kart'
SELECT
	@Ad AS Adınız
   ,DATALENGTH(@Ad)
	AS Uzunluk

Sonuç:
Adınız Uzunluk
Yavuz Selim Kart 32

İsteğe Bağlı Parametre Aralığı

İsteğe Bağlı Parametre değeri 1 ile 4000 arasında olabilir. Unicode ya da Unicode olmayan 4000 karakteri depolayabilirsiniz.

Değişken Bildiriminde veya Sütun Tanımında İsteğe Bağlı Parametre Belirtilmemişse

İsteğe bağlı parametre değeri n değişken bildiriminde veya sütun tanımında belirtilmemişse 1 olarak kabul edilir.
Örnek:

DECLARE @Ad
NVARCHAR = 'Yavuz Selim'
SELECT
	@Ad Ad
   ,DATALENGTH(@Ad)
	Uzunluk

Sonuç:
Ad Uzunluk
Y 2

İsteğe Bağlı Parametre Kullanırken Belirtilmiş CAST/CONVERT Fonksiyonları

CAST CONVERT işlevlerini kullanırken isteğe bağlı parametre n belirtilmediğinde, 30 olarak kabul edilir.
Örnek:

DECLARE @ad
NVARCHAR(35) =
'Yavuz Pelin Yavuz
Pelin Yavuz Pelin
Yavuz Pelin'
SELECT
	CAST(@ad AS NVARCHAR) Ad
   ,DATALENGTH
	(CAST(@ad AS NVARCHAR)) Uzunluk

Sonuç:
Ad Uzunluk
Yavuz Pelin Yavuz
Pelin Yavuz  60

Hangisini Kullanmalıyım?

Sütun içinde saklanacak verilerin Unicode karakterlere sahip olabileceğini biliyorsak kullanmalıyız.

Depolama Boyutu

Girilen karakterlere karşılık tanımlanan değerin iki katı kadar byte alır.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

2.216 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!