Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

VERİ 2 11.

HAFTA 11/12/2023

--VİEW YAPISI
--Herhangi bir sorgunun cevabını tablo olarak ele alır...
--Fiziksel bir tablo...
--hız bakımından tercih edilmez yavaş olabilir.
--kaynak olan tablolardaki alan adları yerine kendi alana dlarımızı
kullanmamız daha iyi olur..
/*-->KOD YAPISI
CREATE VIEW view_adi
as sorgu
*/
/*kendi alanların adını kullanacakta olaur ise view oluşturma
esnasında top 100 komutu ekleriz*/
--ÖR:Satislar,Personeller,Satis Detaylari ve Kategoriler tablolarını
kullanarak
--personel ad ve soyad birleşik olacak şekilde kategoriadı nı ve
toplam satis adedini
--gösterecek VIEW oluşturunuz.

create view yeni


as
SELECT p.Adi+''+p.Soyadi [Adi Soyadi,],k.Kategoriadi [Kategori Adi],
count(s.SatisID) [Toplam Satis]
FROM
personeller p
inner join satislar s on p.PersonelID=s.PersonelID
inner join [Satis Detaylari] sd on s.SatisID=sd.SatisID
inner join Urunler u on sd.UrunID=u.UrunID
inner join Kategoriler k on k.KategoriID=u.KategoriID
GROUP BY p.Adi+''+p.Soyadi,K.KategoriAdi

/*olmuş mu diye deniyelim...*/


Select * from yeni --view adını yazarak çağırdık
/*virgülü view olusturuken yanlışıkla alan adına ekledim*/

--ÖR:Adı Soyadı an ile başıyanları listele


Select * from yeni where [Adi Soyadi,] like'%An%'

Select * from yeni order by [Adi Soyadi,]


----------------------------------------------
---->DEĞİŞKENLER<--------
--LOCAL @
--GLOBAL @@

--degisken oluşturma özl. diğer derslerle benzer..


--tipler...
--dönüşüm komutu: cust ve convert
--gösterim formu: results(select kullanılır) ve messages(print
kullanılır)

--LOCAL DEĞİŞKEN--
--KOD YAPISI:
/*değişken bildirisi bulunmaktan hatırla declare komutunu*/
declare @notu int --//notu isimli integer tipinde bir değişken
oluşturduk
declare @adres varchar(100)
declare @harcama money ,@maliyet real,@y bit
declare @ucret real=5432.10

--SET KOMUTU DEGER AKTARMAK İÇİN--- /* TEK TEK İSE*/ /* FAZLA değişken
için select*/
--DECLARE @birim real
SET @birim=(select max(BirimFiyat) from [Satis Detaylari])
--
declare @ilk int ,@ad varchar(15)
SET @ilk=5
SET @ad='Necip'

---PRİNT KULLANMA (ekrana yaz)------ /*hepsini seçerek Excute(F5)


yap*/
DECLARE @birim real
SET @birim=(select max(BirimFiyati) from [Satis Detaylari])
PRINT @birim
-------------
--ifade kullanarak print yapmak bunda dönüşüm gerekiyor--
DECLARE @birim real
SET @birim=(select max(BirimFiyati) from [Satis Detaylari])
PRINT 'En Yüksek Birim Fiyati:'+cast(@birim as varchar)
--birden fazla değişkeni print yapmak --
--ÖR:Personeller tablosundan PersonelID'si 5 olan kişinin ad ve
soyad bilgisini gösteriniz..
/*printle*/
DECLARE @adi varchar(15),@soyad varchar(15
SELECT @adi=adi , @soyad=soyadi from Personeller where PersonelID=5
PRINT 'Kisinin adi->'+@adi+'Soyadi->'+@soyad
SELECT @adi as ADI,@soyad as SOYADI

--SORU: bir vize bir final girişi yapılıp sonuc kısmınd aortlamasını
gösterin
--puanlar vize 63 final 92
DECLARE @vize int , @final int , @ortalama real
SET @vize=63
SET @final=92
SET @ortalama=(@vize*0.4+@final*0.6)
PRINT @ortalama
/*SORU:
ORAN1 degişkeni degeri 0.2 ORAN2 degişkeni degeri 0.6
Satis Detaylarında (birimfiyat, *mikta) degeri 500 üz olan ürünlerde
indirimi oran2 olarak degiştirin
500ün altında olanların indirim bilgisini oran1 olarak değiştirin
*/
DECLARE @oran1 real,@oran2 real
SET @oran1=0.2
SET @oran2=0.6
UPDATE [Satis Detaylari] SET İndirim=1.2 WHERE
(BirimFiyati*Miktar)>500
UPDATE [Satis Detaylari] SET İndirim=1.6 WHERE
(BirimFiyati*Miktar)<500
-------------------------
--GLOBAL DEĞİŞKEN--
@@identity --en yapılan işlemin en son satır sırasını verir >>sadece
insert için geçerli<<
@@rowcount --yaptıgımız işlemde etkilelen satır sayısını gösterri

Select * from Personeller WHERE Unvan='Sales Representative'


select @@rowcount

INSERT into Kategoriler(KategoriAdi,Tanimi) values ('A','A Grubu')


select @@IDENTITY
/*PROSEDÜR
2 türdür prosedür ve saklı prosedür*/
--programmability kısmında bulunur--

--KOD YAPISI:
CREATE PROC yaz(@metin varchar(50),@adet int) as begin
declare @x int=0
while @x<@adet begin
print @metin
set @x=@x+1
end

exec yaz1'BİLGİSAYAR',5

------------
--SAKLI PROSEDÜR
CREATE PROC goster(@ad varchar(50),@id int) as begin

exec

You might also like