26 Şubat 2019 Salı

SQL INSERT ISLEMLERI

--------INSERT ISLEMLERİ-----------------
 --Varolan bir veri kaynagına yeni bir veriyi eklemek için kullandığımız yapıdır.
 --Insert,Update,Delete gibi islemlerde SQL size,etkilenen satir sayisini geri dondurecektir.([X] rows affected)
 --Kargolar tablosunda yeni bir kargo kaydı ekleyiniz...
 Insert Into Shippers(CompanyName,Phone) Values ('MNG Kargo','(212) 555-6677')
 --seglama
 select*from Shippers
 --NOT:Eger tablonuzdaki tum kolonlara insert islemi gercekleştiriyorsanız,
 --tek tek kolon adlarını yazmak zorunda değilsiniz.Ancak dikkat edilmesi gereken nokta kolon
 --siralamalarını iyi biliyor olmanız gerekliliğidir...(Kolon siralarına yandaki Object Explorer penceresinden ulasabilirsiniz)
 Insert Into Shippers
 Values('Yurtiçi Kargo','(212) 555-3322')
 --Herkes kendisini bir calisan olarak istediği kolonları kullnarak Employees tablosuna eklesin...
 Insert Into Employees(FirstName,LastName,BirthDate) Values ('Adem','Çil','11.01.1985')
 --saglama
 Select FirstName,LastName,BirthDate from Employees
 --insert [into] tablo (kolon,kolon,kolon) values (deger,deger,deger)
 insert Products (ProductName,UnitPrice,UnitsInStock) values ('Domates',2,100)
--select*from Products ile görebilirsiniz
--kendiniz personeller tablosuna ekleyiniz.
insert into Employees(FirstName,LastName) values ('Yusuf Emre','Yancar')
select*from Employees
insert Employees values ('Enes','GüzelAydın','Programcı','Mr.','01.01.2001',getdate(),
'kadıköy istanbul','istanbul','marmara','34070','Türkiye','5323323232','34',null,'filan yok',2,null)
select*from Employees

SQL KÜMELEME FONKSİYONLARI

--Kümeleme fonksiyonları: Kesişim,Birleşim ve Fark
--Birbirinden farklı 2 sorgunun bu 3 işlmei yapmak için kullandığımız fonksiyonlardır.
select CompanyName from Suppliers
select CompanyName from Customers
--bu iki tablonun birleştirilmesini istersek UNION kullanılır.
select CompanyName from Suppliers union
select CompanyName from Customers
--her ikisininde tipi aynı omalı.sadece uc uca ekler.
select CompanyName,Phone,1 from Suppliers ---tedarikçilerin yanına 1
union select CompanyName,Phone,2 from Customers--müşteriinn 2 yazsın
--INTERSECT kesişim kümesi alır
select UnitPrice from [Order Details] intersect select UnitPrice from
Products order by UnitPrice
--EXCEPT fark kümesi alır.
select UnitPrice from [Order Details] except
 select UnitPrice from Products order by UnitPrice
 --CROSS JOIN:iki tabloyu kartezyen çarparak join yapar.
 select CategoryName from Categories select ProductName from Products
 --bu iki tablodaki her öğeyi birbiri ile eşleştirir
 select ProductName,CategoryName from Products cross join Categories

24 Şubat 2019 Pazar

SQL HAVING YAPISI

------------HAVING YAPISI-------------------
--Aggregate fonksiyonlar araciliği ile alınan sonucların bir where kriteri
--içerisinde kullanılmamaktadır.Bunun yerine ("where"yerine) kullandığımız
--anahtar kelime "having" anahtar kelimesidir...
--Toplam siparis miktarı 1200'un üzerinde olan urunlerin adlarını siparis mıktarını gösteriniz...
select ProductName,SUM(Quantity) as 'Siparis Miktarı'
 from [Order Details] inner join
Products p on p.ProductID=[Order Details].ProductID group by ProductName
having SUM(Quantity)>1200
order by [Siparis Miktarı] desc
--having:group by ın fonksiyonudur.filtreleme yapabiliriz bu sayede.yukarıda
--yaptığımız örneklerden birini ele alalım ve geliştirelim.
--Hangi personle hangi ürünü toplam kaç dolarlık satmıştır.
--1000'den büyük olanları getirelim
Select e.FirstName+'  '+e.LastName, p.ProductName,SUM(od.UnitPrice*od.Quantity*
(1-od.Discount)) from Products p left join [Order Details] od
on p.ProductID=od.ProductID
left join Orders o on o.OrderID=od.OrderID left join
 Employees e on
e.EmployeeID=o.EmployeeID
group by
e.FirstName+'  '+e.LastName,p.ProductName having
 sum
(od.UnitPrice*od.Quantity*(1-od.Discount))>1000
--250'den fazla siparis tasimis olan kargo firmalarının adlarını,telefon numarlarını
--ve siparis miktarlarını raporlayınız...
Select CompanyName,Phone,COUNT(ShipVia) as [Siparis Miktar]
from Orders o inner join
Shippers as s on s.ShipperID=o.ShipVia group by CompanyName,Phone
having Count(ShipVia) >250 order by [Siparis Miktar] desc

23 Şubat 2019 Cumartesi

SQL JOINLER

