Zihin Geliştirme Merkezi

KOOLPA

Zihin Geliştirme Merkezi

 

SQL Hakkında Bilmemiz Gereken Temel Bilgiler Ve Örnekler

 KooLpa Bilgisayar / İnternet Katagorisinde ve  Network Forumunda Bulunan  SQL Hakkında Bilmemiz Gereken Temel Bilgiler Ve Örnekler Konusunu Görüntülemektesiniz.=>Yapısal Sorgulama Dili olan SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için standart kullanımı olan bir dildir. Standart bir dil olmasına karşılık, ...


Geri git   Zihin Geliştirme Merkezi > KooLpa Bilgisayar / İnternet > Network

Üye ol Bloglar Yardım Üye Listesi Ajanda Forumları Okundu Kabul Et

Cevapla

 

LinkBack Seçenekler Stil
Alt 28-02-2007, 01:08   #1 (permalink)
Moderator
 
bozkurt - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2006
Mesajlar: 223
Tecrübe Puanı: 3 bozkurt is on a distinguished road
Arrow SQL Hakkında Bilmemiz Gereken Temel Bilgiler Ve Örnekler


Yapısal Sorgulama Dili olan SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için standart kullanımı olan bir dildir. Standart bir dil olmasına karşılık, çeşitli veritabanlarında SQL kullanımları arasında farklılıklar vardır. SQL komutları ile, tablolara yeni kayıt girme, varolan kayıtları sorgulama (arama ve listeleme), varolan bilgileri değiştirme ve varolan kayıtları silme işlemleri yapılabilir.


SQL (STRUCTURED QUERY LANGUAGE)


Üzerinde sql komutlarını uygulayacağımız, örnek olarak ozluk ve notlar tablosundan birkaç kayıt verilsin.

Ozluk tablosundaki alan isimleri ve örnek veriler;

ogr_no adi soyadi cinsiyeti
88050071 Muhittin Altınkaya E
89050020 Selda Anar K
91050099 Yahya Demircan E

Notlar tablosundaki alan isimleri ve örnek veriler;
ogr_no kodu donem sube vize final basari
88050071 A308 2003-04/2 A 45 60 60
88050071 A401 2003-04/1 B 50 94 94
89050020 A308 2003-04/2 A 50 50 50
89050020 A307 2003-04/1 A 80 40 45
91050099 A308 2003-04/2 A 20 60 50
91050099 A308 2003-04/2 B 60 60 66
91050099 A401 2003-04/1 A 80 80 94
91050099 A445 2003-04/1 A 0 0 0
91050099 A445 2003-04/1 A 60 60 66

Bu noktadan sonraki örnekleri yukarıdaki değerleri göz önünde tutarak inceleyiniz.


SQL FONKSİYONLARI

SQL�de kullanılan fonksiyonlar vardır, bu fonksiyonlar ekrana sadece tek değer görüntülerler.

SUM(DISTINCT] alan_adi) Belirtilen alan için toplam fonksiyonu (sayısal alanlarda)

COUNT(*) Toplam kayıt sayısı

COUNT(DISTINCT alan_adi) Belirtilen alana göre farklı olan kayıtların sayısı

MAX([DISTINCT] alan_adi) Belirtilen alanda en büyük değer

MIN(DISTINCT] alan_adi) Belirtilen alanda en küçük değer

AVG([DISTINCT] alan_adi) Belirtilen alanda ortalama değeri.

DISTINCT parametresi ile belirtilen alanda bulunan bilgilerden aynı olanlarından sadece birinin seçilmesini sağlar.

Örnek 1:
SELECT COUNT(*) FROM notlar.

Sonucunda ekrana gelecek kayıt sayısı 9 dur.

Örnek 2:
SELECT COUNT(DISTINCT ogr_no) FROM notlar.
Sql ifadesinde ekrana gelecek kayıt sayısı 3 olacaktır.

Örnek 3:
SELECT MAX(basari) FROM notlar.

