Kuruluma başlamadan önce
Windows Server 2008 R2 hakkında kısaca bilgi vermek istiyorum.
·
Windows Server 2008 22.10.2009 tarihinde yayınlandı.
·
Kod adı “7” Server
·
Üzerinde NT 6.1 kernel bulunmakta
aynı kernel Windows 7 tarafından da kullanılmaktadır.
·
x86-64 ve IA-64 mimarisini destekler. (Intel Itanium
bilgisayarlar için farklı bir sürümü bulunmaktadır)
·
Yenilenmiş Active Directory
ve Sanallaştırma gibi özellikleri ürüne güç katmaktadır.
·
Bir diğer yenilik ise IIS tarafında yapılmıştır. IIS 7.5
ile Windows Server 2008 R2 sağlam ve güvenli bir web platformu olmaktadır.
·
Toplamda yedi versiyondur. Standart, Web, Enterprise ve Datacenter versiyonlarının yanında Foundation,
HPC ve Itanium gibi özel amaçlar için de ürünleri bulunmaktadır.

Windows Server 2008 R2 Edition ürünlerin karşılaştırması aşağıdaki gibidir.
Features
Foundation
Standard
Web
HPC
Enterprise
Datacenter
Itanium
Maximum physical memory (RAM)
(64-bit)
8 GB
32 GB
32 GB
128 GB
2 TB
2 TB
2 TB
Maximum physical CPUs supported
1
4
4
4
8
64
64
Cross-File Replication (DFS-R)
No
No
No
No
Yes
Yes
Yes
Failover Cluster Nodes (Nodes)
No
No
No
No
16
16
8
Fault Tolerant MemorySync
No
No
No
No
Yes
Yes
Yes
Hot Add Memory
No
No
No
No
Yes
Yes
Yes
Hot Add Processors
No
No
No
No
No
Yes
Yes
Hot Replace Memory
No
No
No
No
No
Yes
Yes
Hot Replace Processors
No
No
No
No
No
Yes
Yes
Network AccessConnections (IAS)
10
50
No
No
Unlimited
Unlimited
2
Network AccessConnections (RRAS)
50
250
No
250
Unlimited
Unlimited
No
Remote Desktop AdminConnections
2
Remote Desktop Services Gateway
50
250
No
No
Unlimited
Unlimited
No
Virtual Image UseRights
No
Host + 1 VM
Guest
Host + 1 VM
Host + 4 VMs
Unlimited
Windows Server 2008 Kurulumu için sistem gereksinimleri
Processor
• Minimum: 1 GHz (x86 processor) or 1.4 GHz (x64 processor)
• Recommended: 2 GHz or
fasterNote: An Intel Itanium 2 processor
is required for Windows Server
2008 for Itanium-Based Systems.
Memory
• Minimum: 512 MB RAM
• Recommended: 2 GB RAM or
greater
• Maximum (32-bit systems):
4 GB (Standard) or 64 GB (Enterprise
and Datacenter)
• Maximum (64-bit systems):
32 GB (Standard) or 1 TB (Enterprise
and Datacenter) or 2 TB (Itanium-Based Systems)
Available Disk Space
• Minimum: 10 GB
• Recommended: 40 GB or
greaterNote: Computers with more than 16 GB of RAM will require more disk space for paging, hibernation,
and dump files.
Drive
DVD-ROM drive
Display and Peripherals
• Super VGA (800 x 600) or
higher-resolution monitor
• Keyboard
• Microsoft Mouse or compatible
pointing device
İşletim sistemi hakkında genel bilgileri verdikten sonra kurulum işlemine başlayabiliriz.
İlk olarak DVD’mizi sürücüye yerleştiriyoruz. Windows 2008 ekranı bizi karşılıyor. Ben kurulum dili olarak İnilgilizce yerel ayarlar içinde Türkiye ve Tükçe’yi seçerek devam ediyorum.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2001.PNG

Install now’a tıklayarak devam ediyorum.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2002.PNG

Ben kurulum yapmak için Windows Server 2008 R2 Enterprise (Full Installation)’ı seçiyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2004.PNG
Lisans kutucuğunu işaretleyip Next ile devam ediyorum.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2005.PNG