--JOINLER:İKİ TABLOYU İLİŞKİLİ KOLONLAR ÜZERİNDEN BİRBİRİNE BAĞLARLAR
--TABLOLARIN DENORMALIZE ŞEKİLDE SORGULANMALARINI SAĞLARLAR
--3 ÇEŞİT JOIN.INNER JOIN,OUTER JOIN,CROSS JOIN.
--INNER JOIN:İLİŞKİLİ KOLONLARDA NULL OLMAYAN DEGERLERİ İLİŞTİREREK
--LİSTELEME YAPARLAR.
--Ürün adı Categori isimleri ile birlikte gelsin.Aynı zamanda ürün fiyatı ve stok
--miktarıda olsun(products and categories)
--select*from Products
--select*from Categories
select ProductName,CategoryName /*(c.CategoryName)*/, UnitPrice,UnitsInStock
from Products p inner join Categories c on p.CategoryID=c.CategoryID
--ürünleri tedarikçi şirketlerin adları ile listeleyiniz.(products and suppliers
select ProductName,UnitPrice,CompanyName /*(s.CompanyName)*/ from Products
p inner join Suppliers s on s.SupplierID=p.SupplierID --supplierid ile suppliers
--ve products tabloları birleştiriliyor
--ürünler ve tedarikçiler tablolarını birleştiriniz.
select*from Products p inner join Suppliers s on s.SupplierID=p.SupplierID
--Ürünlerin satış raporunu ürün adı satış fiyatı adet indirim kolonları
--(order details and products)
select ProductName,o.UnitPrice,UnitsInStock,Discount from Products p inner join
[Order Details] o on p.ProductID=o.ProductID --unitpriceler her iki
--tabloda da ayrı ayrı
--Hangi satışta hangi ürünler satılmıştır.(orders and orders details and products)
select p.ProductName,od.UnitPrice,od.Quantity,od.Discount,o.OrderDate,o.ShippedDate
from Products p inner join [Order Details] od on p.ProductID=od.ProductID
inner join Orders o on o.OrderID=od.OrderID
--Hangi personel hangi müşteriye hangi tarikte satış yapmıştır.(employees and
--orders and customers)
select e.FirstName+'  '+e.LastName 'İSİM SOYİSİM', c.ContactName,o.OrderDate
from Employees e inner join Orders o on e.EmployeeID=o.EmployeeID inner join
Customers c on c.CustomerID=o.CustomerID
--Hangi müşteri hangi üründen kaç dolarlık satış almıştır.(4 tablo)
--(products,order details,orders,customers)
select c.ContactName,ProductName,od.UnitPrice*od.Quantity*(1-od.Discount)
as 'TOPLAM FİYAT' from Products p inner join [Order Details] od on
p.ProductID=od.ProductID inner join Orders o on o.OrderID=od.OrderID inner join
Customers c on c.CustomerID=o.CustomerID
--Hangi personel hangi kategoriden hangi ürünleri satmıştır..
select e.FirstName+'  '+e.LastName 'PERSONEL ADI',c.CategoryName,
p.ProductName from Categories c inner join Products p on
c.CategoryID=p.CategoryID inner join [Order Details] od on
od.ProductID=p.ProductID inner join Orders o on o.OrderID=od.OrderID inner join
Employees e on e.EmployeeID=o.EmployeeID
--Urunlerimizin adlarını ve kategorileri adlarını bir raporda gosteriniz..
Select ProductName,CategoryName from Products inner join Categories on Categories.CategoryID=Products.CategoryID
where CategoryName='Beverages' and UnitsInStock>0
--Federal Shiping ile tasinmis ve Nancy'nin almis olduğu siparisleri gosteriniz
--(OrderID,FirstName,LastName,OrderDate,CompanyName)
Select FirstName,LastName,OrderDate,CompanyName,OrderID from Orders o
inner join EMployees e on o.EmployeeID=e.EmployeeID inner join
Shippers s on o.ShipVia=s.ShipperID where CompanyName='Federal Shipping' and FirstName='Nancy'
--**Tablolarınıza sorgular icersinde alias verme sansına sahipsiniz.Bu sayede çok daha kısa
--kısa sorgular yazabilirsiniz...
--CompanyName'leri arasinda a gecen musterilerin vermis oldugu,Nancy;Andrew ya da Janet
--tarafından alinmis,Speedy Express ile tasinmamis siparislere toplam ne kadarlık kargo odemesi yapılmıştır?
Select SUM(o.Freight) from Orders o
inner join Customers c on o.CustomerID=c.CustomerID
inner join Employees e on e.EmployeeID=o.EmployeeID
 inner join Shippers s on  s.ShipperID=o.ShipVia
  where c.CompanyName like '%A%' and e.FirstName in
('Nancy','Andrew','Janet') and s.CompanyName !='Speedy Express'
--En cok urun aldıgımız 3 toptancıyı, almıs oldugumuz urun miktarlarına gore
--raporlayınız...
Select top 3 CompanyName,COUNT(ProductID) as 'Alinan Siparis Sayisi' from
Products inner join Suppliers on Suppliers.SupplierID=Products.SupplierID
group by CompanyName order by [Alinan Siparis Sayisi] desc
--Her bir urunden toplam ne kadarlık satis yapılmıstir ve o urunler hangi kategoriye aittir?
Select ProductName,CategoryName,SUM(od.UnitPrice*od.Quantity) as 'Gelir' from
[Order Details] od inner join Products p on p.ProductID=od.ProductID
inner join Categories c on c.CategoryID=p.CategoryID group by ProductName,CategoryName order by
gelir desc
--INNER JOIN null satırları getirmez.mesela e ticaret sitesinde ürün resimleri bağladınız.
--inner join ile birleştirdiniz tabloları.resmi olmayan ürünler gelmez bu şekilde.u durumda
--OUTER JOIN kullanılır.null olmasına aldırış etmez ve verileri getirir.
--OUTER JOIN 3 çeşittir.LEFT,RIGHT,FULL
--LEFT JOIN:sorguda önce yazılan tablo left tir ve left olan tablodaki tüm
--kayıtlar (null dahil) getirilip RIGHT yani yeni bağlanan tablodaki sadece ilişkili
--kayıtların (null dahil değil) getirilmesine LEFT JOIN denir.
select*from Products p left outer join Categories c on c.CategoryID=p.CategoryID
--product ve categories tablolarına karpuz kavun gibi ürünler ekleyip null kayıtlar ekleyelim
--sonuç daha net görülür
--Left Outer Join=> Sorgunuzda sol taraftan alınan tum verilerin gelmesini,sag tarafta o verilere karsilik veriler
--olmasa bile null degerlerin görünmesini sağlayan join tipidir.
--From'dan sonraki tablo sol tablo;
--Join'den sonraki tablo sag tablo;
--olarak adlandırılır...
--Urunleri ve baglı bulundukları kategorileri listeleyiniz.
--Ancak urunu olmayan kategoriler de sorgu sonucuna dahil edilsin
Select ProductName,CategoryName from Categories
right join Products on Categories.CategoryID=Products.CategoryID
--Full Outer Join=> Sorgumuzda sag ve sol taraftan alinantum verilerin gelmesini sağlar.
--Eger sol ya da sag tarafdaki veriler olmasa bile null degerlerin gorunmesini sağlayan join tipidir.
--Urunleri ve baglı bulundukları kategorileri listeleyiniz.
--Ancak kategorisi olmayan urunler ve urunleri olmayan kategoriler de sorgu sonucuna dahil edilsin...
Select ProductName,CategoryName from Categories full join Products on Products.CategoryID=Categories.CategoryID
--RIGHT JOIN: yeni bağlanan join yapılan tablodaki ilişkili olmayan kayıtlarında listelenmesi için kullanılan join dir.
--sol tablodaki ilişkili olmayan kayıtlar önemsenmez.
select*from Products p right outer join Categories c on c.CategoryID=p.CategoryID
--FULL JOİN:her iki tablodaki tüm kayıtlar getirlir.ilişkili olan kayıtlar ilişkilendirilir.
--ilişkisiz kayıtlar ayrıca sonda veya başta listelenir.
select*from Products p full outer join Categories c on c.CategoryID=p.CategoryID
--Hangi ürünün hangi nakliye firması ile taşınmıştır.(yaşınması bile satış görünmelidir)
select p.ProductName,s.CompanyName from Products p inner join [Order Details]
od on od.ProductID=p.ProductID inner join Orders o on o.OrderID=od.OrderID
 left outer join Shippers s on s.ShipperID=o.ShipVia
 --ürün satılmış ancak nakliyecisi belli değilse gözüksün ama nakliyecide null yazsın
 --Hangi tedarikçiden toplam kaç tl lik ürün satılmıştır(group by)
 --(suppliers,order products and details)
 select s.CompanyName,SUM(od.UnitPrice*od.Quantity)
 as 'Toplam Satış' from
 Suppliers s
 inner join Products p on s.SupplierID=p.SupplierID
 inner join [Order Details]
 od on od.ProductID=p.ProductID group by s.CompanyName
 --kategorilerin toplam satış rapoarları (categories and product and order details)
 select c.Categoryname,Sum(od.Quantity*od.UnitPrice*(1-Discount)) as [TOPLAM SATIŞ]
 from Categories c left join Products p on p.CategoryID=c.CategoryID left join
  [Order Details] od on od.ProductID=p.ProductID
 group by c.CategoryName order by 1
 --Nakliyecilerin toplam taşıdıkları ürünlerin değerlerini bulalım (shippers and orders and order details)
 select s.CompanyName,SUM(od.UnitPrice*od.Quantity*(1-od.discount)) from Shippers s left join
 Orders o on s.ShipperID=o.ShipVia left join [Order Details] od on od.OrderID=o.OrderID
 group by s.CompanyName
 --Hangi personel hangi ürünü toplam kaç dolarlık satmıştır
 select e.FirstName+'  '+e.LastName,p.ProductName,SUM(od.UnitPrice*od.Quantity*(1-od.Discount)) from
 Products p left join [Order Details] od on p.ProductID=od.ProductID left join Orders o on
 o.OrderID=od.OrderID left join Employees e on e.EmployeeID=o.EmployeeID group by
 e.FirstName+'  '+e.LastName,p.ProductName




21 Şubat 2019 Perşembe

SQL FROM UN SAĞ TARAFINDA KULLANIMI.

--FROM UN SAĞ TARAFINDA KULLANIMI.BİR KOŞULA UYAN KOLLEKSİYONU TOPLAYIP
--KOLLEKSİYONA UYAN KAYTILARI TOPLAMAK İÇİN KULLANILIR
--5 numaralı kategorinin satışlarını listeleyiniz.(order details Product)
--select*from Product where CategoryID=5
--select*from [Order Details] where ProductID in (22,23,42,52,56,57,64)
select*from [Order Details] where ProductID in (Select ProductID from Products where
CategoryID=5)
--VINET ID li müşterinin satışlarını listeliyiniz.(Order Details and Orders)
select * from [Order Details] where OrderID in (select OrderID from Orders where CustomerID='VINET')
--3 numaralı ürünün satış yapıldığı müşterilerin ID lerini listeleyiniz.(Orders and order details)
select CustomerId from Orders where OrderID in(select OrderID from [Order Details] where ProductID=3)
--2 numaralı nakliyecinin taşıdığı 4 numaralı personelin satış yaptığı müşterilerin bilgilerini listeleyin
--(customers and orders)
select*from Customers where CustomerID in
(select CustomerID from Orders where EmployeeID=4 and ShipVia=2)

SQL ALT SORGULAR

--ALT SORGULAR:belli bir sorgu içinde başka çalıştırma select tarafında ve where tarafında kullanılmak üzere ikiye ayrılır
--ürünler tablosundaki tedarikçi id ile tedarikçi tablosundaki tedarikçi id
--yi eşle ve tedarikçiler tablosundan şirket adını tedarikçi id ye göre çekip
--product tablosuna ekle.İçteki sorgu tek sütun döndürmeli.yoksa patlar(SUPPLIERS AND PRODUCTS)
select*,(select CompanyName from Suppliers where Products.SupplierID=Suppliers.SupplierID) from Products
--ürünlerle birlikte ürünün satış adedini listeleyen sorgu (ORDER DETAİLS AND PRODUCT)
select (select sum(Quantity) from [Order Details] sd
where sd.ProductID=u.ProductID)
SATIŞADET ,* from Products u
--HANGİ SATIŞTA KAÇ ÜRÜN SATILMIŞTIR.(ORDER DETAILS AND ORDER)
select (select SUM(UnitPrice*Quantity*(1-Discount)) from [Order Details] sd
where sd.OrderID=s.OrderID) SATILANLAR ,*from Orders s

19 Şubat 2019 Salı

SQL SUBQUERY YAPISI

---SUBQUERY YAPISI-------
--Ic ıce select sorgulardır.icteki select sorgusundan gelen cevabın distaki
--select sorgusuna dahil edilerek bir sonuc dahilinde raporlanmına
--islemine yardımcı olur...
--Ne zaman subquery kullnabiliriz?
--1)Inner Join yetersiz kaldığı durumlarda
--2)Having islemin size cevap vermediği durumlarda...
---Ortalama ucretin uzerinde yer alan urunleri gösteriniz...
Select ProductName,UnitPrice from Products where UnitPrice>(Select AVG(Unitprice)
from Products)
--Nancy'nin almis olduğu siparislerin ID'lerini raporlayınız...
Select OrderID from Orders where EmployeeID=(Select EmployeeID from Employees where FirstName='Nancy')
--Beverages kategorisine ait urunleri listeleyiniz..
Select ProductName,categoryID from Products where CategoryID=(Select CategoryID from Categories where CategoryName='Beverages')
--Nancy;Andrew ya da Janet tarafından alinmis ve Speedy Express ile tasinmis siparileri listeleyiniz...
Select OrderID,EmployeeID,ShipVia from Orders where EmployeeID in (Select EmployeeID from Employees where
FirstName in ('Nancy','ANdrew','Janet'))
and ShipVia!=(Select ShipperID from Shippers where COmpanyName='Speedy Express') order by EmployeeID

