RSS

Sql Derinlemesine

0 Comments | This entry was posted on Oca 23 2010

–Production.Product tablosundaki tum kayitlari getirelim
SELECT * FROM Production.Product
–pp tablosunda name,color,listprice getirelim
SELECT Name,Color,ListPrice FROM Production.Product
–pp tablosundan kolon adlarini degistirerekk getirelim.
SELECT Name As Isim,Color As ‘Rengi’,ListPrice Fiyat FROM Production.Product
–pp tablosunda fiyati 1000 den buyuk olanlari getirelim
SELECT Name,ListPrice FROM Production.Product WHERE ListPrice>1000
–pp tablosunda fiyata gore siralama yapip getirelim
SELECT ListPRice,Name FROM Production.Product ORDER BY ListPrice ASC
–person.contact tablosunda adi ve soyadi kolonlari birlestirip tek kolon halinde getirelim
SELECT FirstName+’ ‘+LastName FROM Person.Contact
–person.contact veya humanresourceemployee tablosunda adi.soyadi@medyavuz.com halinde bir mail olusturalim.
SELECT FirstName+’.'+LastName+’@medyavuz.com’ FROM Person.Contact
–productipn.product ile produıction.productsubcategory tablosunun ortak kolonlar uzerinde birlestirip getirelim
SELECT pp.Name,pp.ListPrice,ppsc.Name
FROM Production.Product pp
INNER JOIN Production.ProductSubCategory ppsc
ON pp.ProductSubCategoryID=ppsc.ProductSubCategoryID
– Bir tane degisken tanimlayip ona deger verelim..
DECLARE @Id INT
SET @Id=200
–Bu degiskenin degeri 1000 den buyukse ona gore bir mesaj verelim
IF (@Id>1000)
BEGIN
PRINT ‘1000 den buyuk’
END
ELSE
BEGIN
PRINT ‘1000 den kucuk’
END
–PP tablosundaki tum listprice fiyatlarini 10 lira arrtiralim
UPDATE Production.Product SET ListPrice=ListPrice+10
–ListPrice 1000 den buyuk color da null olmayanlar gelsin
SELECT Name,ListPRice FROM Production.Product WHERE ListPrice>1000 AND Color IS NOT NULL
–pp de urunlerin ismi e ile baslayanlar gelsin
SELECT [Name] FROM Production.Product WHERE Name LIKE  ‘e%’
–pp de urunlerin ismi e ile bitenler gelsin
SELECT Name FROM Production.Product WHERE Name LIKE ‘%e’
–pp de urunlerin isminde e gecenler gelsin
SELECT Name FROM Production.Product WHERE Name LIKE ‘%e%’
–pp de urunlerin ismi a veya k ile baslayanlar gelsin
SELECT Name FROM Production.product WHERE Name LIKE ‘[ak]%’
–pp de urunlerin ismi a il k arasinda olanlar gelsin
SELECT NAme FROM Production.Product WHERE Name LIKE ‘[a-k]%’
–pp de urunlerin ismi a ile k arasinda olmayanlar gelsin
SELECT Name FROM Production.Product WHERE Name LIKE ‘[^a-k]%’
–pp de ismi 5 harfli olup 3. harfi a olan urunler gelsin
SELECT NAme FROM Production.Product WHERE Name LIKE ‘__a__’
–person.contactta ilk 5 kayit gelsin
SELECT TOP 5 FirstName FROM Person.Contact
–rengi kirmizi olmayanlarin uc halde yazalim
SELECT Name,Color FROM Production.Product WHERE Color!=’Red’
SELECT Name,Color FROM Production.product WHERE Color<>’Red’
SELECT Name,Color FROM Production.Product WHERE Color NOT LIKE ‘Red’
–fiyati 100 ile 1000 arasinda olanlar gelsin
SELECT Name,ListPRice FROM Production.Product WHERE ListPRice BETWEEN 100 AND 1000
–Fiyati en pahali 10 urun gelsin ama son siradaki urun fiyatina esit olan urun varsa onlarda gelsin
SELECT TOP 10 WITH TIES NAME,ListPRice FROM Production.Product ORDER BY ListPrice DESC
–Urunlerin tum renklerini tekrarsiz getirsin
SELECT COLOR FROM Production.Product GROUP BY Color
SELECT DISTINCT Color FROM Production.Product
–Hangi Sehirde kac kisi oturuyor bilgisi gelsin (Person.Address)
SELECT City,COUNT(City) FROM Person.Address GROUP BY City
–Girilen kelimenin karakter uzunlugunu getiren function yazalim
SELECT LEN(Name),Name FROM Production.Product
–En pahali urunu getiren function yazalim
SELECT MAX(ListPRice) FROM Production.Product
–En ucuz urunu getiren functioni yazalim
SELECT MIN(ListPrice) FROM Production.Product
–Urunlerin fiyatlarin toplamini getirelim
SELECT SUM(ListPrice) ‘Toplam Fiyat’ FROM Prodution.Product
–Fiyati 1000 den buyuk urunlerin sayisini getirelim.
SELECT COUNT(ListPrice) FROM production.Product WHERE ListPrice>1000
–Urunlerin isminin hepsini kucuk harfe ceviren function yazalim
SELECT LOWER(Name) FROM Production.Product
–Urunlerin isminin hepsini buyuk harfe ceviren function yazalim
SELECT UPPER(Name) FROM Production.Product
–ahmet.yavuz@medyavuz.com gibi bir mail adresi verelim
–FirstName LastName
–Ahmet Yavuz
–ahmet.yavuz@medyavuz.com
–sımsıtrak (cok muhim)
SELECT LOWER(SUBSTRING(FirstName,1,1))+’.'+LOWER(LastName)+’@medyavuz.com’ AS ‘Mail Adresi’
FROM Person.Contact
–Urunlerin ismini ters ceviren function yazalim.
SELECT REVERSE(Name) FROM Production.Product
–Person.Contact tablosunda mrs olanlara bayan, mr ye bay olanlari gecici olarak yazsin.Case kullanim
SELECT Title, (CASE Title
WHEN ‘Mrs.’ THEN ‘Bayan’
WHEN ‘Mr.’ THEN ‘Bay’
ELSE
isnull(Title, ‘Arada Kalanlar’)
END
) FROM Person.Contact