Bilgisayar üzerinde daha önceden herhangi bir kurulum yapılmadığı için Custom (Advanced)’ı seçiyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2006.PNG
200 GB’lık diskimi bölebilmek için Drive option (advanced)’ı seçiyorum.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2007.PNG
Sonraki ekranda New’e tıklıyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2008.PNG

100 GB’lık bir harddisk benim işimi fazlasıyla görecektir. 104800 Mb değerini yazdıktan sonra Apply’a tıklıyorum. 
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2009.PNG

Ok tuşuna tıklayarak devam ediyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2010.PNG

Az önce oluşturduğum alanı seçerek Format’a tıklıyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2011.PNG
Formatladığım datanın kaybolacağına dair beni uyaran ekranı Ok’e tıklayarak kapatıyorum. 
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2012.PNG 
Format işlemi bittikten
sonra Next ile devam ediyorum.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2013.PNG
Windows dosyaları kopyalamaya başladı bu işlem biraz zaman alacak.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2014.PNG
Dosyaların kopyalanması tamamlandı ve ilk Restart
işlemi başladı.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2015.PNG
Registry ayarları yapılıyor. 
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2017.PNG
Kurulum tamamlanmak üzere.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2019.PNG

İlk kullanım için bilgisayar kendini hazırlıyor.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2021.PNG
Başlamadan önce şifremi
değiştirmem gerektiğine dair bir uyarı ekranı geliyor. Ok’e
tıklayarak devam ediyorum.
http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2022.PNG
Şifreyi verdikten sonra
devam ediyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2023.PNG

Şifremi değiştirdim ve
Ok’e tıklayarak devam ediyorum.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2024.PNG

Tüm işlemler tamamlandı masaüstüm geldi.
 http://www.yazilimdilleri.net/Content/Images/Makale/image/Selcuk/Windows%20Server%202008%20Kurulumu/Windows%20Server%202008%20Kurulumu%20-%2026.PNG

Detaylı Windows Server 2008 R2 Kurulumu

Windows Server 2008 Unutulan Administrator Şifresini nasıl sıfırlarız ?
Yüklü olan Windows Server 2008 DVD takarak işletim sisteminin DVD üzerinden boot edilmesini sağlayınız.
Dili seçtikten sonra repair modda açacağız.  Daha sonra Command Prompt’a giriş yaparak aşağıda ki komutları takip edin..
$ C:
$ cd Windows
$ cd System32
$ Move Utilman.exe Utilman.exe.bak
$ Copy cmd.exe Utilman.exe  
işlemini yaptıkdan sonra arka pencerede bulunan restart tıklayın.
Windows Server 2008 Dvd çıkartarak açılmasını bekleyin..  Logon ekranı geldiğinde Windows Logo Tuşu + Uharfine basarak Command Prompt’u çalıştırın.
Net user Administrator Yenişifresi
Yazarak unutmuş olduğunuz şifreyi değiştirebilirsiniz.

Windows Server Unutulan Administrator Şifresini sıfırlama

Her data-link katman protokolunun kendi frame formatmarı vardır.Veri alanlarının maksimum boyutu tanımlanan biçimdeki alanlardan biridir.Fiziksel bir ağın çerçevesindeki veri bölümünde taşıyabileceği en fazla veri miktarına MTU (Maksimum İletim Birimi) denir. MTU bir Data-Link protokolünün sarmalladığı, paketleyebildiği byteların en büyük değeridir. MTU değerleri ağdan ağa değişebilir.
İşletim sisteminiz üzerindeki MTU değerini değiştirmek için ;
Başlat > Çalıştır > CMD  ( Komut satırı ) Yönetici olarak açıyoruz ve aşağıda ki komutları sırası ile uyguluyoruz.
netsh
interface
ipv4
set subinterface “Local Area Connection” mtu=xxxx store=active
Buradaki Local Area Connection yazısı yerine Ethernet bağdaştırıcı adınızı girmeniz gerekmektedir. Ayrıca xxxx değeri yerinede değiştirilmesini istediğiniz MTU değerini yazmanız gerekmektedir. 

MTU Ayarı Nedir? Mtu Ayarı Nasıl Yapılır ?