16 Şubat 2019 Cumartesi

SQL GROUP BY YAPISI

---GROUP BY YAPISI----------
--Gruplandırma islemi icin kullanılan anahtar kelimedir.Asil ortaya cikis amacı
--avg,max,min,sum,count gbib aggregate fonksiyonlarla birlikte bagli bulundukları
--kolonlari da sorgu icersinde dahil etmektir...
--Ulkeler gore calisan sayımız nedir?
Select Country,COUNT(Country) as [Toplam Calisan Sayisi] from Employees
group by Country
--Hangi kategoride kac tane urunum var raporlayınız?
Select CategoryID,COUNT(ProductID) as [Kategoriye Gore Urun Sayisi] from
Products
group by CategoryID
order by [Kategoriye Gore Urun sayisi] desc
--Calisanlara gore almis olduklari siparis sayilarini raporlayiniz...
Select EmployeeID,COUNT(OrderID) as [ALinan Siparis] from Orders
group by EmployeeID
order by [Alinan Siparis] desc
--Ulkeler gore siparis sayilarini raporlayiniz ve en cok siparis veren 3 ulkeyi listeleyiniz...
select top 3 ShipCountry,COUNT(OrderID) as [Alinan Siparis] from
Orders group by ShipCountry
order by [Alinan Siparis] desc
--Her bir kategoride ucret bazli toplam ne kadarlik urunum vardır?
Select CategoryID,SUM(UnitPrice*UnitsInStock) from Products group by
CategoryID
--kategori id yi grupla
select CategoryID from Products group by CategoryID
--Hangi personel kaç satışta yer almıştır.(orders)
select count(*),EmployeeID from Orders group by EmployeeID
--Hangi personel kategoride kaç tane ürün vardır.(products)
select CategoryID,sum(UnitsInStock) from Products group by CategoryID
--Hangi musteri kaç kere alışveriş yapmıştır.(orders)
select CustomerID, count(*) as 'siparis sayısı' from Orders group by CustomerID order by [siparis sayısı]
--Hangi tedarikçi Hangi kategorideki ürününden kaç dolarlık mevcuttur(product)
Select SUM(UnitPrice*UnitsInStock),SupplierID,CategoryID from Products group by
SupplierID,CategoryID order by SupplierID



SQL WHEN-CASE

