Microsoft SQL Server Özellikleri

Microsoft SQL Server kullanıcısına verileri işleme, sorgulama ve raporlama işlemleri yapma olanağı sunar. Gelişmiş özellikleri belirli ücretler karşılığında sunulur. İnternet sitesi tasarlama işlerinden, masaüstü programlarına kadar geniş bir skalada veri tabanı ihtiyacını MSSQL karşılar. Bu özellikleri ile de veri madenciliğinde sıklıkla kullanılan bir araçtır. Veri analistiiş zekası uzmanıveri mühendisleri tarafından bilinen bir sorgulama dilidir.

Şimdi avantajlarına bakalım.

  • Verileri taşımadan veya çoğaltmadan SQL Server ile tüm veri varlıklarında sorgulama yaparak verilerden iç görüler elde eder.
  • SQL Server’da hem yapılandırılmış hem de yapılandırılmamış verileri birleştirerek, T-SQL yoluyla verilere erişir ve paylaşan bir veri gölü (data lake) oluşturur.
  • Büyük veri kümeleri; makine öğrenimi modellerini eğitmek, saklamak ve çalışır hale getirmenin yanı sıra; analiz etmek amacıyla verileri toplamak, depolamak ve hazırlamak için gereken tüm araçları ve sistemleri de sağlar.
  • SQL Server, Windows ve Linux işletim sistemleri ile kullanılabilir.
  • İş açısından kritik iş yüklerinizin performansını iyileştirmek için kalıcı bellek desteği ve bellek için optimize edilmiş tempdb gibi belleğe yüklenmiş veri tabanı özelliklerini kullanır.
  • Veri sınıflandırması, veri koruması ve izleme yaparak uyarılar için yerleşik özellikleri kullanır. SQL Server şüpheli etkinlikleri izler, tanımlar ve bunlarla ilgili uyarılar yapar. Hatta güvenlik boşluklarını ve hatalı yapılandırmaları tespit edip bunlarla ilgili sorunları giderir.

Veri tabanına adım atarken bilmemiz gereken önemli şeylerden biri de veri tipleridir. Şimdi onlara bakalım.

1) Metinsel Veri Tipleri

char: Unicode’u desteklemeyip char(n) şeklinde kullanılırlar. 8000 karaktere kadar değer alabilirler. Belirtilenden(n) az karakter girilse dahi giriş yapılan boyut kadar yer kaplar. Veri giriş boyutları benzer, sabit olan veri kümelerinde kullanılması önerilir

nchar: Unicode(uluslararası karakter setini,tanımlı tüm alfabeleri içerirç)destekler.Chardan farklı olarak maksimum 4000 karaktere kadar değer alabilir.

varchar: Chardan farklı olarak verinin boyutu kadar yere kaplar. 8000 karaktere kadar depolama yapar.Birbirinden farklı uzunlukta veri girişi yapılacağı zaman kullanılması önerilir. varchar(MAX) kullanımı ile 2GB’a kadar depolama yapılabilir.(En çok kullanılanlardan biridir.)

nvarchar: Verinin boyutu kadar yer kaplar. Varchardan farklı olarak unicode’u destekler. 4000 karaktere kadar değer alabilir.

text: Belirtilenden az değer girilse bile boyutu kadar yer kaplar. 2GB’a kadar metinsel veri depolar.Unicode’u desteklemez.

ntext: Text’den farklı olarak girilen karakter boyutu kadar yer kaplar ve unicode’u destekler.

2) Binary(İkilik) Veri Tipleri

binary: 1 ve 0 ları temsil eden ikilik taban veri tipidir. Sabit uzunluklu veri tiplerinde kullanılırlar.8000 bytre’a kadar depolama yapabilir.

varbinary: Binary’den farklı olarak girilen karakter kadar yer kaplar.Bu yüzden uzunlukların değişken olduğu durumlarda tercih edilir.

image: Resim dosyalarını saklamak için kullanılır. En fazla 2 GB’a kadar veri depolar. Bunun yerine varbinary(MAX) kullanılması tercih edilir.

3) Sayısal Veri Tipleri

bit: Bir byte uzunluğunda tam sayı veri tipidir.Genellikle evet/hayır şeklinde mantıksal bilgileri tutmak için kullanılır.

int: 4 byte büyüklüğünde, -2 milyar /+2 milyar arasında değer tutabilen tam sayı veri tipidir.

bigint: 8 byte büyüklüğünde -2⁶³ ve 2⁶³ arasında değer tutabilen tam sayı veri tipidir.

