Create procedure sp_BolumEkle
(
@BolumAdi nvarchar(50)
)
AS BEGIN
INSERT INTO Bolumler(Bolum_Adi) VALUES (@BolumAdi)
END
EXEC sp_BolumEkle "Taki"
CREATE PROCEDURE sp_UrunFiyatGuncelle
(@artisMiktariYuzde float)
AS BEGIN
UPDATE Urunler
SET Urun_Fiyatı=Urun_Fiyatı+Urun_Fiyatı*@artisMiktariYuzde/100
END
EXEC sp_UrunFiyatGuncelle 5
CREATE FUNCTION UrunAdet(@urunAdi nvarchar(50))
RETURNS int
AS
BEGIN
DECLARE @urunAdedi int
SET @urunAdedi=(SELECT Urun_Sayisi FROM Urunler WHERE Urun_Adi=@urunAdi)
RETURN @urunAdedi
END
SELECT dbo.UrunAdet('notebook')
CREATE FUNCTION fn_calisanlariListele()
RETURNS TABLE
AS
RETURN SELECT*FROM Calisanlar
select*from fn_calisanlariListele()
Create Function soru9(@a int,@b int)
Returns int
as Begin declare @c int
IF @a>@b
set @c=@a+@b
else
set @c=@b-@a
Return @c+@b+@a
End
EXEC sp_databases
USE Bilisim
EXEC sp_tables
CREATE PROCEDURE sp_UrunleriListele
(@Urun_Sayisi_Parametresi int)
AS BEGIN
SELECT*FROM Urunler WHERE Urun_Sayisi>@Urun_Sayisi_Parametresi
END
ALTER PROCEDURE sp_UrunleriListele
(@Urun_Sayisi_Parametresi int)
AS BEGIN
SELECT*FROM Urunler WHERE Urun_Sayisi>@Urun_Sayisi_Parametresi
END
CREATE PROCEDURE sp_BolumEkle
(
@BolumAdi nvarchar(50)
)
AS
BEGIN
INSERT INTO Bolumler(Bolum_Adi)
VALUES (@BolumAdi)
END
CREATE PROCEDURE sp_UrunSatisSil
(
@urunFiyati decimal(18,2)
)
AS
BEGIN
DELETE FROM Satislar
WHERE Fiyat<@urunFiyati
END
CREATE PROCEDURE sp_UrunFiyatGuncelle
(
@artisMikttariYuzde float
)
AS
BEGIN
UPDATE Urunler SET Urun_Fiyatı=Urun_Fiyatı+Urun_Fiyatı*@artisMikttariYuzde/100
end
CREATE FUNCTION urunAdet(@urunAdi nvarchar(50))
RETURNS int
AS BEGIN
DECLARE @urunAdedi int
SET @urunAdedi=(SELECT Urun_Sayisi FROM Urunler WHERE Urun_Adi=@urunAdi)
RETURN @urunAdedi
END
Create Function En_fazla_SatisYapan(@Yil int,@Ay int) Returns Nvarchar(100)
AS
BEGIN Declare @Calisan Nvarchar(100)
SELECT TOP(1) @Calisan=Calisanlar.Adi
FROM Satislar INNER JOIN Calisanlar
ON Satislar.Calisan_TC_No=Calisan_TC_No
--Ay ve Yıl Parametreleri ile veri kümesi sınırlanır
WHERE (YEAR(Satislar.Tarih)=@Yil) AND (MONTH(Satislar.Tarih)=@Ay)
--Çalışana göre gruplanarak Toplam Satışa göre azalan sıralanır.
GROUP BY Satislar.Calisan_TC_No,Calisanlar.Adi
ORDER BY SUM(Satislar.Fiyat) DESC
Return @Calisan
END
CREATE fn_calisanlariListele()
RETURNS TABLE
AS
RETURN SELECT*FROM Calisanlar
ALTER FUNCTION fn_calisanlariListele(@cinsiyet nchar(1))
RETURNS TABLE
AS
RETURN SELECT*FROM Calisanlar WHERE Cinsiyet=@cinsiyet
CREATE FUNCTION fn_SatisBilgileri(@BolumNo int)
RETURNS @BolmSatTablosu TABLE
(
Bolum_Adı nvarchar(50),
UrunSayisi int
)
AS
BEGIN INSERT INTO @BolmSatTablosu
SELECT Bl.Bolum_Adi,SUM(Sat.Miktar)
FROM Urunler Ur,Bolumler Bl,Satislar Sat
WHERE Bl.Bolum_No=@BolumNo AND
Ur.Urun_no=Sat.Urun_No
GROUP BY Bl.Bolum_Adi,Bl.Bolum_No
HAVING Bl.Bolum_No=@BolumNo
RETURN END
23 Mart 2019 Cumartesi
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
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
Kaydol:
Kayıtlar (Atom)