-------------WHEN- CASE---------------------
--Veritabanlarınızda yerden tasarruf etmek amaciyla bazı kısaltmalar kullanmak isteyebilirsiniz
--Ancak bu kısaltmalarin raporlamlar dahilinde degisik bir sekilde gorunmesi gerekebilir
--Bu sebepten oturu varolan verilerin fiziksel olarak degismeden rapor bazli degismesini sağlamalisiniz..
--Calisanlar tablosunda 'Mr.' gorulen yere 'Bay';'Ms.' ve 'Mrs.' gorunen yere 'Bayan';
--onbilgi yoksa ya da harici herhangi bir durumsa 'On Bilgi Yok' yazdırılarak raporlarsın...
Select FirstName+'    '+LastName as 'AdSoyad',Unvani=case TitleOfCourtesy
when 'Mr.' then 'Bay'
when 'Ms.' then 'Bayan'
when 'Mrs' then 'Bayan'
else 'On Bilgi Yok'
end
from Employees
order by Unvani
--ikinci kullanım
select*,case when TitleOfCourtesy =  'Mrs.' then 'Bayan' when
TitleOfCourtesy = 'Ms.' then 'Bekar Bayan' when TitleOfCourtesy = 'Mr.'
then 'Bay' when TitleOfCourtesy = 'Dr.' then 'Doktor' end from Employees

---ikinci kullanım 2
select*,case when UnitPrice>50 then 'Pahalı' when UnitPrice<50 then
'Ucuz' when UnitPrice=50 then 'Alınır' end as ÜRÜNDURUM from Products order by
ÜRÜNDURUM desc

--Urun adlarini,ucretlerini ve stok miktarlarini raporlayiniz.Eger stok
--miktarı 50'den kucuk 'Kritik Durum', 50-75 arasi ise 'Normal Stok' 75'te
--fazla ise 'Stok Fazlası' uyarısı veren ekstra bir kolonu raporu ekleyiniz...
--Raporunuz stok miktarlarina göre kucukten buyuge siralasin..
Select ProductName,UnitPrice,UnitsInStock,[Stok Durumu]=
case
when UnitsInStock<50 then 'Kritik Stok'
when UnitsInStock between 50 and 75 then 'Normal Stok'
when UnitsInStock>75 then 'Stok Fazlası'
end
from Products order by UnitsInStock

SQL IN YAPISI

------------------IN YAPISI-------------
--Veyalı sorgularda parantez hatalarinin onune gecmek için kullanılan yapi "in"
--yapisidir...
--2,4,5,7 nolu calisanlarin almis olduklari siparisleri gosteriniz...
Select OrderID,EmployeeID from Orders where EmployeeID in (2,4,5,7)
--1 yada 2 nolu kargo firması kargo firması ile tasinmis,1996 yilinda bir Persembe gunu
--alinmis siparisler icin odenen azami kargo bedeli nedir?
Select MAX(Freight) from Orders where ShipVia in (1,2) and YEAR(OrderDate)=1996
and DATENAME(weekday,OrderDate)='Thursday'
---'CACTU','DUMON' ya da 'PERIC' ID'li musteriler tarafından istenmis,2 nolu
--kargo firmasıyla tasinmamıs,kargo ucreti 20-200 dolar arasi olan siparislere
--toplam ne kadarlık kargo odemesi yapılmıştır
Select SUM(Freight) from Orders where CustomerID in ('DUMON','CACTU','PERIC')
and ShipVia <>2
and Freight between 20 and 200

15 Şubat 2019 Cuma

SQL AGGREGATE FUNCTIONS

----------------AGGREGATE FUNCTIONS------------------
--COUNT YAPISI
--Stokta bulunan kac tane urunumuz vardir?
Select COUNT(ProductID) from Products where UnitsInStock>0
--1996 yilindan sonra alınmıs kaç adet siparis vardır?
Select COUNT(OrderDate) from Orders where YEAR(OrderDate)>1996
--Kac ulkeden musterimiz bulunmaktadır?
Select COUNT (distinct Country) from Customers
--T-SQL'in anahtar kelimlerinden biri olan distinct;sayilan kolon icerisindenki
--tekrar eden kayitlarin es gecilmesini saglar...
--SUM YAPISI
--Fonksiyona parametre olarak gonderilen kolon icerigindeki tum degerleri
--toplayip size geri dondurur
Select SUM(UnitPrice) from Products
--Depoda ucret bazli olarak toplam ne kadarlık urunum kalmışstır?
Select SUM(UnitPrice*UnitsInStock) from Products
--1997 yilinda alinmıs olan siparislerim icin toplam ne kadarlık kargo odemesi
--yaptık?
Select SUM(Freight) from Orders where YEAR(OrderDate)=1997
--Bu zamana dek odenmis ortalama kargo ucretimiz nedir(SUM-COUNT)
Select SUM(Freight)/COUNT(OrderID) from Orders
Select COUNT(ProductName) from Products--ikinci bir kolon göster denemez
--stoğu 15 den küçük olan kaç tane ürün vardır.
select COUNT(ProductName) from Products where UnitsInStock<15
--Şu ana kadar toplam kaç dolarlık ciromuz var (order details) indirim oranının göz önüne al
select sum(UnitPrice*Quantity*(1-Discount)) from [Order Details]
--AVG YAPISI
---Ortalama almak icin kullanilan yapidir....
---Bu zamana dek odenmis ortalama kargo ucretimiz nedir?
Select AVG(Freight) from Orders
--Urunlerimin ortalama satis fiyati nedir?
Select AVG(UnitPrice) from Products
--Ulke basina ortalama ne kadar kargo ucreti odenmistir?
Select SUM(Freight) /COUNT(distinct ShipCountry) from Orders
--Her üründen ortalama kaç dolarlık satış yapılıyor
select AVG(UnitPrice*Quantity*(1-Discount)) from [Order Details]
--MAX-MIN YAPISI
--Sahip olunan degerler arasinda en buyuk ya da en kucuk degeri almak icin kullandığımız
--anahtar fonksiyonlardır.Bu fonksiyonlar yalnızca sayisal degil,metinsel ve tarihsel ifadeler
--icin de kullanılabilirler...
--En yuksek bedelli urun hangisi nedir?
Select MAX(UnitPrice) from Products
--En yuksek kargo miktarı nedir?
Select MAX(Freight) from Orders
--MusteriID'leri A-k arasinda olanlarin vermis olduklari,siparis tarihi
--01.01.1997 arasinda olan siparislere en az ne kadar kargo ucreti odenmistir?
Select MIN(Freight) from Orders where CustomerID like '[A-K]%'
and OrderDate between '01.01.1997' and '06.06.1997'
--En fazla satışımızda kaç dolarlık satış yapılmıştır
Select Max(UnitPrice*Quantity*(1-Discount)) from [Order Details]
--En düşük satışımızda kaç dolarlık satış yapılmıştır.
Select Min(UnitPrice*Quantity*(1-Discount)) from [Order Details]
--5 ten büyük en düşük satışımzda kaç dolarlık satış yapılmıştır.
Select Min(UnitPrice*Quantity*(1-Discount)) from [Order Details] where
(UnitPrice*Quantity*(1-Discount))>5

14 Şubat 2019 Perşembe

SQL ARAMA İSLEMLERİ(LİKE)