Ado.Net Parametre uygulaması

0 Comments | This entry was posted on Oca 23 2010

İlk olarak visual studio programımızdan bir form acık içeriğine 2 adet textbox 1 de buton koyalım kullanıcı girişi olsun kullanıcı adı şifre ve giriş butonu.

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

private void btnGonder_Click(object sender, EventArgs e)
{
SqlConnection baglanti = new SqlConnection(“data source=.;initial catalog=Uyelik;integrated security=true”);
//Concat ile bagladim injection yiyor su anda
//SqlCommand komut = new SqlCommand(“SELECT UyeKullanici FROM Uyeler WHERE UyeKullanici=’” + txtKulAdi.Text + “‘ AND UyeSifre=’” + txtSifre.Text + “‘”, baglanti);
SqlCommand komut = new SqlCommand(“SELECT UyeKullanici FROM Uyeler WHERE UyeKullanici=@Adi AND UyeSifre=@Sifre”, baglanti);//Connection unutmayalim
//komut gonderirken icerisine iki adet parametre ekledim.
//bu parametrelerin degerini  asagidaki ifadede verdim.
//Yani sorgum artik icinde direkt data barindirmadan degeri parametre yardimiyla tamamen disardan aliyor.Dolayisiyle kullanici direkt olarak sorguma mudahale edemez duruma geliyor.

komut.Parameters.AddWithValue(“@Adi”, txtKulAdi.Text);
komut.Parameters.AddWithValue(“@Sifre”, txtSifre.Text);
baglanti.Open();
SqlDataReader dr = komut.ExecuteReader();
if (dr.Read())
MessageBox.Show(“Sisteme Hosgeldiniz”);
else
MessageBox.Show(“Yanlis Kullanici”);
dr.Close();
baglanti.Close();
}

}

Connection Olayları 1

0 Comments | This entry was posted on Oca 23 2010

Ado.Net ile connection tanımlamayı öğreneceğiz ilk olarak visual studio programımızdan yeni bir console projesi açıp bakalım,

main metodu içerisine oluşturdugumuz connection u inceleyelim,

static void Main(string[] args)
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = “.”;   Sql serverimizin adı, uzak sunucu ip side yazılabilir.
builder.InitialCatalog = “AdventureWorks“;   Buradada bağlanılacak database in adını giriyoruz
builder.IntegratedSecurity = truevarsayılan güvenlik ayarları

SqlConnection con = new SqlConnection(builder.ConnectionString);
if (con.State == System.Data.ConnectionState.Closed)
con.Open();
con.Close();

}

2. yol,

static void Main(string[] args)
{

Console.WriteLine(“Baglanti Aciliyorr…….”);
BaglantiAc();
Console.WriteLine(“baglanti kapaniyor……”);
BaglantiyiKapat();
}
static void BaglantiAc()
{
SqlConnection con = new SqlConnection(“data source=.;initial catalog=AdventureWorks;integrated security=true”);
con.Open();
Console.WriteLine(“Su Andaki Mevcut Durum”+con.State.ToString());

}
static void BaglantiyiKapat()
{
SqlConnection con = new SqlConnection(“data source=.;initial catalog=AdventureWorks;integrated security=true”);
con.Close();
Console.WriteLine(“Su Andaki Mevcut Durum”+con.State.ToString());
}

Sql in Dibine giriyoruz :)

0 Comments | This entry was posted on Oca 23 2010

Merhaba arkadaşlar bu yazımıza mssql terimlerini öğreneceğiz. Adventureworks tablomuzu var sayaraktar sorgular atacağız.

çıkacaktır.

Use AdventureWorks –ilgili database i kullanmak icin use anahtarini kullanırız….

