9 Mart 2019 Cumartesi

SQL DEĞİŞKEN İŞLEMLERİ • AKIŞ KONTROLÜ • DİNAMİK SQL SORGULARI • İMLEÇ İŞLEMLERİ • PROGRAM İZLENİRLİK ARAÇLARI

DECLARE @Bolum_No INT;
DECLARE @Bolum_Adi VARCHAR(50)

DECLARE @Bolum_No INT;
DECLARE @Bolum_Adi VARCHAR(50)
SET @Bolum_No=5;
SET @Bolum_Adi='Tv@Ses';

DECLARE @Bolum_No INT;
DECLARE @Bolum_Adi VARCHAR(50)
SET @Bolum_No=5;
SELECT @Bolum_Adi='Tv@Ses';
PRINT @Bolum_Adi

DECLARE @dBolumler TABLE(Bolum_No INT,Bolum_Adi VARCHAR(50))
INSERT INTO @dBolumler VALUES(1,'Bilgisayar')
INSERT INTO @dBolumler VALUES(2,'Telefon')
SELECT*FROM @dBolumler

DECLARE @Urun_Sayisi VARCHAR(10)
SELECT @Urun_Sayisi=COUNT(*) FROM Urunler WHERE (Urun_Fiyatı<200)
IF(@Urun_Sayisi>0)
PRINT 'Fiyatı 200TL den az'+@Urun_Sayisi+'ürün vardır'
ELSE
PRINT 'Fiyatı 200TL den az ürün yoktur'

SELECT Adi,Cinsiyet= CASE Cinsiyet WHEN 'E' THEN 'Erkek' WHEN 'K' THEN 'Bayan'
END FROM Calisanlar

DECLARE @sayac INT
DECLARE @toplam INT
SET @sayac=1
SET @toplam=0
WHILE (@sayac<=100)
BEGIN Set @toplam=@toplam+@sayac
Set @sayac=@sayac+1
END
Print @sayac
Print @toplam

DECLARE @sayac INT
DECLARE @toplam INT
SET @sayac=1
SET @toplam=0
WHILE (@sayac<=100)
BEGIN
Set @toplam=@toplam+@sayac
Set @sayac=@sayac+1
if @toplam>3000
BREAK
ELSE
CONTINUE
END
Print @sayac
Print @toplam

DECLARE @sayac INT
DECLARE @toplam INT
SET @sayac=1
SET @toplam=0
Basla:
Set @toplam=@toplam+@sayac
Set @sayac=@sayac+1
if(@sayac<=100)
GOTO basla
Print @sayac
Print @toplam

DECLARE @tabloAdi VARCHAR(50)
SET @tabloAdi='Bolumler'
DECLARE @Sorgu VARCHAR(50)
SET @Sorgu='SELECT*FROM' + @tabloAdi
EXECUTE(@Sorgu)

DECLARE @urunFiyati decimal(18,2)
DECLARE FiyatArtimiImleci CURSOR FOR SELECT Urun_Fiyati FROM Urunler OPEN FiyatArtimiImleci
FETCH NEXT FROM FiyatArtimiImleci INTO @urunFiyati WHILE @@FETCH_STATUS=0
BEGIN
UPDATE Urunler
SET Urun_Fiyatı=Urun_Fiyatı+(Urun_Fiyatı*0.1)
WHERE CURRENT OF FiyatArtimiImleci
FETCH NEXT FROM FiyatArtimiImleci INTO @urunFiyati END
CLOSE FiyatArtimiImleci
DEALLOCATE FiyatArtimiImleci
SELECT*FROM Urunler

--IMLEC Ornegi
/*Ürün fiyati değişkeni tanımlanır*/
DECLARE @urunFiyati decimal(18,2)
/*Imlec tanımlanır*/
DECLARE FiyatArtimiImleci CURSOR FOR SELECT Urun_Fiyati FROM Urunler
/*Imlec Acılır*/
OPEN FiyatArtimiImleci
/*ilk okuma yapılır*/
FETCH NEXT FROM FiyatArtimiImleci INTO @urunFiyati
--döngü ile son satır bitim kontrolü yapılır
WHILE @@FETCH_STATUS=0
BEGIN
--VT fiyat %10 artırılarak güncellenir
UPDATE Urunler
SET Urun_Fiyatı=Urun_Fiyatı+(Urun_Fiyatı*0.1)
WHERE CURRENT OF FiyatArtimiImleci
--Bir sonraki adim için okuma yapilir
FETCH NEXT FROM FiyatArtimiImleci INTO @urunFiyati
END
--Imlec kapatılır
CLOSE FiyatArtimiImleci
--ilgili kayıtlar silinir.
DEALLOCATE FiyatArtimiImleci