---------ARAMA İSLEMLERİ(LİKE)------------
--Tablolarimiz icerisinde aramalar gerceklestirmek istiyorsak (..ile baslamasi,bitmesi,arasinda gecmesi vs..)
--like anahtar kelimesi bize yardımcı olacaktır..
--CompanyName'leri A harfi ile baslayan musterileri listeleyelim...
Select CompanyName from Customers where CompanyName like 'A%'
--CompanyName'leri A harfi ile biten musterileri listeleyelim...
Select CompanyName from Customers where CompanyName like '%A'
--CompanyName'leri arasinda ltd gecen musterileri listeleyelim..
Select Companyname from Customers where CompanyName like '%ltd%'
--CustomerID'lerinden ilk iki harfi bilinmeyen ama son uc harfi "mon" olan
--musteriyi gosterelim
select CustomerID from Customers where CustomerID like '__mon'
--CustomerID'lerinden ilk harfi A ya da S olan musterileri listeleyiniz...
Select CustomerID from Customers where CustomerID like '[AS]%'
--CustomerID'lerinden ilk harfi A ile K araisnda olan musterileri listeleyiniz..
Select CustomerID from Customers where CustomerID like '[A-K]%' order by CustomerID
--CustomerID'lerinden ilk harfi A olan,ikinci N olmayan musterileri listeleyiniz..
Select CustomerID from Customers where CustomerID like 'A[^N]%'
--CustomerID'lerinden ilk harfi A olmayan musterileri listeleyiniz...
Select CustomerID from Customers where CUstomerID not like 'A%'
--Ulkesi Ingiltere olmayan,adi A ile baslayip soyadi R ile biten,dogum tarihi 1985'ten once olan calisanim kimdir?
Select EmployeeID,FirstName,LastName,Country,BirthDate from Employees where
FirstName like 'A%' and LastName like '%R'
and YEAR(BirthDate) < 1985
and Country !='UK'
--Japoncayı akıcı konusan personel kimdir?
Select FirstName,LastName,Notes from  Employees where Notes like '%japanese%'

13 Şubat 2019 Çarşamba

SQL BETWEEN-AND KALIBI

--------BETWEEN-AND KALIBI-----------
--Belirli bir deger araligindaki verilerin listelenmesi icin kullandıgımız anahtar kelimedir
--Stok miktarı 20'den buyuk 49'den kucuk urunleri listeleyiniz...
Select ProductName,UnitPrice,UnitsInStock from Products where UnitsInStock between 20 and 49
order by UnitsInStock
--01.01.1997 ile 06.06.1998 tarihleri arasindaki siparisleri listeleyiniz..
Select OrderID,OrderDate from Orders where OrderDate between '01.01.1997' and '06.06.1998'
order by OrderDate desc
--Bas harfi C olan stoklarda mevcut,10-250 dolar arasi ucreti olan urunleri fiyatlarina göre listeleyiniz..
Select ProductName,UnitPrice,UNitsInStock from Products where UnitPrice between 10 and 250
and LEFT(ProductName,1)='c'
and UnitsINStock>0
order by UnitPrice
--Carsamba gunu alinan,kargo ucreti 20-75 arasinda olan,teslim tarihi null
--olmayan siparislerin bilgilerini raporlayınız ve OrderID'sine gore buyukten kucuge siralayınız..
Select OrderId,Freight,ShippedDate,Orderdate from Orders where Freight between 20 and 75
and DATENAME(weekday,OrderDate)='Wednesday'
and ShippedDate is not null
order by OrderID desc

SQL KAYITLARDA BELİRLİ BİR SAYIDA VERİYİ ALMA

--KAYITLARDA BELİRLİ BİR SAYIDA VERİYİ ALMA
--TOP KONTROLU => Sorgudan gelen sonucun en ustten belirli bir kısmını almak için kullandığımız anahtar kelimedir..
--En ucuz 10 urunu gosteriniz..
Select top 10 ProductName,UnitPrice,UnitsInStock from Products order by UnitPrice
--En son teslim edilen 5 siparisin detaylarini gosteriniz..
Select top 5 OrderId,CustomerID,EmployeeID,OrderDate from Orders order by ShippedDate desc
--En fazla kargo ucreti odenene siparisin ID'sini ve odenen miktarı gosteriniz..
Select top 1 OrderID,Freight from Orders order by Freight desc
--satış detay tablosunda ürün id ürün fiyatı ve miktarı gelsin ama ürün ID ye göre sıralı gelsin
select ProductId,UnitPrice,Quantity from [Order Details] order by ProductId
--Ürünler tablosundaki tüm elemanlar ürün adına göre sıralı gelsin
select*from Products order by ProductName asc
--ürünler tablosunda tüm elemanlar ürün fiyatına göre a dan z ye sıralı ürün fiyatı aynı olanlar stok miktarına göre
--z den a ya sıralı gelsin
select *from Products order by UnitPrice asc,UnitsInStock desc
--sıralanan veri sadece bir adet gelsin yani tekrarlanan kayıtlar gelmesin
select distinct ProductID,UnitPrice,Quantity from [Order Details] order by ProductId
--en yüksek fiyatlı 10 ürün terten sıralamalı
select Top (10) *from Products order by UnitPrice desc
--fiyatı 50 den buyuk olan ürünlerden satış adedi en fazla olan 10 ürünü
--listeleyi,niz.eşit olan varsa hepsini göstersin."with ties" kullanarak eşitlik
--durumundakileride ilk 10 a sokalım.(Order Details)
select top (10) with ties*from [Order Details] where UnitPrice>50 order by Quantity desc

SQL SIRALAMA İŞLEMLERİ(ORDER BY)

-------SIRALAMA ISLEMLERI(ORDER BY)
--Sorgunuz icerisinden gelen sonucları belirli bir hiyerarsik siralamaya gore
--raporlamaniz gerekebilir.Bu siralama islemi icin kullanılan anahtar kelime
--"order by" anahtar kelimesidir...
--Buyukten kucuge siralama(Z-A)=>DESC(Descending)
--Kucukten buyuge siralama(A-Z)=>ASC(Ascending)
--Varsayilan siralama yontemi kucukten buyuge siralama yontemidir.Dolayisiyla sorguya asc yazmasınız
--bile sorgunuz sirali bir sekilde gelecektir
--Personellerimizi A-Z'ye siralayalim...
Select EmployeeID,FirstName+'  '+LastName as 'AdSoyad' from Employees order by AdSoyad asc
--Musterilerin ID'lerini (CustomerID),Sirket adlarini(CompanyName),ulkelerini(Country)
--listeleyiniz.Ancak sirket Fransiz sirketi olacak ve CustomerID'lerine gore tersten siralanacak
Select CustomerID,CompanyName,Country from Customers
where Country='France'
order by CustomerID desc
--Urunlerimizin adlarini(ProductName),ucretlerini(UnitPrice),stok miktarlarını(UNitsINStock)
--gosteriniz.stok miktarı 50'den buyuk olacak ve urun ucretine gore ucuzdan pahaliya bir siralama gerceklestirilecek
Select ProductName,UnitPrice,UnitsInStock from Products where
UnitsInStock>50 order by UnitPrice

sql Null ifadelerin kontrolü