Select * from tablo adı –tablonun tamamını getirir

Select * from Production.Product –Production.Product tablosundaki butun kolonlari getiren sorgum.
SELECT Name,Color from Production.Product –Production.Product tablosundan sadece adi ve rengini ceken sorgumuz.
SELECT Name ‘Adi’,Color ‘Rengi’ FROM Production.Product –Kolonlara gecici isim veren sorgu (alias)
SELECT Name+’ ‘+Color FROM Production.Product –iki kolonu birlestirir.
SELECT Name+’ ‘+Convert(nvarchar(10),ListPrice) as ‘Adi ve Fiyati’ FROM Production.Product–iki kolonu birlestirip bir de takma isim(alias) veriyorum.–Convert parametre aldgidi ilk degere ikinci degeri convert eder.
SELECT * From Person.Contact–Personel bilgisi tutan tablo.

SELECT FirstName,LastName,FirstName+’.'+LastName+’@ahmet-yavuz.com’ as ‘Mail Adresi’ FROM Person.Contact–isim ve soyadini birlestirip sonuna da bir ifade ekledim…

–Order by Islemleri–
SELECT Name ‘Urunun Adi’,Color ‘Rengi’,ListPrice ‘Fiyati’ from Production.Product order by ListPrice asc–kucukten buyuge dogru a dan z ye dogru siralar.ascending

SELECT Name ‘Urunun Adi’,Color ‘Rengi’,ListPrice ‘Fiyati’ from Production.Product order by ListPrice descbuyukten kucuge z den a ya siralara descending

SELECT Name,Color,ListPrice From Production.Product order by Name

–where Kullanimi
SELECT Name,Color From Production.Product where ListPrice>2000 order by Name
SELECT Name,Color,ListPrice FROM Production.Product where ListPrice>2000

select * from Person.Contact

select * from Humanresources.Employee

select Title,BirthDate from Humanresources.Employee where Gender=’F’ and MaritalStatus=’S’
order by BirthDate desc

–içinde a geçenler

SELECT Title,FirstName,LastName
FROM Person.Contact
WHERE FirstName LIKE ‘%a%’ and Title=’Mr.’

–a ile baslayanlar
SELECT Title,FirstName,LastName
FROM Person.Contact
WHERE FirstName LIKE ‘a%’ and Title=’Mr.’

–y ile bitenler
SELECT FirstName
FROM person.Contact
WHERE FirstName LIKE ‘%y’ and Title=’Mr.’

– a veya b veya c ile baslamayanlar
SELECT FirstName
FROM person.Contact
WHERE FirstNAme LIKE ‘[^a-c]%’

iz kodu y

C#’a Başlangıç

0 Comments | This entry was posted on Ara 01 2009

C# için Visual Studio programımızı açıyoruz. Araç kutusundan (toolbox) button’a çift tıklayıp form üzerine ekliyoruz. Daha sonra form üzerindeki button’a çift tıkladığımız da kod bölümü görüntülenecektir ve şöyle bir ifade çıkacaktır.

Private Void Button1_Click(object sender, systemEventArgs e)
//Yukarıdaki kodun anlamı: Button1 tetiklenince, diğer bir ifade ile tıklanınca demektir.
{
//Bu aralığa istediğimiz kodu yazabiliriz, çünkü tetikleme başladıktan sonra burası çalışacaktır.
MessageBox.Show(“Mesaj Kutusu İçeriği”, “Mesaj Kutusu Başlığı”);
//Yukarıdaki kodun anlamı: Mesaj kutusu gösterilecektir ekranda.
}

Diğer Örnek
Form üzerine bir tane yazı kutusu (textbox), bir tane etiket (label) ekleyelim ve bir tane button. Form üzerindeki button’a çift tıklayınca kod bölümüne geçilecektir.

Private Void Button1_Click(object sender, systemEventArgs e)
//Açıklaması: Buton1 tetiklenince yani kliklendiği zaman.
{
label1.text = textbox1.text;
}
//Textbox’a girilen ifade label1′de gösteriliyor. Eşittir ifadesinin bulunduğu yerlerde sağ taraftaki ifadenin değeri sol taraftaki ifadeye aktarılması demektir.
//Örnek: x = 6 ifadesi programlama dillerinde yorumlanması (genel olarak)
x’in 6 olduğu anlamını taşır. Oysa ki 6′yı x olarak tanımaz.

Diğer Örnek:
Form üzerine bir tane etiket (label)  ve bir tane button ekleyelim. Form üzerindeki button’a çift tıklayınca kod bölümüne geçilecektir.

Private Void Button1_Click(object sender, systemEventArgs e)
//Açıklaması: Buton1 tetiklenince yani kliklendiği zaman.
{
Label1.BackColor = color.red;
//Etiketin arkaplan rengini kırmızı yaptık.
Label1.Height = 40;
//Etiketin  yüksekliğini 40 yaptık
Label1.Widht = 50;
//Etiketin genişliğini 50 yaptık.