En büyük basari notunu, ekrana 94 olarak görüntüler. En büyük değer kaç tane olursa olsun bir tanesi görüntülenir.


Örnek 4:
SELECT COUNT(*) FROM ozluk.

Ozluk tablosundaki kayıt sayısını 3 olarak verecektir.

SORGULAMA

SELECT [ALL|DISTINCT] { *|alan_adi_listesi}
[INTO değişken_listesi ]
FROM tablo-ismi
[WHERE koşul]
[GROUP BY alan_adi1 [ , alan_adi2] ...]
[HAVING search-condition]
[ORDER BY siralama_alanlari]

şeklinde genel bir ifadesi vardır.


Buradaki ve genelde bilgisayar dünyasında yardım (help) menülerinde kullanılan işaretler,

[ ] seçimlik
{ } zorunlu
< > zorunlu
| veya anlamına gelmektedir.

Şartsız kayıt sorgulama:

Herhangi bir tabloya ait bilgi alanlarındaki bilgilerin listesini almak için;

SELECT FROM .

ifadesi kullanılır.

Örnek 1:
SELECT adi, soyadi FROM ozluk.

Ozluk tablosundaki tüm öğrencilerin adını ve soyadını ekrana görüntüleyecektir.

Örnek 2:
SELECT vize*10 FROM notlar.

Notlar tablosundaki tüm öğrencilerin vize notunu 10 ile çarpımını ekrana görüntüleyecektir. Burada vizelerin 10 ile çarpımı sadece ekrana görüntülenecek tabloda ise değişmeyecektir.

Örnek 3:
SELECT SUM(basari) FROM notlar.

Öğrencilerin başarı notlarının toplamını ekrana verecektir.

Örnek 4:
SELECT adi + soyadi FORMAT �x(25)� FROM ozluk.

Öğrencilerin adı ve soyadını bitişik yazan SQL ifadesidir.

Bu durumda iki alanın birleşmesi sonucunda karakter sayısı artacağı için yeni bir format belirtmek gerekir.Karakter alanlarda varsayılan görüntüleme 8 karakterdi, burada iki bilinin birleşmesi yeni bir bilgi alanı gibi davranacağından format belirtmek gereklidir.

Örnek 5:
SELECT * FROM notlar.

Notlar tablosundaki bütün bilgi alanlarının içeriklerini ekrana görüntüleyecektir (* joker gibi kullanılmaktadır,�*� ile kullanımda select ile from arasına başka ifade yazılmaz).

Örnek 6:
DEF VAR sayi AS INT
SELECT COUNT(*) INTO sayi FROM notlar.

Şeklinde bir kullanımla kayıt sayısı, �sayi� değişkeni içine aktarılmış olur, böylece elde edilen kayıt sayısı programın devamında amaca göre kullanılabilir.

Burada into parametresi kullanıldığı için sql sonucunda ekran hiçbir görüntü gelmeyecektir.


Örnek 7:
DEF VAR ksayisi AS INT.
DEF VAR ntoplam AS INT.
SELECT COUNT(*),SUM(basari) INTO ksayisi,ntoplam
FROM notlar.

Kayıt sayısı �ksayisi� değişkenine, basari notlarının toplamı da �ntoplam� değişkeni içine aktarılmış olacaktır.


Tek kayıt sorgulama:

Herhangi bir tabloya ait kayıtlardan birer tanesinin listesini almak için;

SELECT DISTINCT FROM .

ifadesi kullanılır. Burada distinct�den sonra yazılan alanların aynı olanlardan birer tanesi listelenir.

Örnek 1:
SELECT DISTINCT kodu FROM notlar.

Sorgu sonucu listelenecek kayıtlar;

Kodu
A308
A401
A307
A445

Bu örnekte notlar tablosunda bir ders, birden fazla olmasına rağmen, sadece her dersten bir tanesi görüntülenir.