smallint: 2 byte büyüklüğünde -32.768 ve 32.768 arası değer alabilen tam sayı veri tipidir.

tinyint: 1 byte büyüklğüne sahip, 0–255 arası tam sayı veriler için kullanılan tam sayı veri tipidir.

decimal,numeric: İkisinin de kullanımı aynıdır.Bu veri tipinde saklanacak sayının basamak sayısı tanımlanabilir.Veri tipi boyutu belirtilen basamak sayılarına göre değişkenlik gösterebilir.-38 ve +38 basamak arası verileri depolayabilir. -10³⁸ ,10³⁸ arası ondalık ve tam sayı türünde veri saklayabilir.

4)Parasal Veri Tipleri

money: 8 byte boyutunda, yaklaşı -2⁶⁴ ile 2⁶⁴ arasında parasal değerleri tutmak için kullanılır. 4 basamağa kadar duyarlı ondalık tipli verileri saklar.

smallmoney: 4 byte uzunluğunda yaklaşık -214.000 ile 214.000 arası parasal değerleri tutmak için kullanılır.Money tipinde olduğu gibi 4 basamağa kadar duyarlı ondalık tipli verileri saklarken kullanılır.

5)Tarih-Zaman Veri Tipleri

date: Tarihleri YYYY-AA-GG (yıl-ay-gün) formatında saklar. 3 byte uzunluğunda veri tipidir.

smalldatetime: Tarih ve zaman verilerini yıl-ay-gün ve saat-dakika-saniye-salise şeklide saklar. 4 byte uzunluğunda veri tipidir.

datetime: YYYY-AA-GG şeklinde tarih ve zaman verilerini tutan 8 byte uzunluğunda veri tipidir. 1 Ocak 1753–31 Aralık 9999 arası veriler için kullanılır.

datetime2: Datetime’dan farklı olarak 1 Ocak 0001–31 Aralık 9999 tarihleri arasu verileri tutan ekstra olarak salise hassasiyeti daha yüksektir.Kapladığı alan salise hassasiyetine göre 6–8 byte arası değişebilir.

time: Sadece saat verilerini saat-dakika-saniye-salise(7 basamaklı) şeklinde saklayan , boyutu kullanıcı tarafından değiştirilebilen 3–5 byte arası yer kaplayan veri tipidir.

datetimeoffset: Ülkelere göre değişen zaman farkını hesaplayıp tutarken kullanılır.

6) Diğer Veri Tipleri

sql_variant: sayı,metin, binary gibi farklı veri tiplerini depolamak için kullanılan veri tipidir.Yani bir sütun ya da fonksiyonda birden fazla veri tipi kullanmamız gerektiğinde tercih etmeliyiz.

xml: XML türünde veri saklamak için kullanılır. Kapasitesi 2 GB’dır.Bellekteki boyutu, saklanan XML verisine göre değişkenlik gösterir.

geometry: Öklid koordinat sistemine ait verileri tutmak için kullanılır.Geometrik şekillerin en-boy-yükselik verilerini saklar.

timestamp: Tabloya kayıt eklendiğinde , güncellendiğinde binary türünde özel değer alan veri tipidir.

uniqueidentifier: 16 byte uzunluğunda benzersiz GUID tipinde veri tutar. İki GUID birbirinden tamamen farklıdır eşit olamazlar.

hierarchyid: Ağaç veri modeli ve ya hiyerarşik olarak sınflandırılmış verileri saklamak için kullanılır.

geography: Coğrafi koordinat ve GPS verilerini tutmak için kullanılır.

Şimdi sıkça kullanacağımız SQL komutlarına bakalım.

CREATE KOMUTU

CREATE (oluşturma) komutu yeni bir veritabanı oluşturmak ve varolan veritabanına yeni bir tablo eklemek için kullanılır. Yeni bir veritabanı oluşturalım.

CREATE DATABASE Okul şeklinde yeni bir veritabanı oluşturabiliriz.

Bu veritabanına yeni bir tablo ekleyelim.

Burada tablomuzda olmasını istediğimiz alanları ve bunlara karşılık gelen veri tiplerini yazdık. Not Null diyerek tabloda boş bırakılmamasını istedik. id kısmındaki IDENTITY(1,1) PRIMARY KEY ise başlangıç ​​değeri  1’dir ve her yeni kayıt için 1 artacağını belirtiyor.

ALTER KOMUTU

Mevcut tabloya sütun eklemek, sütun silmek ya da mevcut sütunun yapısında değişiklik yapmak için kullanılır.

