Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanDerya Karaca Değiştirilmiş 6 yıl önce
1
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
HAFTA 5 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
2
GEÇEN DERSLERDE NELER ÖĞRENDİK?
UNION ,EXISTS,SOME, ALL, JOIN © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
3
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
ÖRNEK Ürünler tablosunda BirimdekiMiktar alanında İçinde bottle kelimesi geçen kaç tane ürün bulunmaktadır (kategorisine göre ) SELECT KategoriID, count(*) FROM [Urunler] WHERE [BirimdekiMiktar] LIKE '%bottle%' group by KategoriID © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
4
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Inner Join ve Count Ürünler tablosunda BirimdekiMiktar alanında İçinde bottle kelimesi geçen kaç tane ürün bulunmaktadır (kategorisine adı ile birlikte) SELECT u.KategoriID,[KategoriAdi], count(*) FROM [Urunler] u INNER JOIN [Kategoriler] k ON k.[KategoriID]= u.[KategoriID] WHERE [BirimdekiMiktar] LIKE '%bottle%' group by u.KategoriID,[KategoriAdi] © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
5
T-SQL Değişken tanımlama, döngü kurma, koşul tanımlamayı sağlayan basit bir programlama ortamıdır. SQL Serverde global ve local diye 2 tür değişken vardır. Local değişkenler ön eki alır, kullanıcı tarafından oluşturulur. Global değişkenler ön eki alır, SQL Server tarafından tanımlanmıştır, kullanıcı tarafından oluşturulmazlar. Değişken tanımlamak için: veritipi(boyut) VARCHAR(100)
6
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Değişken Tanımlama Sql server’da değişken isimlerinin sembolü bulunur. @ad, değişken isimlerine birer örnektir. DECLARE deyimi ile değişken tanımlanır. veritipi, ….. datetime © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
7
Değişkenlere değer atama
İki şekilde yapılır. select deyimini kullanarak set deyimini kullanarak Select deyimi ile atama varchar(10) geçerli bir atama Set deyimi ile atama - doğru atama SET -- Yanlış bir atama © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
8
Print deyimi ile yazı yazdırılabilir.
int print 'deger ' print 'deger = '+
9
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Go deyimi GO tam olarak bir komut değil batch ayırma operatörüdür Go ile ayrılan komutlar client tarafından servera gönderilir ve sonucu beklenir. Bir batch, bir arada bulunan bir dizi sql deyimidir. Batch ayıracı GO deyimidir. SELECT …. …… UPDATE … ….. GO …. "GO" veritabanına sorgu göndermek için kullanılan bir istemci uygulamasında bir toplu ayırıcıdır. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
10
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
GO Özellikleri 1- Bir batch içinde bir deyimin yazım hatası olduğunda, batch’in tamamı işlemez duruma gelir 2- Aynı batch içinde biR tablonun yapısı değiştirilip kullanılamaz. ALTER TABLE urun…. INSERT urun ….. Go Yukarıdaki kod hata verir go Yukarıdaki kod hata vermeden çalışır © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
11
GO Go komut SQL komut yığınlarını birbirinden ayırmak için kullanılır.
ALTER TABLE Urunler ADD Kdvli MONEY GO UPDATE Urunler set Kdvli=(Birimfiyati*1.2)
12
Server değişkeni örnekleri
select
13
use Northwind MONEY max(BirimFiyati) from Urunler
14
use Northwind VARCHAR(100) (select max(BirimFiyati) from Urunler) SELECT from Urunler where BirimFiyati SELECT
15
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
uniqueidentifier 128 Bitlik (16- Bytelık) veriler olarak oluşturulup saklanır; genellikle 32 basamaklı olarak, 16’lık sayı sistemine göre (hexadecimal) ve belirli dijitler (sayı grupları) halinde görüntülenir. Örneğin : 21EC2020-3AEA-1069-A2DD-08002B30309D dünyanın neresinde, kim, ne zaman oluşturursa oluştursun” benzersizdir. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
16
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
uniqueidentifier Web tabanlı projelerde uniqueidentifier kullanımı daha fazla yer bulabiliyor, bu kullanım bazı yerler için neredeyse zorunlu bazı yerler içinse tercihinize bağlıdır. Bir kaç örnek vermem gerekirse: Örnek 1: Web sitenizde üyeler resim yüklüyor varsayalım. Resimler belirli bir dizinde saklanıyor ve veritabanında URL yolu (Path) tutuluyor. X kişisi abc.jpg adlı resim dosyasını sisteme yükledi, ardından Y kişisi de aynı ada ve uzantıya sahip abc.jpg resim dosyasını yükledi. Ortaya çıkacak engellemek için kullanıcıların yüklediği resimlerin adlarına otomatik olarak bir uniqueidentifier değeri atarsak bu sorundan kurtuluruz. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
17
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
uniqueidentifier = NEWID(); SELECT AS ‘Üretilen Deger’'; © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
18
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Örnek CREATE TABLE dbo.TEST (ID INT IDENTITY (1,1), ROWID uniqueidentifier) GO --yukarıdaki go satırını silersen ne olur?? INSERT INTO dbo.TEST (ROWID) VALUES (NEWID()) GO 1000 © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
19
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
SİSTEM VERİTABANLARI Master Veritabanı Versiyon ya da özel değişiklikleri dikkate almaksızın her SQL Server, master veritabanına sahiptir. Bu veritabanı, sistemin bütününü izlemeyi sağlayan, özel tablolar (sistem tabloları) kümesini içine alır. Örneğin, server üzerinde yeni bir veritabanı oluşturduğunuzda, girdiğiniz kayıt master veritabanındaki sysdatabases’da yer alır. Tüm extended ve system stored procedure’ler (kullanılacağı veritabana dikkate alınmaksızın) , master veritabanında saklanır. Açıkcası, server’ı tanımlayan herşey master veritabanında saklandığından dolayı, sistem için bu veritabanı önemlidir ve silinemez © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
20
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Model Veritabanı Model veritabanı, kopyalama için referans alınabilecek model anlamında, uygun şekilde isimlendirilmiştir. Oluşturacağınız herhangi bir yeni veritabanı için, model veritabanı bir şablon oluşturur. Model veritabanı diğer veritabanları için şablon olduğundan gerekli bir veritabanıdır ve sistemde kalmalıdır yani bu veritabanıda silinemez. Bunun anlamı, isterseniz yeni oluşturulacak veritabanlarının nasıl olacağını, model veritabanında değişiklik yaparak belirleyebilmenizdir. Örneğin, oluşturduğunuz her veritabanının içeriğinde yer almasını istediğiniz bir denetim tabloları kümesi ekleyebilirsiniz. Ayrıca, sistem üzerinde oluşturulan her yeni veritabanına kopyalanan birkaç kullanıcı grubu oluşturabilirsiniz. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
21
sysobjects Kısıtlama, varsayılan, günlük, kural ve saklı yordam gibi bir veritabanı içinde oluşturduğunuz her nesne için bir satır içerir. XTYPE alanı nesnenin türünü belirtir SELECT * FROM sysobjects where xtype='u'
22
C: Check constraint D: Default constraint F: Foreign Key constraint L: Log P: Stored procedure PK: Primary Key constraint RF: Replication Filter stored procedure S: System table TR: Trigger U: User table UQ: Unique constraint V: View X: Extended stored procedure
23
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Tablo veya view gibi nesneler içerisinde yer alan sütunlara ait bilgileri döndürür. SELECT * FROM Syscolumns SELECT * FROM Syscolumns WHERE syscolumns.name like '%satis%' © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
24
SELECT sysobjects.name, syscolumns.name,
syscolumns.length FROM sysobjects JOIN syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.xtype='U' ORDER BY sysobjects.name
25
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
1996 Aralık ayında her gün yapılan satışların toplam değerini müşterilere göre listeleyen sorguyu yazınız SELECT s.SatisID, s.MusteriId, SUM (BirimFiyati*Miktar) as Tutar,SatisTarihi FROM SatisDetaylari AS sd INNER JOIN Satislar as s ON sd.SatisID=s.SatisID WHERE s.SatisTarihi BETWEEN '12/01/1996' AND '12/31/1996' GROUP BY s.SatisID ,s.MusteriID,SatisTarihi © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
26
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Haftaya Sql server’ın akış kontrol deyimleri aşağıdadır CASE IF… ELSE… WHILE…. BREAK CONTINUE TRY …CATCH…. © Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.