Örnek 1
SELECT DISTINCT kodu, ogr_no FROM notlar.

Sorgu sonucu olarak (örnek kayıtlardan)
kodu ogr_no
A308 88050071
A401 88050071
A308 89050020
A307 89050020
A308 91050099
A401 91050099
A445 91050099

Notlar tablosunda sadece kodu ve ogr_no alanındaki kayıtlardan aynı olanlardan birer tanesini listelenmiştir.

SQL ifadelerini yazarken eğer cümle bir satırı aşıyorsa, daha anlaşılır olması açısından alt alta yazarak devam edilebilir.

Sorgu sonucu dönen kayıtları sıralama:

Herhangi bir tablodaki kayıtları herhangi bir alan adına göre azalan (artan) sırada sıralayabilmek için;

SELECT
FROM
ORDER BY [,alan_listesi] DESC | ASC.
ifadesi kullanılır (varsayılan olduğu için artan sırada olacaksa ASC kullanılmaz).

Örnek 1:
SELECT ogr_no, adi, soyadi FROM ozluk
ORDER BY soyadi DESC.

Öğrencilerin numara , ad ve soyadlarını , soyadı sıralı olarak Z�den A�ya sıralayarak ekrana görüntüler.

Örnek 2:
SELECT ogr_no, basari FROM notlar ORDER BY basari DESC.

Öğrencinin numara ve başarı notlarını, başarı notuna göre azalan sırada ekran görüntüler.

Örnek 3:
SELECT ogr_no, basari FROM notlar ORDER BY basari
DESC,ogr_no DESC.

Öğrencinin numara ve başarı notlarını, başarı notuna göre azalan sırada listelerken notu aynı olanları da numarasına göre azalan sırada ekranda görüntüler.

Şartlı kayıt sorgulama:

Bir tabloda istenilen şarta uygun kayıtların listesi için;

SELECT FROM WHERE
ifadesi kullanılır.

Örnek 1:
SELECT adi, soyadi, ogr_no FROM ozluk WHERE soyadı = � � .

Ozluk tablosundaki soyadı boş olan kayıtların ad,soyad ve numaralarını ekranda görüntüler.

Örnek 2:
SELECT ogr_no, basari FROM notlar WHERE basari = 100.

Notlar tablosundaki başarı notu 100 olan öğrencilerin numaralarını ve başarı notlarını listeler.

Bir alan içinde birden fazla değeri sağlayan kayıtları listelemek için;

Örnek 4:
SELECT adi, soyadi FROM ozluk WHERE soyadi = �demircan�
AND soyadi =�demirel�.
Bir alan içinde, birden fazla değeri sağlayan kayıtların listelenmesi, IN ifadesiyle daha kolay ve anlaşılır yazılabilir.

SELECT FROM
WHERE IN (değer1, değer2).
ifadesi kullanılır.

Örnek 5:
SELECTadi, soyadi FROM ozluk
WHERE soyadi IN (�demircan�,�demirel�).

Ozluk tablosunda soyadı demircan ve demirel olan öğrencilerin ad ve soyadlarını listeler.

Boş ve dolu alanlara göre sorgu:

Boş alanları listelemek için;

SELECT FROM WHERE IS NULL.

Örnek 1:
SELECT ogr_no, adi, soyadi FROM ozluk
WHERE cinsiyeti IS NULL.

Cinsiyet alanı boş olan öğrencilerin numaralarını, ad ve soyadlarını listeler.

Boş olmayan alanları listelemek için;

SELECT FROM
WHERE IS NOT NULL.

ifadeleri kullanılır.


Örnek 2:
SELECT ogr_no, adi, soyadi FROM ozluk
WHERE cinsiyeti IS NOT NULL.

Cinsiyet alanı boş olmayan olan öğrencilerin numaralarını, ad ve soyadlarını listeler.

Tam olmayan bilgiye göre sorgu:

İstenilen değer ile başlayan kayıtları listelemek için;
SELECT FROM
WHERE LIKE �%�.