--NULL IFADELERIN KONTROLU
--Henuz musteriye ulasmamıs siparisleri listeleyelim...
select OrderId,OrderDate,ShippedDate from Orders where ShippedDate is null
--Musteriye ulasmis olan siparisleri listeleyelim...
select OrderId,OrderDate,ShippedDate from Orders where ShippedDate is not null
--Bolge bilgisi(region) olmayan musterileri(Customers) raporlayiniz..
Select CompanyName,Region from Customers where Region is null
--Kimseye rapor(Reportsto) vermeyen personlimin adi,soyadi ve unvani(Title) nedir?
Select FirstName,LastName,Title,ReportsTo from Employees where ReportsTo is null

--categoryID'si 5 olan,urun bedeli 20'den buyuk 300'den kucuk olan ve stok durumu null olmayan
--urunlerimin detaylarini gosteriniz..
Select Productname,CategoryId,UnitsInStock,UnitPrice from Products where CategoryID=5 and
UnitPrice<300 and UnitsInStock is not null
--'DUMON' ya da 'ALFKI' CustomerID'lerine sahip musteriler tarafından alinmis,1 nolu personlin
--onayladigi (EmployeeID),3 nolu kargo firması tarafindan tasinmis (ShipVia) ve ShipRegion'ı
--null olan siparisleri gosteriniz..
--NOT:Bir sorgu icerisinde hem "OR" hem de "AND" ifadelerini ayni anda kullanıyor ise "OR"
--filtrelerini parantez yardımıyla kendi icerisinde degerlendirme zorunluluğu getirmelisiniz..
Select CustomerID,EmployeeID,ShipVia,ShipRegion from Orders where
(CustomerID='DUMON' or CustomerID='ALFKI')
and EmployeeID=1
and ShipVia=3
and ShipRegion is null

--sadece 3,5,7,4,12,8 idelerini içermeyenler gelsin
select * from [Order Details] where ProductID not in (3,5,7,4,12,8)

--ücüncü karakteri a,b,c den bir tanesi olan ürün isimlerini listeler
select*from Products where ProductName like '__[abc]%'

sql Mantıksal Operatorler(And-Or)

---MANTIKSAL OPERATORLER(AND-OR)
--Urunlerim arasinda stok miktarı 20-50 olan urunlerimin listesini raporlayiniz...
Select ProductID,ProductName,UNitsInStock from Products where UnitsInStock >=20 and UnitsInStock<=50
--Yasi 50'den buyuk,ıngilterede oturmayan calisanlarimin adlarini ve yaslarini raporlayinşz.Ancak
--isimler su formatta olmalıdır:A:Fuller
Select LEFT(FirstName,1)+'.   '+LastName as 'Ad Soyad',DATEDIFF(YEAR,BirthDate,getdate()) as
'Yas',Country from Employees where Country <> 'UK' and DATEDIFF(YEAR,BirthDate,getdate())>50
--1997(dahil) yilindan sonra (OrderDate) alinmis,kargo ucreti(Freight) 20'den buyuk ve Fransa'ya
--gonderilmemesi(ShipCountry) siparislerin(Orders) OrderID,siparis tarihlerini,teslim tarihlerini
--(ShippedDate) ve kargo ucretlerini raporlayiniz..
Select OrderID,ShippedDate,OrderDate,Freight,ShipCountry from Orders where YEAR(OrderDate)>=1997
and Freight>20 and ShipCountry !='France'

sql Verilerin Filtrelenmesi(WHERE)

-------------------------VERİLERİN FİLTRELENDIRILMESI(WHERE)-------------------------------
---------------
--<> <= >= == != <>(esit degildir)
--Where kriterine dahil olan kolonlari rapor icersinde kullanmak zorunda degilsiniz!
--Urun ucreti 30'dan yuksek olan urunleri raporlayiniz...
Select ProductName,UnitPrice from Products where UnitPrice >=30
--Londra'da yasayan(City) personllerini listeleyiniz...
Select FirstName+'   '+LastName as 'AdSoyad',City from Employees where City='London'
--CategoryID'si 5 olmayan urunlerimin adlarini ve CategoryID'lerini gosteriniz....
Select ProductName as 'UrunAdi',CategoryID from Products where CategoryID != 5
--'01.01.1993' tarihinden sonra ise girmis personllerimin Adini,soyadini ve ise giris tarihlerini
--(HireDate) raporlayiniz..
Select FirstName,LastName,HireDate from Employees where HireDate>'01.01.1993'

--Mart ayinda alinmis olan siparislerin OrderID,OrderDate kolonundaki
--degerleri raporlayiniz...(Orders)
Select OrderID,OrderDate from Orders where DATENAME(MONTH,OrderDate)='March'

sql NORTHWND adlı database sorgusu

--Kargolar(Shippers) tablosunda yer alan KargoID(ShipperID),Firma Adi(CompanyName)
--ve Telefon Numarasi(Phone) bilgilerini raporlayiniz...
Select ShipperID,CompanyName,Phone from Shippers
--Eger bir tablodaki tüm kolonlari rapor icerisinde dahil edecekseniz,tek tek kolon adlari yazmak
--zorunda degilsiniz..
Select*from Shippers
--Calisanlarimin(Employees) ID'lerini (EmployeeID),adlarini (FirstName) ve soyadlarini
--(Lastname) raporlayınız.
--Calisanlarimiz (Employees) ID'lerini (EMployeeID),adlarini (FirstName) ve soyadlarini(LastName)
--raporlayiniz.Ancak adlar ve soyadlar tek bir kolonda toplansın ve kolon adi 'AdSoyad' olsun..
Select EmployeeID,FirstName+'   '+LastName as [Ad Soyad] from Employees
--Calisanlarimin Ad ve Soyadlariyla birlikte yazlarini raporlayiniz.
Select FirstName+'  '+LastName as 'AdSoyad',DATEDIFF(YEAR,BirthDate,getdate()) as 'Yas' from Employees
--Urunlerimin(Products) ID'lerini (ProductID),adlarini (ProductName),stok miktarlarini
--(UnitsINStock),fiyatlarini (UnitPrice) ve fiyatlara %18 KDV eklenmiş hallerini raporlayayiniz..
Select ProductID,productName,UnitsInstock,UnitPrice,UnitPrice*1.18 as 'KDVLİ Fiyat' from Products

sql Tarihsel İfadeler

--TARIHSEL IFADELER
--Gunun tarihini alma
Select GETDATE()
--Bir tarihin gununu,ayini,yilini alma
Select DAY(getdate())
Select MONTH(getdate())
Select YEAR(getdate())
--Verilen tarihe belirli bir zaman dilimi ekleme
Select DATEADD(YEAR,12,getdate())
Select DATEADD(MONTH,67,'08.19.1983')
--iki tarih arasında fark alma
Select DATEDIFF(MINUTE,'05.19.1923',getdate())
--Özel tarihsel fonksiyonlar
Select DATENAME(Month,getdate())  --icerisinde bulundugumuz ayni ayı size teslim eder
Select DATENAME(dayofyear,getdate()) --Yilin kacinci gunu
Select DATENAME(weekday,getdate())--Gunun adini teslim eder

sql metinsel ifadeler-2

--Girilen metnin uzunlugu alma:
Select LEN('KARİYER') as MetinUzunluğu
--Bir metinsel ifade icersindeki bir bolumun bir degerle degistirilmesi:
Select REPLACE('KARİYERIM','IM','IN')
--Bir metinsel ifadeyi tersine cevirmek icin kullanma
Select REVERSE('KARIYER')
--Bir metnin solundan ya da sagindan belirli bir kismini alma:
Select LEFT('KARIYERIM',5) as 'Ad',RIGHT ('KARİYERIM',3) as 'Soyad'