--TARİH VE ZAMAN FONKSİYONLARI

GETDATE () Fonksiyonu: 
--Şu andaki tarihi ve saati gösterir.

select GETDATE()
--Yazıp çalıştırdığımızda 2011-09-29 
--10:38:09.230 gibi sonuç görüntülenir.
select GETDATE() as [NOW]
select DAY(GETDATE()) as [Today]
select MONTH(GETDATE()) as [Month]
select YEAR(GETDATE()) as [Year]

DATEPART () Fonksiyonu: 
--Bu fonksiyon tarihle ilgili 
--sayısal bilgilerin 
--alınması için kullanılır.

SELECT DATEPART(dd, '01.28.1974')--AY.GÜN.YIL
SELECT DATEPART(mm, '01.28.1974')
SELECT DATEPART(yy, '01.28.1974')
SELECT DATEPART(dd, '28.01.1974')--HATALI YAZIM
--hata mesajı: Msg 241, Level 16, State 1, Line 1
--Conversion failed when converting date and/or time from character string.

select DATEPART(day,getdate()) as [Today]
select DATEPART(MONTH,GETDATE()) as [Month]
select DATEPART(YEAR,'12.12.1999') as [Year]

DATEADD () Fonksiyonu: 
--Bu fonksiyon verilen tarihe belirttiğimiz 
--şekilde gün, ay, yıl ekler.

SELECT DATEADD(dd, 1, '04.28.2007')
 --1 gün ekler
SELECT DATEADD(MM, 3, '04.28.2007')
SELECT DATEADD(DD, 90,'04.28.2007')
select DATEADD(dd, 270, getdate())
select DATEADD(MM, 9, getdate())

select DATEADD(YEAR,1,getdate()) 
as [Bir Yıl Sonrası]

DATEDIFF () Fonksiyonu: 
--belirttiğimiz iki tarih arasında 
--belirttiğimiz cinsten farkını göstermektedir.

SELECT DATEDIFF(day,'04.14.1974','02.13.2007')
SELECT DATEDIFF(MONTH,'04.14.1974','02.13.2007')
SELECT DATEDIFF(YEAR,'04.14.1974','02.13.2007')

select DATEDIFF(day,'01.01.2000',getdate())


select DATEDIFF(DAY,GETDATE(),
dateadd(DAY,35,getdate()))

select DATEDIFF(MONTH,GETDATE(),
dateadd(MONTH,30,getdate()))

select DATEDIFF(YEAR,GETDATE(),
dateadd(MONTH,32,getdate()))

select DATEDIFF(year,getdate(),dateadd(month,36,getdate()))

SQL Tarih Fonksiyonları ( Getdate,Datepart,Datediff) Örnekler

Nortwinth veritabanı ile ilgili çalışma sorularını aşağıdan indirebilirsiniz;

İndir

Nortwinth veritabanı çalışma soruları

2008de hazirlanmıs Dükkan veritabanını asagidan indirebilirsiniz.



2008 Dukkan Veritabanını Buradan İndirebilirsiniz.


SQL 2008 Hazir dükkan veritabanı

SQL KOD ÖRNEKLERİ

SELECT * FROM Ogrenciler
-- yukarıdaki kod ile tüm kolonlar listelenir
-- iki tire işareti remark anlamına gelir açıklama satırları bu şekilde girilir



SELECT Adi, Soyadi FROM Ogrenciler
SELECT Soyadi, Adi  FROM Ogrenciler
-- Yukarıda ise öğrenciler tablosundan adı ve soyadı fieldları alınır.

SELECT * FROM Ogrenciler WHERE Adi = 'Burcu'
--Sorguya koşul yazmak istersem WHERE ifadesini kullanırım
--varchar tanımlı alanlar için ve tarih tanımlı alanlar tek tırnak içinde içinde sorgulanır.integer yani tamsayılar ise ' olamdan sorgulanır.
--Sorgular f5 tuşu ya da Execute butonu ile çalışır.


SELECT * FROM Ogrenciler  WHERE Ogrencinumarasi = 60202009

SELECT * FROM Ogrenciler  WHERE Adi LIKE '%li%'
--Yukarıdaki sorgu adında 'li' harf öbeği geçen kayırları listeler