Örnek 1:
SELECT adi,soyadi FROM ozluk WHERE adi LIKE �A%�.

Adı �B� ile başlayan kayıtların adı ve soyadını listeler.

İstenilen değer ile biten kayıtları listelemek için;
SELECT FROM
WHERE LIKE �%�.

Örnek 2:
SELECT adi,soyadi FROM ozluk WHERE adi LIKE �%A�.

Adı �A� ile biten kayıtların adı ve soyadını listeler.

İçinde herhangi bir yerde istenilen değer geçen kayıtları listelemek için;
SELECT FROM
WHERE LIKE �%%�.

Örnek 3:
SELECT adi,soyadi FROM ozluk WHERE adi LIKE �%HY%�.

Adı içinde �HY� geçen kayıtların adı ve soyadını listeler.


İki Tabloyu Beraber Sorgulama (Tabloya Alias [Geçici İsim] Verme):

SELECT FROM tablo1,tablo2 WHERE koşullar.

Birden fazla tablodan aynı anda bilgi getirilmesi gerektiğinde, ortak alanlar üzerinden birleştirme işlemleri yapılır. Birleştirme işlemi koşullar bölümünde yapılır, ortak olan alanlar eşleştirilir.

Örnek 1:
SELECT o.adi, o.soyadi, o.ogr_no, n.basari
FROM ozluk o,notlar n
WHERE o.ogr_no=n.ogr_no and n.kodu=�A308�.

A308 dersinde final notu 100 olan öğrencilerin adlarını, soyadlarını, numaralarını ve başarı notlarını listeler. Burada �o� ozluk tablosuna, �n� notlar tablosuna verilmiş geçici isimlerdir. Bu geçici isimler sayesinde sql i daha anlaşılır ve kısa yazmak mümkündür.

Örnek 2:
SELECT DISTINCT ogr_no, adi, soyadi
FROM ozluk o, notlar n
WHERE o.ogr_no = n.ogr_no AND n.kodu = �A206�.

A206 dersini alan tüm öğrencilerin numaralarını, ad ve soyadlarını listeler.

Kayıtları Gruplama:

Kayıtları, belirli alanlara göre gruplayarak sorgu yapılmasını sağlar.

Örnek 1:
SELECT kodu,count(*) FROM notlar
WHERE ogr_no = �91050099�
GROUP BY ogr_no,kodu.

Bu örnekte 91050099 nolu öğrencinin, aldığı dersleri ve bu dersleri kaç kez aldığını listeler. Örnek kayıtlara göre aşağıdaki sonuç elde edilir.

Kodu Count
A308 2
A401 1
A445 2

Kayıt girme:

Sql de tablolara yeni kayıt ekleme �Veri İşleme� bölümünde anlatılmıştır.

Kayıt güncelleme:

Sql de tablolarda varolan kayıtları güncelleme (bilgi düzeltme) işlemi �Veri İşleme� bölümünde anlatılmıştır.

Kayıt silme:

Sql de tablolardan varolan kayıtları tamamen silme işlemi �Veri İşleme� bölümünde anlatılmıştır.


SQL VERİTABANI KOMUTLARI

Sql de veritabanı komutları kalıcıdır, hatırlanırsa 4GL deki gibi oluşturulan geçici tablolar program durduğunda yok olmaktaydı.

Tablo oluşturma:

Yeni bir tablo oluşturmaya yarar.

CREATE TABLE alan1 {tip} [özellikler],
alan2 {tip} [özellikler],

[Unique (alan1,�, alan2)].

Özellikler, 4GL de değişken özelliklerini taşımaktadır..


