Professional Documents
Culture Documents
VERİ TABANI 2 11. HAFTA
VERİ TABANI 2 11. HAFTA
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.
--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'
--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
--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