SELECT * FROM Ogrenciler  WHERE Adi LIKE '_li'

SELECT * FROM Ogrenciler  WHERE Adi LIKE '_li%'
--Yukarıdaki kod örneğinde ise ilkinde ali,eli gibi sonuçlar dönebilir yani ilk harf ne olursa olsun önemli değil ama 3 harfli ve 2. 3. harfleri li olan kayıtlar listelenir.% işareti ise sağdan kaç harf olucağını önemsemez.

SELECT * FROM Ogrenciler  WHERE Adi LIKE '__li%'
-- Yukarıdaki sorgu içerisinde li harf öbeği olsun.
-- li nin solunda 2 karakter olsun
--sağında ne olup olmadığı çok önemli değil

SELECT * FROM Ogrenciler  WHERE Adi LIKE '__li'

SELECT COUNT(*) FROM Ogrenciler
--Count yani Adet verir

SELECT COUNT(*) FROM Ogrenciler   WHERE OgrenciNumarasi IS NOT NULL

SELECT COUNT(*) FROM Ogrenciler   WHERE OgrenciNumarasi IS NULL
--Yukarıdaki örnekte ise ogrennciNumarasi alani null yani boş olmayan kayıtları getirir.

SELECT COUNT(*) FROM Ogrenciler    WHERE Adi LIKE 'A%'
--Adı A ile başlayan kayıtlar döner.

SELECT * FROM Ogrenciler    WHERE Adi='alper'

SELECT * FROM Ogrenciler    WHERE Cinsiyeti=0


SELECT COUNT(Cinsiyeti) AS Adet,Cinsiyeti  FROM Ogrenciler
GROUP BY Cinsiyeti
--field adını değiştirmek için As kullanırım.
--Count komutu ile field ın adı kaybolur
--as ile isimlendirmekte fayda var.

SELECT * FROM Ogrenciler ORDER BY OgrenciNumarasi
-- Order by Sıralamayı sağlar
--order'da hiç birşey yazmazsak default olan ASC dir

SELECT * FROM Ogrenciler
ORDER BY OgrenciNumarasi ASC

SELECT * FROM Ogrenciler
ORDER BY OgrenciNumarasi DESC
-- Order by desc tersten Sıralamayı sağlar

SELECT * FROM Ogrenciler
ORDER BY Adi , Soyadi
--iki field a göre sıralama yapabilmek mümkündür.
SELECT Adi ,COUNT(Adi)  AS Adet FROM Ogrenciler
GROUP BY Adi

-- JOIN : iki veya daha fazla tablodan
-- ilişkisel veri sorgulamya yatar


SELECT Ogrenciler.Adi , Ogrenciler.Soyadi , City.City
FROM Ogrenciler INNER JOIN City ON City.CityId =Ogrenciler.CityId
-- Ogrencilerin CityID sini göstermek işime yaramaz
-- fakat İl bilgisi işime yarar.
-- amacım iki tablo arasında ilişki tanımlayarak
--veriyi getirmek.
-- iki tarafta da aynı olan eşleşen kayıtları getirir.

SELECT * FROM Ogrenciler  ORDER BY OgrenciNumarasi
--Order by sıralamayı sağlar
--select * from Ogrenciler  order by OgrenciNumarasi  desc
--Order by dan sonra ASC ve DESC olmak üzere 2 seçeneğim var
--Default olan ASC : Artan sırada dır. DESC azalan


SELECT * FROM Ogrenciler  ORDER BY OgrenciNumarasi ASC

SELECT * FROM Ogrenciler WHERE OgrenciNumarasi=60702004
--Sorgu kriteri yazmak için WHERE ifadesi kullanılır.

SELECT * FROM Ogrenciler WHERE OgrenciNumarasi >=60702004 AND OgrenciNumarasi <= 60702020

SELECT * FROM Ogrenciler WHERE OgrenciNumarasi BETWEEN 60702004 AND 60702020
--Between 2 değer arasını sorgular
SELECT * FROM Ogrenciler  WHERE Adi = 'Oytun'

SELECT * FROM Ogrenciler  WHERE Adi LIKE 'Al%'
-- Al ile başlayan bütün kayıtları göster
--% işareti joker anlamına gelir