ALTER TABLE Ogrenci RENAME Ogrenciler; (Ogrenci olan tablomuzun adını Ogrenciler olarak değiştirdik.)

Daha önce oluşturuşmuş bir tabloya alan eklemek için de ALTER TABLE komut dizesi ile ADD komutu kullanılır.

ALTER TABLE ogrenciler ADD sinif int;( Tabloya sinif alanını ekledik.)

ALTER TABLE ogrenciler ADD (sinif int, fakulte varchar(50), kayit_tarihi date);

Daha önce oluşturulmuş tablodaki bir alanı silmek için “ALTER TABLE” komut dizesi ile birlikte “DROP COLUMN” komutu kullanılır.

ALTER TABLE Ogrenciler DROP COLUMN bolum; (Tablodan bolum alanını kaldırdık.)

ALTER TABLE Ogrenciler DROP COLUMN fakulte, DROP COLUMN sinif, DROP COLUMN kayit_tarihi;(Birden fazla alan silmek istersek yazılışı bu şekildedir.)

DROP KOMUTU

Drop komutu veritabanı, tablo ve indekslerin silinmesi için kullanılır. Kullanımı da şu şekildedir.

DROP DATABASE veritabanı_adı

DROP TABLE tablo_adı

SELECT KOMUTU

Bu komut tablodan veri okumayı sağlar. SELECT komutunun döndürülen veriler sonuç kümesi adı verilen bir tabloda saklanır. Örneğin;

SELECT  *  FROM tablo_adi şeklinde bir sorgulama yaparsak – Yıldız (*) ile tablodaki tüm sütunları görüntüleriz. Ama örneğin bir tablodaki belli bir alanı görüntülemek istersek;

SELECT  ad  FROM Personel şeklinde bir sorgu yaptığımızı düşünelim. Burada Personel tablosunda bulunanların ad sütunundaki verilerini listelemiş oluruz.

SELECT  ad, soyad  FROM Personel şeklinde de birden fazla alanı listeleyebiliriz.

DISTINCT KOMUTU

DISTINCT ifadesi tablodaki belirtilen alanda bulunan kayıtlardan birer örnek alır.  Çiftleyen satır varsa sadece 1 tanesini ekrana yazdırır. Örneğin;

SELECT DISTINCT ad, email FROM Ogrenciler şeklinde sorguladığımızda veriler tekrarlanmadan listelemiş olacağız.

WHERE KOMUTU

Bu komut sorguda şart belirlememizi sağlar. Örneğin;

SELECT ad FROM Ogrenciler WHERE sehir=”Ordu” şeklinde sorguladığımızda Ogrenciler tablosunda şehri sadece Ordu olanların adlarını listelemiş oluyoruz.

Mantıksal Operatörler :

  1. AND (VE) Operatörü (AND) ; Her iki şartta doğru ise
  2. OR (VEYA) Operatörü (OR) ; Şartların en az biri doğru ise
  3. NOT (DEĞİL) Operatörü (NOT) ; Şart doğru değilse Şimdi örneklerle açıklayalım;

SELECT ad FROM Ogrenciler WHERE sehir=”Giresun” AND id<10 sorgusunda sadece şehri Giresun olanlar ve id numarası 10’dan küçük olanların adlarını listelemiş oluyoruz. Yani AND ile yazılan koşulların ikisini de karşılamalıdır. Bunu OR ile yapsaydık;

SELECT ad FROM Ogrenciler WHERE sehir=”Giresun” OR id<10 şehri Giresun olup id numarası 10’dan büyük olanların, id numarası 10’dan küçük olup şehri Giresun olmayanların, hem şehri Giresun hem de id numarası 10’dan küçük olanların adlarını listelemiş olacaktık. OR şartında ise sadece bir tanesini karşılayan varsa listelenir.

LIKE ARAMA KOMUTU

LIKE komutu veriler içinde benzer kelimeleri aramak için kullanılır. LIKE komutu, şart komutu olan WHERE komutu ile birlikte kullanılır. LIKE ile arama yaparken bir takım arama karakterleri kullanılır. 

Yüzde (%) karakteri herhangi bir karakter grubu ya da cümlenin yerini tutar. Örneğin belli bir sütunda “M” harfi ile başlayan kayıtları çekmek istediğimizde “M%” ifadesini kullanırız.

SELECT * FROM Ogrenciler WHERE ad LIKE “M%”;

