SQL bir sorgu dili diyebiliriz. Veritabanından veri almak çalıştırmak için kullanılır. Çok kapsamlı birçok komutu vardır. Ama kullanması kolaydır çünki okunduğunda bir cümle haline dönüşürler.
Örnek verecek olursak :
SEÇ * NERESİ Kitaplık
SELECT * FROM Kitaplar okunduğunda Tamamı'nın hepsini seç gibi bir cümle oluşmaktadır. Yine SQL 'ın buna benzer çok kullanacağınız 3 adet komutu bulunmaktadır. Diğerlerini ilerde kullanacağız.
SELECT, INSERT, DELETE. Anşaşıldığı gibi seçme, ekleme, silme işlermlerini yapacağız. Şimdi hepsi için bir örnek uygulama hazırlayalım.
SELECT * FROM Kitaplar WHERE Satan='R10 Firması'
Kitaplar isimli tablodan satan kişi R10 Firması olan tüm kayıtları seçer.
INSERT INTO Kitaplar (Satan, Fiyat) VALUES ('R10 Firması', '10 YTL')
Bu sorgu ise Kitaplar tablosuna Satan , Fiyatı 10 Ytl olan bir kayıt ekledi.
DELETE FROM Kitaplar WHERE Satan = 'R10 Firması'
Bu sorgu ise Satan R10 Firması olan kayıtları siler.
WHERE cümlesini kullanmak :
Where kullanımı ver tablosunu sorgulayarak geriye sınırlı sayıda kayıt döndürmenizi sağlar.
Mesela: Müşteri kayıtlarını içeren bir veri tablomuz var ve siz belirli müşterilerin bilgilerini getirmek istiyorsunuz. O zman WHERE cümleciğini SELECT ifadenize eklemeniz gerekmektedir.
SELECT * FROM Musteri WHERE Soyadi = 'R10'
Bu ifade müşteri tablonuzdaki soyadı R10 olan kayıtları seçer.
Eğer tüm kayıtlarda soyadı sadece R harfi ile başlayanları bulmak için istiyorsanız.
SELECT * FROM Musteri WHERE Soyadi Like 'C%'
Bu yazıları üsttekinden farklı kulan Like anahtar kelimesi ve % işaretidir.
% yani joker (Wildcard) karakterdir, ve Like anahtar komutu ile birlikte kullanılır. Joker karakterin kullanıldığı yerde her hangi başka birşey bulunabileceği anlamına gelir.
Yukarıdaki SELECT ifadesinde sadece Soyadi C ile başlayanlar geri döndürülmektedir.
INSERT ile Kayıt Ekleme :
Veritabanından kayıtların nasıl seçilerek uygulamamıza aktarıldığını gördük. Şimdi de nasıl kayıt ekleyeceğimizi öğrenelim.
INSERT ifadesi şu şekilde kullanılır;
INSERT INTO Kitaplar (Kitap1, Kitap2, Kitap3) VALUES ('Kitap1Deger', 'Kitap2Deger', 'Kitap3Deger')
Kitaplar ismi veritabanınızdaki tablonuzun adı Kitap1, Kitap2, Kitap3 ise tablodaki sütunlardır.
Bu tabloya kayıt eklenmek istediğnde tablo içerisindeki Kitap1, 2 , 3 alanları birbirini karşılayan VALUES ('Kitap1Deger','Kitap2Deger','Kitap3Deger') değerleri ifade içerisinde sırayla yazılmalıdır.
Bir Örnek Verecek Olursak :
Aşağıdaki kod Müşteri tablosuna, VALUES bilgileri ve bu verileri karşılayan alan adları ile bir kayıt ekler.
INSERT INTO Musteri (Adi, Soyadi, Gelir) VALUES ('R10', 'NET', '100 YTL')
Update İle Kayıt Güncelleme :
Update ifadesinin çalışma şekli şöyledir.
UPDATA Tabloismi SET Alan1 = Deger1 WHERE Alan2 = Deger2
Bu örnek yazılığı farklı şekildede düşünebiliriz.:
Eğer WHERE koşul cümlesini kullanmayacaksak tablodaki tüm kayıtlar update güncellemesi işlemine tabi tutulacaklardır. Bütün alanlara aynı işlem uygulanacaktır.
Alan1 ve Alan2 aynı kolon olabilir. Deger1 ve Deger2 String için " işareti içerisine alınır sayı için ise tırnak kullanılmaz.
UPDATE Musteri SET Adi = 'R10' WHERE Soyadi = 'NET'
DELETE Kayıt Silme :
DELETE * FROM Tablom WHERE Alan1 = Deger1
SELECT ifadesinde olduÄŸu gibidir.
Kayıtları silmenin en iyi yolu normal SELECT ifadesindeki gibi kullanarak doğru kayıtları seçtikten sonra SELECT kelimesi yerine DELETE kelimesini yazmaktır.
Bir Örnek Verelim;
Soyadı NET olan müşterileri siler;
DELETE * FROM Musteri WHERE Soyadi = 'NET'
Temel SQL Bilgileri
7
●904
- 12-02-2009, 14:25:13Temel SQL ile kayıt ekleme örneği hazırlayalım.
Default.asp isminde bir dosya oluşturalım ve bunu kaydedelim.
Aşağıdaki kodu default.asp mizin üst tarafına ekliyoruz bu aşağıdaki kod veritabanı bağlantımız içindir.
MySQL veyahut Phpmyadmin ile veritabanı oluşturalım ve bu veritabanındaki değerler aşağıdaki gibi oluşturun.
Tablo Adı : Kitaplar
CREATE TABLE `Kitaplar` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`kitapadi` varchar(200) NOT NULL,
`yazar` varchar(200) NOT NULL,
`ucret` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
);
<% Dim varServer, varUser, varPass, varDb, Baglan varServer = "localhost" varUser = "root" varPass = "admin" varDb = "Kitaplar" Set Baglan = Server.CreateObject("ADODB.connection") Baglan.Open "DRIVER={MySQL ODBC 3.51 Driver};Server="&varServer&";Uid="&varUser&";Pwd="&varPass&";DB="&varDb&";" %>
Öncelikke basit bir form oluşturalım.
<form method="post" action="default.asp?action=kaydet" name="kaydet"> <table width="70%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="22%">Kitap Kayıt Formu</td> <td colspan="2"> </td> </tr> <tr> <td colspan="3" height="8"></td> </tr> <tr> <td>Kitap Adı</td> <td width="1%">:</td> <td width="77%"><input type="text" name="kitapadi" id="kitapadi" /></td> </tr> <tr> <td>Kitap Yazarı</td> <td>:</td> <td><input type="text" name="yazar" id="yazar" /></td> </tr> <tr> <td>Kitap Ücreti</td> <td>:</td> <td><input type="text" name="ucret" id="ucret" /></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="b1" value="Kaydet" /></td> </tr> </table> </form><%If Request.QueryString("action") = "kaydet" Then kitapadi = Request.Form("kitapadi") yazar = Request.Form("yazar") ucret = Request.Form("ucret") SET varKayit = Baglan.Execute("INSERT INTO Kitaplar (kitapadi, yazar, ucret) VALUES ('"&kitapadi&"', '"&yazar&"', '"&ucret&"')") Response.Write("Kayıt Başarı İle Eklendi") varKayit.Close : Set varKayit = Nothing End If%> - 12-02-2009, 22:54:52Eposta Aktivasyonu GerekmekteSQL Güzel Anlatmışsın Tebrikler...
- 13-02-2009, 01:18:28Öncelikle yine standart her uygulamamızda kullanacağımız veritabanımız aynı ve bağlantımız aynı olarak devam edelim..
Tablo Adı : Kitaplar
CREATE TABLE `Kitaplar` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`kitapadi` varchar(200) NOT NULL,
`yazar` varchar(200) NOT NULL,
`ucret` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
);
<% Dim varServer, varUser, varPass, varDb, Baglan varServer = "localhost" varUser = "root" varPass = "admin" varDb = "Kitaplar" Set Baglan = Server.CreateObject("ADODB.connection") Baglan.Open "DRIVER={MySQL ODBC 3.51 Driver};Server="&varServer&";Uid="&varUser&";Pwd=" &varPass&";DB="&varDb&";" %>Veritabanı bağlantımızı kayitlar.asp dosyamıza aynen girelim;
Listeleme için şimdi artık kod yazmaya başlayabiliriz.
<% Set varListe = Baglan.Execute("SELECT * FROM Kitaplar") %><table width="663" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="288"> Kitap Adı</td> <td width="233">Yazar</td> <td width="142">Ücret</td> </tr> <tr> <td colspan="3" valign="top"> <table width="663" border="0" cellspacing="0" cellpadding="0"> <%Do While Not varListe.Eof%> <tr> <td width="288"><%=varListe("kitapadi")%></td> <td width="233"><%=varListe("yazar")%></td> <td width="142"><%=varListe("ucret")%></td> </tr> <%varListe.MoveNext : Loop%> </table></td> </tr> </table>Evet basit bir örnek ile tablodaki verilerimizi ekrana yazdırmış olduk; dikkat etmeniz gereken bir nokta ise kodlarınızı doğru sütun ve satır içerisine yerleştirmeniz kim isterki içeriğin abuk subuk yerlerde çıkmasını buna hassasiyet gösterelim. Bir sonraki bölümde bu yazdırdığımız bölümü güncelleme, silme işlemlerini göreceğiz. - 13-02-2009, 13:07:06Evet arkadaşlar kaldığımız yerden yola devam ediyoruz.
Sıra geldi veritabanımızda bulunan kaydı nasıl güncelleriz bu konuda ufak bir örnek ile devam ediyoruz, yine aynı tablo ve bağlantımız ile kayıt güncelleme işlemi :
Tablo Adı : Kitaplar
CREATE TABLE `Kitaplar` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`kitapadi` varchar(200) NOT NULL,
`yazar` varchar(200) NOT NULL,
`ucret` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
);
<% Dim varServer, varUser, varPass, varDb, Baglan varServer = "localhost" varUser = "root" varPass = "admin" varDb = "Kitaplar" Set Baglan = Server.CreateObject("ADODB.connection") Baglan.Open "DRIVER={MySQL ODBC 3.51 Driver};Server="&varServer&";Uid="&varUser&";Pwd=" &varPass&";DB="&varDb&";" %>Bir önceki makalemizde kayıtları listelemeyi görmüştük listelenen kayıtlar ile şimdi kayıt güncellemeyi öğreneceğiz.
Bu kısım zaten default.asp dosyamızda listeleniyor sadece ufak bir değişiklik yapıyoruz ve kayıt çağırmak için gerekli bilgileri bağlıyoruz.
<% Set varListe = Baglan.Execute("SELECT * FROM Kitaplar") %> <table width="663" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="288"> Kitap Adı</td> <td width="233">Yazar</td> <td width="142">Ücret</td> </tr> <tr> <td colspan="3" valign="top"> <table width="663" border="0" cellspacing="0" cellpadding="0"> <%Do While Not varListe.Eof%> <tr> <td width="288"><a href="kayitguncelle.asp?action=duzenle&kitapid=<%=varListe("id")%>"><%=varListe("kitapadi")%></a></td> <td width="233"><%=varListe("yazar")%></td> <td width="142"><%=varListe("ucret")%></td> </tr> <%varListe.MoveNext : Loop%> </table></td> </tr> </table>Default.asp dosyamız buraya kadar
Evet buraya kadar herşey tamam burada yaptığımız değişiklik sadece <a href="kayitguncelle.asp?action=duzenle&kitapid=<%= varListe("id")%>"> kaydı çağırmamız için bir link oluşturmamız; artık bu linke tıklandığı zaman kaydımızı güncelleme sayfamızı çağıracağız, bunun için kayitguncelle.asp dosyası oluşturalım.
<% If Request.QueryString("action") = "duzenle" Then Set varSorgu = Conn.Execute("SELECT * FROM Kitaplar WHERE id='"&id&"'") %> id = katapid değerini çağırdığımızda aşağıdaki form ekrana gelecektir. <form method="post" action="default.asp?action=guncelle&kitapid=<%=varSorgu("id")%>"> <table width="44%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="24%">Kitap Adı</td> <td width="2%">:</td> <td width="74%"><input type="text" name="kitapadi" id="kitapadi" value="<%=varSorgu("kitapadi")%>"></td> </tr> <tr> <td>Yazar</td> <td>:</td> <td><input type="text" name="yazar" id="yazar" value="<%=varSorgu("yazar")%>"></td> </tr> <tr> <td>Fiyatı</td> <td>:</td> <td><input type="text" name="fiyat" id="fiyat" value="<%=varSorgu("fiyat")%>"></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="b2" value="Kaydet"></td> </tr> </table> </form> <% varSorgu.Close : Set varSorgu = Nothing %> <%End If%><%If Request.QueryString("action") = "guncelle" Then id = Request.QueryString("kitapid") kitapadi = Request.Form("kitapadi") yazar = Request.Form("yazar") fiyat = Request.Form("fiyat") Set varKaydiGuncelle = Conn.Execute("UPDATE Kitaplar Set kitapadi='"&kitapadi&"', yazar='"&yazar&"', fiyat='"&fiyat&"' WHERE id='"&id&"'") Response.Write("Tebrikler Kaydınız Güncellendi") Response.End varKaydiGuncelle.Close : Set varKaydiGuncelle= Nothing End If %>Böylece default.asp de bulunan Kitap Adına tıkladığımızda SELECT * FROM Kitaplar WHERE id='"&id&"'" değeri ile ilgili kayda ulaşacağız, sonra ilgili kayıtta Kaydet butonuna tıklandığında UPDATE Kitaplar Set kitapadi='"&kitapadi&"', yazar='"&yazar&"', fiyat='"&fiyat&"' WHERE id='"&id&"'" bu değer ile ilgili kaydın içeriğini güncellemeiş olacağız.
Bir sonraki dersimiz kayıt nasıl silini bunu göreceğiz.
%>
bazen bir tanesi için konu açılıyor..