--Denem tablosu oluşturulur
CREATE TABLE denemea (toplam BIGINT)
--Tabloya 1 satır veri eklenir
INSERT INTO denemea (toplam) SELECT 1 GO
/*tabloya her yeni satir eklenirken deger olarak oncekilerin toplami kullanılır.*/
INSERT INTO denemea (toplam) SELECT SUM(toplam) FROM denemea GO 5
--işlem(önceki yığın) 5 defa çalıştırlır.
--sonuçlar ekrana yazdırlır
SELECT*FROM denemea

DECLARE @aktarilantabloEkleme TABLE( TC_no varchar(11),
Adi nvarchar(100),
Bolum_No int,
Cinsiyet nchar(1))

INSERT INTO Calisanlar
OUTPUT inserted.TC_No,inserted.Adi,inserted.Bolum_No,inserted.Cinsiyet INTO
@aktarilantabloEkleme VALUES('1245789635','Mehmet Yılmaz',1,'E')

SELECT*FROM @aktarilantabloEkleme

DECLARE @KayitSilme TABLE(Urun_Fiyati decimal(18,2),Urun_No INT)
DELETE FROM Satislar OUTPUT deleted.Fiyat,deleted.Urun_No INTO @KayitSilme
WHERE Fiyat<2000

SELECT*FROM @KayitSilme

BEGIN TRY
SELECT 4/0
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS Hata_Numarasi,
ERROR_SEVERITY() AS Hata_Duzeyi,
ERROR_STATE() AS Hata_Durum_No,
ERROR_LINE() AS Hata_Satir_No,
ERROR_MESSAGE() AS Hata_Mesaj
END CATCH

USE Bilisim
BEGIN TRY
DROP TABLE DenemeTablosu
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS Hata_Numarasi,
ERROR_SEVERITY() AS Hata_Duzeyi,
ERROR_STATE() AS Hata_Durum_No,
ERROR_LINE() AS Hata_Satir_No,
ERROR_MESSAGE() AS Hata_Mesaj
END CATCH

DECLARE @Satis_Sayisi VARCHAR(10)
SELECT @Satis_Sayisi=SUM(Sat.Miktar)
FROM Urunler Ur,Satislar Sat WHERE(Ur.Urun_Adi='Notebook' AND Ur.Urun_no=Sat.Urun_No)
IF(@Satis_Sayisi>4)
PRINT 'Tebrikler Notebook satıs sayısı:'+@Satis_Sayisi
ELSE IF (@Satis_Sayisi>2) AND (@Satis_Sayisi<=4)
PRINT 'Satışlara dikkat edelim'
ELSE
PRINT 'Yetersiz satis'

DECLARE @UrunNo INT
DECLARE @SatisMikt INT
SET @UrunNo=1
WHILE (@UrunNo<=5)
BEGIN
SELECT @SatisMikt=SUM(Sat.Miktar)
FROM Satislar Sat
WHERE Sat.Urun_No=@UrunNo
IF @SatisMikt IS NULL
SET @SatisMikt=0
PRINT 'Urun No:'+cast(@UrunNo as Varchar(10))+'için satiş miktarı:'+cast(@SatisMikt as Varchar(10))
SET @UrunNo=@UrunNo+1
END

USE Bilisim
BEGIN TRY
DELETE FROM Urunler WHERE Urun_Adi='Notebook' END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS Hata_Numarasi,
ERROR_SEVERITY() AS Hata_Duzeyi,
ERROR_STATE() AS Hata_Durum_No,
ERROR_LINE() AS Hata_Satir_No,
ERROR_MESSAGE() AS Hata_mesaj
END CATCH

Hiç yorum yok:

Yorum Gönder