sql metinsel islemler

--METINSEL ISLEMLER
SELECT 'Merhaba'+'  '+'Dünya' as Selamlama
--Metnin tamamini buyuk ya da kucuk hale getirme
Select LOWER('KARIYER')
Select UPPER('kariyer')
--Metnin bir bolumunu teslim alma:(SQL Server ortaminda C#'tan tanidik gelen indexin 0'dan baslamasi durumu soz konusu degildir!
--Saymaya 1'den baslar!)
Select SUBSTRING('kariyer',3,3)
--Soldan ve sagdan bosluklari temizleme
Select LTRIM('      kariyer')
Select RTRIM('kariyer      ')

12 Şubat 2019 Salı

sql Select

--SELECT
--DB uzerinde yer alan tablolardaki verilerin secilmesinde ve raporlanmasında kullanılan anahtar kelimedir
--Eger sorgularınızdan gelen sonucta,basligi olmayan bir kolon varsa,o kolona rapor bazli(gecici)
--olarak "as" anahtar kelimesini kullnarak bir ad verebilirsiniz..."As" anahtar kelimesine SQL Server icerisinde "alias" denir
--YONTEM 1
Select 2+3 as 'Toplama',5-2 as 'Cikarma',5*6 as 'Carpma',10/2 as 'Bolme'
--YONTEM 2
Select 5+6 as Toplama,7*5 as Carpma
--YONTEM 3
Select 24/4 as [Bolme Islemi]
--YONTEM 4
Select 56-24  Cikarma

sql alter yapısı

--------------------ALTER YAPISI-------------------
--Varolan bir sunucu nesnesinin bir takim özelliklerinin degistirilmesi icin kulllanılan yapıdır
--Araclar tablosundaki Marka kolonun uzunlugu 50 olarak degistirilsin...
Alter table Araclar
Alter column Marka nvarchar(50) not null
--Araclar tablosundaki MotorGucu adiyla yeni bir kolon eklesin...
Alter table Araclar
add MotorGucu int null
--Araclar tablosoundaki Motorgucu adli kolonu kaldırılsın...
Alter table Araclar
drop column MotorGucu

sql unique test check test

--UNique test
Insert Into Araclar
Values('Toyota','34 ZA 2111','01.01.2004')
Insert Into Araclar
Values('Opel','34 ZA 2111','06.06.2006')
--Check test
Insert Into Araclar
Values('Honda','34 AZ 999','01.01.1995')

sql kodla unique ve check constraint oluşumıu

--Kodla unique ve check constraint nasil oluşturulur?
--Plaka kolonu unique;YapimYili check constrait[10 yasından buyuk aracalar kayit edilemez!]
create table Araclar
(
AracID int primary key identity(1,1) not null,
Marka nvarchar(40) not null,
Plaka nvarchar(10) not null,
YapimYili datetime not null
constraint YapimYili check(datediff(YEAR,YapimYili,getdate())<10),unique (Plaka)
)

sql tablo oluşturma 2

Create table Musteriler
(
MusteriID int identity(1,1) primary key not null,
SirketAdi nvarchar(30) not null,
Telefonu nvarchar(24) not null
)
Create table Siparisler
(
SiparisId int identity(1,1) primary key not null,
SiparisTarihi date not null,
SiparisiVerenMusteriID int foreign key references Musteriler(MusteriID) not null,
SiparisAlanPersonelID int foreign key references Personeller(PersonelID) not null
)

sql tablo oluşturma

Create database kuzeyruzgari
use kuzeyruzgari
go
Create table Personeller
(
PersonelID int primary key identity (1,1) not null,
PersonelAdi nvarchar(50) not null,
PersonelSoyadi nvarchar(50) not null
)

9 Şubat 2019 Cumartesi

sql veritabanı oluşturma silme

create database DenemeDB1
on primary
(
Name= manueldb1_data,
FileName = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\manueldb1.mdf',
Size = 10 MB,
FileGrowth = 3 MB,
MaxSize= 60 MB
)
Log on
(
Name = manueldb1_log,
FileName = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\manueldb1.ldf',
Size = 2 MB,
FileGrowth= 10%,
MaxSize = 10MB
)
drop database DenemeDB1 --manueldb siliniyor

sql sorgu için veritabanı yükleme


6 Şubat 2019 Çarşamba

C# Kisi brans meslek sinif form

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
         
            if(textBox4.Text=="")
            {
                textBox4.Text = 0.ToString();
             

            }
            Kisi kisi = new Kisi();
            kisi.Adsoyad = textBox1.Text;
            kisi.Meslek = textBox2.Text;
            kisi.Brans = textBox3.Text;
            kisi.Sinif =int.Parse( textBox4.Text);
            ListViewItem kayıt = new ListViewItem();
            kayıt.Text = kisi.Adsoyad;
            kayıt.SubItems.Add(kisi.Brans);
            kayıt.SubItems.Add(kisi.Meslek);
            kayıt.SubItems.Add(kisi.Sinif.ToString());
            listView1.Items.Add(kayıt);
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();

        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApp4
{
    class Kisi
    {
        private string adsoyad;
        private string meslek;
        private string brans;
        private int sinif;
        public string Adsoyad
        {
            get
            {
                return adsoyad;
            }
            set
            {
                adsoyad = value;
            }
        }
        public string Meslek
        {
            get
            {
                return meslek;
            }
            set
            {
                meslek = value;
            }
        }
        public string Brans
        {
            get
            {
                return brans;
            }
            set
            {
                brans = value;
            }
        }
        public int Sinif
        {
            get
            {
                return sinif;
            }
            set
            {
                sinif = value;
            }
        }

    }
}


5 Şubat 2019 Salı

C# interface

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp9
{
    class Program
    {
        public interface IAracOzellikleri
        {
            //tanımların
            string Marka { get; }
            string Model { get; }
            int Hız { get; set; }
            int Fiyat { get; set; }
            int Gosterge(int deger);
            void Bilgiler();
        }
        public interface IAracPuan
        {
            double AracPuani(double puan);
        }
        public class Mercedes : IAracOzellikleri
        {
            private string marka = "Mercedes"; //alan
            private string model = "A serisi";//alan
            private int hız;
            private int fiyat;
            public string Marka //Özellik tanımıdır
            {
                get { return marka; }
            }
            public string Model //özellik tanımıdır
            {
                get { return model; }//özellik tanımıdır
            }
            public int Hız
            {
                get { return hız; }
                set { hız = value; }
             }
            public int Fiyat
            {
                get { return fiyat; }
                set { fiyat = value; }
            }
            public int Gosterge(int deger)
            {
                return (deger);
            }
            public void Bilgiler()
            {
                Console.WriteLine("Marka:"+Marka);
                Console.WriteLine("Model:"+Model);
                Console.WriteLine("Fiyat:"+Fiyat);
                Console.WriteLine("Hız"+Hız);
                Console.WriteLine("Gosterge:"+Gosterge(300));

            }
        }
        public class Bmw : IAracOzellikleri,IAracPuan
        {
            private string marka = "Bmw";
            private string model = "3.40";
            private int hiz;
            private int fiyat;
            public double AracPuani(double puan)
            {
                return puan * 3.6;
            }
            public string Marka
            {
                get { return marka; }
            }
            public string Model
            {
                get { return model; }
            }
            public int Hız
            {
                get { return hiz; }
                set { hiz = value; }
            }
            public int Fiyat
            {
                get { return fiyat; }
                set { fiyat = value; }
            }
            public int Gosterge(int deger)
            {
                return (deger);
            }
            public void Bilgiler()
            {
                Console.WriteLine("Marka:"+Marka);
                Console.WriteLine("Model:"+Model);
                Console.WriteLine("Fiyat:"+Fiyat);
                Console.WriteLine("Hız:"+Hız);
                Console.WriteLine("Gosterge:"+Gosterge(250));
                Console.WriteLine("Puan:"+AracPuani(2000));
            }
        }

        static void Main(string[] args)
        {
            Mercedes b150 = new Mercedes();
            b150.Fiyat = 2000;
            b150.Hız = 280;
            b150.Bilgiler();
            Console.WriteLine("--------------");
            Bmw b520 = new Bmw();
            b520.Fiyat = 2500;
            b520.Hız = 290;
            b520.Bilgiler();
            Console.ReadLine();
        }
    }
}

4 Şubat 2019 Pazartesi

C# abstract ogretmen ogrenci

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp8
{
    public abstract class Kisi
    {
        public string AdSoyad;
        public abstract string Meslek
        {
            get;
        }
        public virtual void Yaz()
        {
            Console.WriteLine("adı soyad:"+AdSoyad);
            Console.WriteLine("mesleği:"+Meslek);
        }
    }
    public class Ogrenci :Kisi
    {
        public int Sınıf;
        public override string Meslek
        {
           
            //deger alır
            get
            {
                return "Öğrenci";
            }
        }
        public override void Yaz()
        {
            Console.WriteLine("Adı Soyad:"+AdSoyad);
            Console.WriteLine("Mesleği:"+Meslek);
            Console.WriteLine("Sınıfı:"+Sınıf);
        }
    }
    public class Ogretmen :Kisi
    {
        public string Brans;
        public override string Meslek
        {
            get
            {
                return "Öğretmen";
            }
        }
        public override void Yaz()
        {
            Console.WriteLine("Adı Soyad:"+AdSoyad);
            Console.WriteLine("Mesleği:"+Meslek);
            Console.WriteLine("Branş:"+Brans);
        }
    }
    //kalıtım yapılmayacak sınıflara sealed deriz
    //sealed class Mudur
    //{
    //}
    //class Patron :Mudur
    //{
    //}
    class Program
    {
        static void Main(string[] args)
        {
            //Temel sınıfından abstract olarak tanımlanmış bundan instance alamaz aşağıdaki tanımlama olmaz
            //Kisi kisi1=new Kisi();
            Ogrenci ogrenci1 = new Ogrenci();
            ogrenci1.AdSoyad = "Eren Turkyılmaz";
            ogrenci1.Sınıf = 1;
            ogrenci1.Yaz();
            Ogretmen ogretmen1 = new Ogretmen();
            ogretmen1.AdSoyad = "osman hoca";
            ogretmen1.Brans = "Yazılım Mühendisliği";
            ogretmen1.Yaz();
            Console.ReadLine();
            //Abstrant sınıflarla ilgili
            //----------
            //Abstract classlardan nesne tanımlamaz,instance alınamaz
            //abstract sınıflar,abstract alanlar içerebilirler
            //abstract alan tanımlanan bir class mutlaka abstract class olarak tanımlanmalıdır
            //Abstract classlar sealed anahtar sözcüğü ile ifade edilemezler,çünkü
            //sealed ilgili sınıftan türetme yapılmasını engeller
            //Abstract bir sınıftan türeyen sınıflar temel içindeki bütün abstract metotları veya alanları override ederek değiştirmek zorundadır
            //yani metodun gerçek iş yapacak gövdeler bu türeyen sınıflar içinde tanımlanır
            //Bütün abstract claaslar aslında virtuallardır
            //static metotlar abstract olarak tanımlanmazlar...
            //Static metotlar abstract olarak tanımlanmazlar
            //ödev bu uygulama formda yapılsın

        }
    }
}

C# Emlak uygulaması form ekranı class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApp1
{
    class Emlak
    {
        private string semt;
        private int odasayisi;
        private int katno;
        private string aciklama;
        private int alan;
        public string Semt
        {
            get
            {
                return semt;
            }
            set
            {
                semt = value.ToUpper(); //harfleri büyütüyor
            }
        }
        public int Odasayisi
        {
            get
            {
                return odasayisi;
            }
            set
            {
                odasayisi = Math.Abs(value); //mutlak değer
            }
        }
        public int Katno
        {
            get
            {
                return katno;
            }
            set
            {
                katno = Math.Abs(value);
            }
        }
        //alan özelliğine eksi değer girilebilinsin
        public int Alan
        {
            get
            {
                return alan;
            }
            set
            {
                alan = Math.Abs(value);
            }
        }
        public string Aciklama
        {
            get
            {
                return aciklama;
            }
            set
            {
                aciklama = value.ToUpper();
            }
        }

    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //önce evim nesnesi oluşturduk
            Emlak evim = new Emlak();
            evim.Semt = textBox1.Text;
            evim.Odasayisi = int.Parse(textBox2.Text);
            evim.Katno = int.Parse(textBox3.Text);
            evim.Alan = int.Parse(textBox4.Text);
            evim.Aciklama = textBox5.Text;
            //sonra evimi listview kısmına aktardık.
            ListViewItem kayıt = new ListViewItem();
            kayıt.Text = evim.Semt;
            kayıt.SubItems.Add(evim.Odasayisi.ToString());
            kayıt.SubItems.Add(evim.Katno.ToString());
            kayıt.SubItems.Add(evim.Alan.ToString());
            kayıt.SubItems.Add(evim.Aciklama);
            //kayıt nesnesi ekrandaki listviewe eklenir
            listView1.Items.Add(kayıt);
     
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();

        }
    }
}