İçerisinde herhangi bir karakter grubu geçen satırları ararken karakter grubunun başına ve sonuna “%” karakteri ekleyeceğiz.

SELECT * FROM Ogrenciler WHERE ad LIKE “%AR%”;

Şimdi alt tire (_) kullanarak aramamızı karakter bazında gerçekleştirelim. Örnek olarak “Ogrenciler” tablosundan, ad sütunundan isminin ikinci karakteri “a” olan isimleri çekelim;

SELECT * FROM Ogrenciler WHERE ad LIKE “_a%”;

BETWEEN (Arasında) Komutu

Bir sütundaki iki değer arasındaki verileri çekmek için kullanılır. Genellikle tarih aralıklarını ve e-ticaret sitelerinde fiyat aralıklarını sorgulamak için kullanılır. Biz id numarası 8 ile 15 arasındaki öğrencilerin verilerini çekelim.

SELECT * FROM Ogrenciler WHERE id BETWEEN 7 AND 15;

IN (İçinde) Komutu

IN komutu içinde belirtilen kelimeleri barındıran satırları getirir.

SELECT ad, sehir FROM Ogrenciler WHERE sehir IN (“İstanbul”, “İzmir”);

INSERT Komutu

Bu komut veri tabanına veri kaydetmemizi sağlar. Eklenen her bir kayıt tabloya yeni bir satır olarak eklenir. Hem sütun adı hem de eklenecek verileri içerecek şekilde veya sadece eklenecek değerleri tanımlayarak kullanabilirsiniz. Kullanımına bakalım:

INSERT INTO tablo_adı (sütun_adı1, sütun_adı2, …) VALUES (deger1, deger2, …)

Örneğin; Ogrenciler tablosuna yeni veriler ekleyelim.

INSERT INTO Ogrenciler(Adi, Soyadi, Bolum, Sınıf, DTarihi) VALUES (‘Mustafa’, ‘Karagöz’, ‘Yazılım Muhendisligi’, ‘1997-08-02’) şeklinde yeni bir satıra tablodaki alanlarımıza veri eklemiş olduk.

Veriler eklenirken karakter içerenler tırnak(”) içerisine alınır. integer yani sayı içeren ifadeler direkt yazılır. Tarih, telefon numarası gibi ifadeler genelde varchar olarak tanımlandığı için onlar da tırnak içine alınarak yazılır.

UPDATE Komutu

Bu komut, var olan bir tablodaki kayıtlarda değişiklik yapmak ve güncellemek için kullanılır.

Kullanım şekli şekildedir:

UPDATE tablo_adı SET sütun_adı1=deger1, sütun_adı2=deger2, … WHERE sütun_adı=deger şeklinde kullanılır.

Örneklere bakalım.

UPDATE Ogrenciler SET ad=’Kubra’, soyad=’Yılmaz’ WHERE ad=’Selin’ AND soyad=’Demetgul’(Bu örnekte adı soyadı Selin Demetgül olan öğrencinin verilerini Kübra Yılmaz şeklinde değiştirdik. )

UPDATE Ogrenciler SET bolum=’Gastronomi’ WHERE id=10 (Bu örnekte de id numarası 10 olan öğrencinin bölümünü Gastronomi olarak güncelledik.)

UPDATE Ogrenciler SET yas=yas+3 WHERE id=8 (Bu örnekte id numarası 8 olan ogrencinin yaşını 3 arttırdık. )

DELETE Komutu

Bu komut veri tabanındaki tablodaki kayıtları silmek için kullanılır. Kullanımı şu şekildedir.

DELETE FROM tablo_adı WHERE sütun_adı=deger

!! Where komutu kullanılmazsa tüm kayıtlar, kullanılırsa istenilen değer silinir.

Örnek Yapalım.

DELETE FROM Ogrenciler WHERE bolum=’Yazılım Muhendisligi’ (Ogrenciler tablosundan bolumu yazılım mühendisliği olan kayıtlar silinecektir.)

TRUNCATE Komutu

Bu komut da tablodaki verilerin silinmesini sağlar. DELETE komutundan bir farkı vardır. Örneğin tablomuzda 10 kayıt varsa Delete komutu ile bir kayıt silinirse toplam kayıt sayısı 9 olmaktadır. Fakat yeni kayıt eklendiğinde Id si 11 olacaktır. Truncate Table komutu ile silinirse ID’ler sıfırlanmaktadır.

Kullanımı şu şekildedir:

TRUNCATE TABLE veritabani_adi

ORDER BY Komutu