Örnek 1:
CREATE TABLE ozluk1
(ogr_no char( not null,
adi char(15) not null,
soyadi char(15) not null,
sinifi int,
d_tarihi date,
cinsiyeti char(1),
ilce_kodu char(4) LABEL Doğum Yeri�,
harc_kredi logical,
adres1 char(30),
adres2 char(30),
adres3 char(30));

Ozluk tablosunun özelliklerini hatta aynısını SQL komutunu ile yukarıdaki gibi �ozluk1� tablosu oluşturulmaktadır.

�Not Null� özelliği bu alanların zorunlu olarak doldurulması yani boş geçilemez olduğunu ifade etmektedir.


Tablo adı değiştirme:

�Alter� komutu ile tablo yapısı değiştirilir.

Bir tablonun adı da değiştirilebilir.
ALTER TABLE
RENAME TABLE .

Tabloya alan ekleme:

Tablolara yeni bir alan eklenebilmektedir.
ALTER TABLE
ADD tip [[Label � ��] [Format][Column Label]].




Tablodan alan silme:

Var olan alanlar silinebilir.
ALTER TABLE
DROP .

Tabloda alan adları değiştirme:

Bir tabloya ait alanların da adı değiştirilebilir.
ALTER TABLE
RENAME TABLE .

Tabloda alan güncelleme:

Var olan alanların özellikleri değiştirilebilmektedir.
ALTER TABLE
MODIFY tip [[Label � ��] [Format]
[Column Label]].

Örnek 1:
ALTER TABLE ozluk1
ADD baba_adi CHAR (15).

Ozluk1 tablosuna öğrencinin baba adını girilebilmesi için, �baba_adi� adında bir alan eklenmiştir..

Örnek 2:
ALTER TABLE ozluk1
MODIFY baba_adi CHAR (25);

Ozluk tablosunda var �baba_adi� alanını 25 olarak genişleten SQL komutunu yazılabilir.

Örnek 3:
ALTER TABLE ozluk1
DROP baba_adi.

Ozluk1 tablosunda var olan �baba_adi� alanını silen SQL komutunu yazınız.
Örnek 4:
ALTER TABLE ozluk1
RENAME TABLE ozluk2.

�Ozluk1� tablosunun adını �Ozluk2� olarak değiştiren SQL komutudur.

Örnek 5:
ALTER TABLE ozluk2
RENAME TABLE adi ograd.

Ozluk2 tablosundaki �adi� alanının adını �ograd� olarak değiştiren SQL komutudur..

Tablo Silme:

Tablolara ihtiyaç kalmadığı zaman silmeye yarar.

DROP TABLE .

Örnek 1:
DROP TABLE ozluk2.

Ozluk2 tablosunu silen SQL komutunu yazılabilir, burada tablodaki bilgilerde yok olacaktır.
__________________

bozkurt isimli üyemiz çevrimdışıdır. (Offline)  
Digg this Post!Add Post to del.icio.usStumble this Post!Reddit!Google Bookmark this Post!Live Bookmark this Post!Propeller this post!
Alıntı ile Cevapla

Sponsor Linkler
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)

 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular

Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Atatürk hakkında bilinmesi gereken 30 şey BioNİc_qirL Mustafa Kemal Atatürk 0 20-01-2008 17:48
Heavy Metal Hakkında Bilinmesi Gereken 49 Şey ! lifeandeath Rock - Metal Bar 0 10-01-2008 23:31
Visual Basic Temel Bilgiler pReNsEs Visual Basic 0 04-06-2007 01:46
Uydu Sistemleri Hakkında Temel Bilgiler lifeandeath Uydular 9 21-03-2007 06:54
M. Kemal Atatürk Hakkında Bilmemiz Gereken 30 Şey waRdeR Mustafa Kemal Atatürk 0 17-02-2007 00:45


Bütün Zaman Ayarları WEZ +3 olarak düzenlenmiştir. Şu Anki Saat: 07:06 .


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Gizlilik Politikası | KooLpa üyeleri onay gerektirmeksizin mesaj yazabilmektedir. KooLpa' da yasalara aykırı unsurlar bulursanız buraya yazınız. En kısa zamanda gereği yapılacaktır.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206