SELECT * FROM Ogrenciler  WHERE Adi LIKE 'G%'

SELECT * FROM Ogrenciler  WHERE Adi LIKE '%me%'
--içirisinde ME geçen tüm adları listeler

SELECT * FROM Ogrenciler  WHERE Adi LIKE '_li'

SELECT * FROM Ogrenciler  WHERE Adi LIKE '__li'


SELECT * FROM Ogrenciler  WHERE Adi LIKE '__li_'

SELECT COUNT(*) FROM Ogrenciler
--Count toplam adeti almaya yarar 32
SELECT COUNT(*) FROM Ogrenciler WHERE Cinsiyeti= 0
--Bayanların sayısını bulmamı sağladı.

SELECT Sehir, COUNT(Sehir) AS ToplamAdet FROM Ogrenciler
GROUP BY Sehir
ORDER BY COUNT(Sehir) DESC
--as ile kolon adını değiştirmeye yarar
--count ile kolon adı kaybolduğunda
--'as' kullanmak önerilir.


SELECT Cinsiyeti, COUNT(Cinsiyeti) AS ToplamAdet FROM Ogrenciler
GROUP BY Cinsiyeti
ORDER BY COUNT(Cinsiyeti) DESC
--group by gruplama yapmaya yarar

SELECT Ogrenciler.Adi,
Ogrenciler.Soyadi,
Ogrenciler.OgrenciNumarasi ,
city.CityName
FROM Ogrenciler
INNER JOIN City ON City.CityId = Ogrenciler.Sehir

--bu örnekte ise şehirin kodu city tablosundaki id
--ile bağlanıp o id ye karşılık gelen değer alnmıştır.


SELECT * FROM Ogrenciler
WHERE Sehir IN (34,35,6)
--sehir id leri 34,35,6 olan iller çekilir.

SELECT * FROM Ogrenciler
WHERE Sehir NOT IN (34,35,6)
-- in içinde içeren kayıtları listeler

SQL Hazir Kod Örnekleri( Where, Like,Null,Group By,Order By,Join,Altsorgu,İN)

SELECT column_name, aggregate_function(column_name)
FROM
table_name
WHERE
column_name operator value
GROUP BY
column_name
  aggregate : birleştirme fonksiyonları.

  ( sum, count, max, min, avg )


pGroupBy ifadesi where ifadesi ile birlikte kullanıldığında where groupby’dan önce kullanılır.

pHaving deyimi groupby ifadesi ile birlikte kullanılır.
pGroupby ifadesinden sonra kullanılır.

Having ile ilgili örnek verecek olursak;


SQL Gruplama yapmak ve Having

SQL NOW() Kullanımı
NOW() fonksiyonu o anki geçerli olan sistem tarihi ve saatini verir. Kayıt ekleme esnasında kaydın ne zaman eklendiği gibi bir bilgiyi saklamak istediğimiz zaman kullanılabilir. Veya veritbanından veri okurken kullanılabilir. Kısacası o anki sistem tarihine ve saatine ihtiyacımız olan her durumda kullanılabilir.

NOW() Kullanım Biçimi

Kayıt okumada kullanıma örnek:
SELECT *
FROM tablo
WHERE kayit_tarihi>NOW()-7
NOW() ile günü tarihi ve saati alınıyor ve -7 ile beş gün öncesine gidiliyor. Yani bugün 19 Ocak ise -7 ifadesi ile 12 Ocak tarihine gidilmiş olunur. Yani bu örnekte son bir hafta içinde sisteme girilmiş olan kayıtların listesi elde edilir.
Kayıt eklemede kullanıma örnek:
INSERT INTO  Personel (adi_soyadi,kayit_tarihi)
VALUES ("Salih ESKİOĞLU",NOW() )

Buradaki örnekte veritabanımıza Salih ESKİOĞLU isinde personel ekleniyor ve bu personelin kayıt tarihini biz elimizle girmek yerine direk olarak sistemden çekip yazdırıyoruz.

SQL NOW() Kullanımı