Order By komutu listelenecek bilgilerin belirli bir alan adına göre sıralanmasını sağlamak için kullanılan komuttur.

  • ASC:  Sıralamanın artan olarak yapılmasını sağlar.
  • DESC: Sıralamanın azalan olarak yapılmasını sağlar.

Kullanımı şu şekildedir:

SELECT [alanlar] WHERE [şartlar] ORDER BY [sıralama alanı] ASC/DESC

Ayrıca tablo içindeki veriler sıralanırken aynı anda birden fazla alana göre sıralama yapmak mümkündür.

Örneklere bakalım.

SELECT * FROM personel ORDER BY maas DESC(Personel tablosundaki tüm veriler maas alanına göre azalan sırayla listelenecektir.)

SELECT * FROM personel ORDER BY bolum ASC, dtarihi DESC(Bu sorguda da personel tablosundaki tüm verileri önce bölümlere göre A’dan Z’ye doğru, eğer bölümlerde eşit kayıtlar varsa da dtarihi alanına göre azalan sırada listelenmiş olacak)

SQL tablo içerisindeki çeşitli matematiksel ifadelerin sonucunu otomatik olarak üretmeyi sağlayan fonksiyonlara sahiptir. Neler olduğuna bakalım.

SUM Fonksiyonu

Tablo içerisinde belli bir sütuna göre toplama işlemi gerçekleştirir.

Kullanımı:

SELECT SUM(sutun_adi) FROM tablo_adi

Örnek Yapalım:

SELECT SUM(maas) FROM Personel(Personel tablosundaki toplam maaşı görmüş oluruz.)

AVG Fonksiyonu

Belirli bir alana göre aritmetik ortalamayı(average) hesaplamak için kullanılır.

Kullanımı:

Select MAX sütun_adi FROM tablo_adi;

Örnek yapalım:

SELECT AVG(maas) FROM personel(Personel tablosundaki ortalama maaşı görmüş oluyoruz.)

MAX Fonksiyonu

Fonksiyonu içinde belirlenen sütun içindeki en büyük değeri bulmak için kullanılır.

Kullanımı: Select MAX sütun_adi FROM tablo_adi;

SELECT MAX(maas) FROM personel(Personel tablosundaki en yüksek maaşı görüntüleriz.)

MİN Fonksiyonu

Fonksiyonun içinde belirlenen sütun içindeki en küçük değeri bulmak için kullanılır.

Kullanımı: Select MAX sütun_adi FROM tablo_adi;

SELECT MIN(maas) FROM personel(Personel tablosundaki en düşük maaşı görüntüleriz.)

COUNT Komutu

Tablo içerisinde herhangi bir alanda sayma işlemi gerçekleştirir.

Kullanımı:

Select COUNT sütun_adi FROM tablo_adi;

Örnek Yapalım:

SELECT COUNT(cinsiyet) FROM personel WHERE cinsiyet='kadın' (Cinsiyeti kadın olanların sayısını verecektir.)
SELECT COUNT(*) FROM personel (Tablodaki toplam sayıyı verecektir.)
SELECT COUNT(DISTINCT adi) FROM personel (Tablodaki tekrarlanmayan isimlerin sayısını verecektir.

GROUP BY IFADESİ

Kümeleme fonksiyonları, kullanılırken tablodaki bilgileri, bazı özelliklere göre gruplandırarak bu gruplandırılmış veri üzerinde sorgulama yapmak mümkündür. Bu işlem için, GROUP BY ifadesi kullanılır.

SELECT cinsiyet, AVG(ort) FROM Ogrenciler GROUP BY cinsiyet

HAVING IFADESİ

Gruplandırarak, kümele fonksiyonlarını uygularken, koşul da verilebilir. Bu durumda, grup üzerindeki hesaplamalarla ilişkili koşul belirtirken, HAVING sözcüğünü kullanmak gerekir.

Örneğin:

SELECT adi FROM Ogrenciler GROUP BY adi HAVING adi LIKE 'Ali'

 Finali 50’den yüksek olup ortalama finalleri 60’a eşit ya da büyük olan öğrenci numaralarını ve final ortalamalarını listeleyin.

SELECT no, AVG(final) FROM notlar WHERE final>50 GROUP BY no HAVING AVG(final)>=60

Tablo Birleştirme JOIN İşlemleri

Join komutu veri tabanında birden fazla tablonun birleştirilerek gösterilmesidir. Bu birleştirme genellikle select sorgularında karşımıza çıkar. Sorgulama esnasında tablolar bir gibi görünür. Ama aslında değildir. Tüm join sorgularında ortak bir alan belirtilmek zorunludur. Bu ortak alan ON ifadesinden sonra, eşitlik belirtir.

SELECT * FROM Ogrenciler INNER JOIN kulup ON ogrenci.kulup_no=kulup.kulup_no

Bu sorguda öğrenci tablosundaki kulup_no ile kulup tabalosundaki kulup_no nun ilişkili olduğunu görüyoruz.

JOIN çeşitlerine bakalım.

INNER JOIN

Kümelerde kesişim işlemine denk gelir. Örneğin iki tane tablomuz olsun.

SELECT * FROM Ogrenciler INNER JOIN kulup ON ogrenci.kulup_no=kulup.kulup_no

Bu sorguyu çalıştırdığımızda iki tablodaki eşleşen veriler gelir. Yani hiçbir kulüpte olmayan öğrenciler ve hiçbir öğrencinin olmadığı kulüpler gösterilmez.

LEFT JOIN

Solda belirtilen tablonun tüm verileri esas alınır ve sağdaki tabloda eşleşen kayıt varsa gösterilir. Örneğin:

SELECT * FROM Ogrenciler LEFT JOIN kulup ON ogrenci.kulup_no=kulup.kulup_no

RIGHT JOIN

Sağda belirtilen tablonun tüm verileri esas alınır ve soldaki tabloda eşleşen kayıt varsa gösterilir. Örneğin:

SELECT * FROM Ogrenciler RIGHT JOIN kulup ON ogrenci.kulup_no=kulup.kulup_no

FULL OUTER JOIN

Hem sağdaki hem soldaki tabloların kayıtlarını getirir.

SELECT * FROM Ogrenciler FULL OUTER JOIN kulup ON ogrenci.kulup_no=kulup.kulup_no

SUBQUERY Sorgular(Alt Sorgular)

Alt sorgular, başka bir Select, Insert, Update , Delete ifade içerisinde konulmuş select ifadesidir. Genelde alt sorguları JOIN ifadelerine dönüştürebiliriz. Alt sorgular karmaşık sorguları biraz daha anlaşılır hale getirir. Ama JOIN ifadeleri alt sorgulara göre daha hızlı işlenirler. Syntax olarak da alt sorgular yazılırken parantez içerisinde yazılır.

Şimdi bir örnek yapalım.

SELECT ProductID,Name FROM Production.Product WHERE ProductID IN(SELECT ProductID FROM Sales.SalesOrderDetail)

Bu kodda sipariş verilen ürünlerin ProductID ve name alanlarını listelemiş olduk.

SQL’ de STRING FONKSİYONLAR,

ASCII() Fonksiyonu

ASCII işlevi bir dizenin soldaki karakterinin yani parametre olarak aldığı stringin ilk harfinin karşılığını döndürür. Kullanımı şu şekildedir.

SELECT ASCII(character);

Örneğin; SELECT ASCII(‘A’) dersek sonuç 65 gelir.

CHAR Fonksiyonu

ASCII Fonksiyonunun tersine parametre olarak aldığı int değerinin karakter karşılığını verir. Kullanımı şu şekildedir:

SELECT CHAR(int)

Örneğin; SELECT CHAR(66) diye sorgularsak sonuç B olarak geri döner.

CHAR fonksiyonu kullanılarak yeni satır, tab, satır başı gibi kontrol karakterleri de insert edilebilir. Örneğin aşağıdaki örnekte kişinin adı ve soyadı araya enter karakteri eklenerek alt alta yazıyor.

DECLARE @N NVARCHAR(40)
SET @N = 'Esra' + CHAR(13) + 'SAHIN'
PRINT @N

CHARINDEX Fonksiyonu

Verilen iki parametreden ilk verilen değeri ikinci parametre içerisinde arar ve bulduğu ilk indeksi verir. Üçüncü parametre de isteğe bağlı ve verilmesi durumunda verilen indeksten sonrası için arar. Aranan değer bulunmaz ise 0 değerini döner.

select CHARINDEX (‘GUL’, ‘KUBRA DEMETGUL’) Orneğin bu örnekte 12 değeri dönecektir. İstediğimiz parametre GUL ve verilen indeks de KUBRA DEMETGUL baştan itibaren saydığımızda ve bir karakter boşluk bıraktığımız için GUL ifadesi 12. karakterden başlıyor.

CONCAT Fonksiyonu

Parametre olarak aldığı string değerlerini birleştirir.