2 Şubat 2019 Cumartesi

c# form sifre kullanıcı adı kayıt

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public string kullaniciadi;
        public string sifre;

        public Form1()
        {
            InitializeComponent();
        }
     
        private void button1_Click(object sender, EventArgs e)
        {
            if(textBox1.Text=="" )
            {
                MessageBox.Show("lütfen kullanıcı adı giriniz!!!");
            }
     
            bool isok = true;
            if (textBox1.Text != null)
            {
                for (int i = 0; i < textBox1.Text.Length; i++)
                {
                    if (!char.IsLetter(textBox1.Text[i]) )
                    {
                        isok = false;
                        break;
                    }
                }
                if (isok)
                    kullaniciadi = textBox1.Text;
                                else
                {
                    MessageBox.Show("lütfen geçerli kullanıcı adı girin");
                    textBox1.Text = null;
                    return;
                }
             
            }
            else
            {
                MessageBox.Show("lütfen kullanıcı adı giriniz!");
                return;
            }
     
     
         
            if (textBox2.Text != "" && textBox1.Text!="")
            {
                MessageBox.Show("kaydınız başarıyla oluşturulmuştur");
                textBox1.Text = null;
                textBox2.Text = null;
            }
            else if(textBox2.Text=="")
            {
                MessageBox.Show("lütfen şifre giriniz");

                textBox2.Text = "";
             
            }
        }

    }
}