ROUND() fonksiyonu belirtilen ondalık sayı için sayısal bir alanda yuvarlamak için kullanılır.
Bazı veritbanı sistemleri tipik yuvarlamadan farklı olarak çalışabilir. Bir çok insan yuvarlama işleminin en yakın tam sayıya yapıldığını varsayar. Ancak, bazı veritbaanı yönetim sistemleri "Bankers Rounding" yani bankacı yuvarlaması denen sistemi kullanabilir. Bu sistemde en yakın ÇİFT sayıya yuvarlama yapılır. Mesela 13,3 için bir çok insan mantıken 13'e yuvarlanacağını düşünürken, "Bankers Rounding" sistemine göre 13 küsürlü bir rakam olduğu için 14'e yuvarlanır.

ROUND() Kullanım Biçimi
round(alan_adi,yuvarlama dışı bırakılacak basamak sayısı)
Aşağıdaki gibi urunler isimli tablomuz olsun.
idUrunFiyat
1Buzdolabı1100,12
2LED TV1560,51
3Çamaşır Makinesi980,86
4Bulaşık Maknesi750,43

Örnek 1:
SELECT  urun, ROUND(Fiyat,0) AS Urun_fiyati_yuvarlama
FROM Urunler

Çıktısı:
UrunUrun_fiyati_yuvarlama
Buzdolabı1100
LED TV1561
Çamaşır Makinesi981
Bulaşık Maknesi750
Bu kod ile hariç tutulacak basamak sayısı sıfır olarak belirtildi. Yani virgülden sonraki rakamların tümünü alıp değerlendirme yapıldı. 50'den büyük olanlar bir üst rakama, ufak olanlar ise bir alt rakama yuvarlandı.

Örnek 2:SELECT  urun, ROUND(Fiyat,1) AS Urun_fiyati_yuvarlama
FROM Urunler

Çıktısı:
UrunUrun_fiyati_yuvarlama
Buzdolabı1100,10
LED TV1560,50
Çamaşır Makinesi980,90
Bulaşık Maknesi750,40
Bu kod ile hariç tutulacak basamak sayısı bir olarak belirtildi. Yani virgülden sonraki rakamların ilki dikkate alınmayacaktır. ikinci rakamlar ise 5'ten büyük olanlar bir üst rakama, ufak olanlar ise bir alt rakama yuvarlandı.  

SQL ROUND() Kullanımı

SQL LEN() Kullanımı
LEN() fonksiyonu metin tipindeki alanlarda verilerin boşluklar dahil karakter sayısını öğrenmemize yarar.

LEN() Kullanım Biçimi
LEN(alan_adi)
Aşağıdaki gibi satislar isimli tablomuz olsun. Bu tabloda Aylik_satis alanına satıcının o ay yağtığı toplam satışları yazıldığını düşünelim.
idSatici_PersonelAylik_satis
1Salih ESKİOĞLU29
2Ayhan ÇETİNKAYA522
3Serkan ÖZGÜREL2
4İlhan ÖZLÜ163

Örnek 1:
SELECT  *
FROM satislar
WHERE len(Aylık_satis)>2

Çıktısı:
idSatici_PersonelAylik_satis
2Ayhan ÇETİNKAYA522
4İlhan ÖZLÜ163
Bu kod ile aylık satışı 2 haneden büyük olan kayıtlar ekrana yazılmıştır. Yani 3 haneli satış rakamına ulaşan personelin listesi alınmış olunur. Burada dikkat edilcek olan nokta karakter sayısıdır. Üç nolu kayıtta ki personelin satış rakamı 2. Ancak u tek haneli bir rakamdır. Dolayısı ile len fonksiyonunda belirtilen değer alandaki değer değil, değerin sahip olduğu karakter sayısıdır.

Örnek 2:SELECT ad_soyad, len(aylik_satis) AS aylik_satis_adedi_basamak_sayisi
FROM satislar

Çıktısı:
Satici_Personelaylik_satis_adedi_basamak_sayisi
Salih ESKİOĞLU2
Ayhan ÇETİNKAYA3
Serkan ÖZGÜREL1
İlhan ÖZLÜ3
Bu kod ile her personelin aylık olarak kaç basamaklı satış yaptığını görebiliriz..  

SQL LEN() Kullanımı