Posted under Programlama & Visual Basic
SQL komutları kullanılarak aşağıdaki işlemler yapılabilir:
- Veritabanı nesnelerinin oluşturulması ve bu nesnelerle ilgili işlemlerin yapılması
- Bilgilerin istenilen koşullara göre görüntülenmesi ve sorgulama işlemleri
- Tablolara veri girişi yapılması
- Bilgilerin güncelleştirilmesi
- Tabloların veya tablolardaki verilerin silinmesi
- Kullanıcı ve rollerin oluşturulması, yetkilerin düzenlenmesi.
SELECT Deyimi
SELECT kolon isimleri
FROM tablo adı
WHERE koşul ifadesi;
SELECT NO,ADI,SOYADI
FROM PERSONEL
WHERE SOYADI=’KARA’;
SQL Komutları
SQL komutlarını ikiye ayırabiliriz.
1. DDL (Data Definition Language - veri tanımlama dili)
2. DML (Data ManipulationLanguage - veri işleme dili)
Yardımcı Deyimler
| FROM | Sorgulamanın yapılacağı tabloyu tanımlar. |
| WHERE | Sorgulamada kullanılacak koşul ifadesini tanımlar. |
| GROUP BY | Bilgilerin belirlenen alanlara göre gruplandırılmasını sağlar. |
| HAVING | Her bir grup için uyulması gereken koşul tanımlanır. |
| ORDER BY | Seçilen kayıtların belirli alan veya alanlara göre sıralanmasını sağlar. |
SQL Veri Tipleri
| NUMBER | SQL deyimleri içinde tüm sayısal verileri tanımlamak üzere NUMBER veri türü kullanılır. Sayısal veriler en fazla 38 haneye kadar olabilir.MIKTAR NUMBER(8): 8 hanelik yer ayrılır.
MIKTAR NUMBER(7,2):virgülden önce 7 hane, virgülden sonra 2 hane |
| CHAR | Sabit uzunluklu karakter dizgilerini tanımlamak için yapılabilir. En fazla 255 karakter olabilir. Uzunluk tanımlanmazsa 1 olarak alınır. ADI CHAR(10) |
| VARCHAR2 | Değişken uzunluklu karakter dizgilerini tanımlamak için kullanılır. Verinin uzunluğu en büyük değeri verecek şekilde tanımlanır. Uzunluk en fazla 2000 karakter olabilir.ADRES VARCHAR2(100) |
| LONG | Değişken uzunluklu karakter dizgilerini tanımlamak için kullanılır. En fazla 2 Gigebyte veri içerebilir. Long veri türünü içeren kolonlar index kolonu olarak kullanılamaz ve bir tabloda en fazla bir kolon LONG olabilir. |
| RAW/LONG RAW | İkili yada byte dizgiler biçimindeki verileri saklamak için kullanılabilir. RAW ile tanımlanan veriler sadece okunabilir veya saklanabilir. Üzerinde değişiklik yapılamaz. |
| DATE | Her DATE veri türü ile belirtilen kolon yüzyıl, yıl, ay, gün, saat, dakika, saniye verilerini içerecek biçimde saklanır. |
| ROWID | Her tablonun satırlarını simgeleyen bir satır tanımlayıcısı bulunmaktadır. Bu tanımlayıcı satırların adreslerini içermektedir. Bu bilgilere dayanarak bazı işlemlerle ilgili satırlara çok hızlı erişme olanağı elde edilebilir. 00000029.0000.0002 (blok.satır.dosya) |
SQL OPERATÖRLERİ
- Aritmetik operatörler
- Karşılaştırma operatörleri
- Mantıksal operatörler
- Küme operatörleri
- Karakter operatörleri
- Diğer operatörler
- İçiçe Sorgular: Bir sorgu altında bir başka sorgu tanımlanabilir.
1. Aritmetik Operatörler
|
( ) |
İşlemleri gruplandırma ve işlem önceliği belirleme |
|
+ |
Toplama |
|
- |
Çıkarma |
|
* |
Çarpma |
|
/ |
Bölme |
Örnek1: personelin maaşının %10’unu bir kolon halinde görmek için;
SELECT NO, ADI, SOYADI, MAAS*0.1 FROM PERSONEL
Örnek2: Yukarıdaki örnekte kolonun başlığı ‘MAAS*0.1’ olur. Kendi başlığımızı görüntülemek için;
SELECT NO, ADI, SOYADI, MAAS*1.5 “ZAMLI ÜCRET” FROM PERSONEL
2. Karşılaştırma Operatörleri
| ( ) | İşlemleri gruplandırma ve işlem önceliği belirleme |
| = | Belirtilen değere eşit olanlar |
| > | Belirtilen değerden büyük olanlar |
| < | Belirtilen değerden küçük olanlar |
| !=,^=,<> | Belirtilen değere eşit olmayanlar |
| >= | Belirtilen değerden büyük veya eşit olanlar |
| <= | Belirtilen değerden küçük veya eşit olanlar |
| IN | Bir grup değer içinde olanlar |
| NOT IN | Bir grup değer içinde olmayanlar |
| ANY | Verilen bir koşula uygun olarak, bir grup içindeki değerlerden birini belirler |
| ALL | Verilen bir değeri bir liste içindeki tüm değerlerle karşılaştırır. |
| BETWEEN x AND y | x ve y değeri arasındaki değerleri belirler |
| NOT BETWEEN x AND y | x ve y değeri arasında olmayan değerleri belirler. Yani x’den küçük, y’den büyük değerler. |
| IS NULL | Null (yokluk) değerine sahip olanları tanımlar |
| IS NOT NULL | Null değerine sahip olmayanları tanımlar |
| EXISTS | Kendisine bağlı sorgulama sonucunda en az bir satır bulunabilirse TRUE değerini alır. |
| LIKE | Belirli bir kalıba uygun olan bilgileri tanımlar |
Örnek1: personel içinde adı “S” ile başlayanlar
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE ADI LIKE ‘S%’;
Örnek2: maaşı 70 ile 120 milyon arası olanlar
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE MAAS BETWEEN 70000000 AND 120000000;
3. Mantıksal Operatörler
İki yada daha fazla ifade arasında kullanılırlar. Sonucun doğru yada yanlış olmasına göre işlemler yapılır.
| ( ) | İşlemleri gruplandırma ve işlem önceliği belirleme |
| AND | Her iki kıstasta doğru ise işlem yapılır |
| OR | Kıstaslardan biri doğru ise işlem yapılır |
| NOT | Kıstasın yanlış olması durumunda işlem yapılır |
Örnek : Maaşı 100 milyondan büyük olanlar ve 10 numaralı bölümde çalışanlar
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE CALISTIGI_BOLUM=’10’ AND MAAS>100000000;
4. Küme Operatörleri
| UNION | Verilen koşul ifadesine uygun olarak, çift kayıtları gözardı ederek her iki kümedeki tüm kayıtları seçer |
| UNION ALL | Verilen koşul ifadesine uygun olarak, çift kayıtlarda dahil tüm kayıtları seçer |
| INTERSECT | Sadece her iki koşulada uyan kayıtları seçer |
| MINUS | Birinci kümede olan, ikinci kümede olmayan kayıtları seçer |
Örnek1: Soyadı “D”, adı “E” ile başlayan personel
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE ADI LIKE ‘E%’
UNION
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE SOYADI LIKE ‘D%’;
Örnek2: Soyadı “D ile başlayan, ancak adı “E” ile başlamayan personel
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE ADI LIKE ‘E%’
MINUS
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE SOYADI LIKE ‘D%’;
5. Karakter Operatörleri
| !! | Tanımlanmış olan iki alanın tek bir alan bilgisi şeklinde birleştirerek işlem yapılmasını sağlar |
Örnek : SELECT ADI!!SOYADI “ADI SOYADI” FROM PERSONEL;
SQL Fonksiyonları
| AVG | Belirlenen bir alan içerisindeki verilerin aritmetik ortalamasını alır. |
| SUM | Belirlenen alandaki verilerin toplanmasını sağlar. |
| MAX | Belirlenen alandaki en büyük değerin bulunmasını sağlar |
| MIN | Belirlenen alandaki en küçük değerin bulunmasını sağlar |
| ROUND | Belirlenen alandaki sayının virgülden sonraki kısmının yuvarlatılmasını sağlar |
| SQRT | Belirlenen alandaki değerin karakökünün alınmasını sağlar |
| SUBSTR | Belirlenen alandaki değerin istenilen karakterleri seçilebilir |
Örnek1: En düşük maaş
SELECT MIN(MAAS) FROM PERSONEL;
Örnek2: Ortalama maaş
SELECT AVG(MAAS) FROM PERSONEL;
VERİ TANIMLAMA (DDL) İŞLEMLERİ
1. TABLOLARIN OLUŞTURULMASI (CREATE TABLE):
CREATE TABLE tabloadı (kolon isimleri ve veri türleri)
Örnek: CREATE TABLE BOLUM
(BOLUM_NO NUMBER(2), BOLUM_ADI CHAR(10));
2. INDEX OLUŞTURMA (CREATE INDEX):
CREATE INDEX (index adı ON tablo adı (alan adı))
Örnek: CREATE INDEX PERSON_IDX ON PERSONEL (ADI,SOYADI);
3. EŞTANIMLARIN OLUŞTURULMASI (CREATE SYNONYM):
CREATE SYNONYM tablo adı FOR kullanıcı adı.tablo adı;
CREATE SYNONYM PER FOR PERSONEL;
* Eştanımlar çoğunlukla başka kullanıcıların tablolarına erişilmesinde kullanılır. Böyle bir amaç için eştanım oluşturma
CREATE SYNONYM kullanıcı adı.tablo adı
FOR kullanıcı adı.tablo adı;
Örnek : CREATE SYNONYM USTA.PER
FOR SYSTEM.PERSONEL;
* Ancak USTA kullanıcısının bu eştanımı kullanabilmesi için :
GRANT SELECT ON MUSTAFA TO USTA à MUSTAFA kullanıcısı USTA kullanıcısına SELECT yetkisi veriyor.
* Eştanımların tüm kullanıcılar için oluşturulması:
CREATE PUBLIC SYNONYM tablo adı
FOR kullanıcı adı.tablo adı;
Örnek: CREATE PUBLIC SYNONYM ABONE
FOR USTA.ABONE; à
4. GÖRÜNÜMLERİN OLUŞTURULMASI (CREATE VIEW):
CREATE VIEW view adı AS
SELECT alan adı
FROM tablo adı
WHERE koşul ifadesi;
Örnek1: Personel tablosundan 30 numaralı bölümde çalışan personelin bulunduğu bir görünüm oluşturmak için
CREATE VIEW PER_30 AS
SELECT NO, ADI, SOYADI
FROM PERSONEL
WHERE CALISTIGI_BOLUM=’30’;
Örnek2: İki tablo kullanılarak görünüm
CREATE VIEW PER_30_2 AS
SELECT NO, ADI, SOYADI,BOLUM_ADI
FROM PERSONEL,BOLUM
WHERE CALISTIGI_BOLUM=BOLUM_NO;
* Görünümlerin ortak kullanımı için yetki verilmesi :
GRANT SELECT ON PER_30_2 TO PUBLIC;
5. TABLO TANIMLARINDA DEĞİŞİKLİK YAPILMASI (ALTER TABLE):
Daha önce oluşturulmuş bir tabloya yeni alan ekleme yada daha önce tanımlanmış alan boyutunu değiştirmek için kullanılır.
ALTER TABLE tablo adı ADD|MODIFY kolon adı;
Örnek1: Personel tablosuna ADRES adlı yeni bir alan ilave etmek için
ALTER TABLE PERSONEL
ADD ADRES CHAR(50);
Örnek2: ADI isimli kolonun boyutunu değiştirip 20 karakter yapmak için
ALTER TABLE PERSONEL
MODIFY (ADI CHAR(20));
6. VERİ TABANI NESNELERİNİN SİLİNMESİ (DROP):
DROP TABLE tablo adı;
DROP INDEX indeks adı;
DROP SYNONYM eştanım adı;
DROP VIEW görünüm adı;
SQL’DE VERİ İŞLEME (DML) DEYİMLERİ
DML komutları yardımıyla veritabanındaki bilgilerin sorgulanması, kayıt ekleme, kayıt silme, bilgilerin güncellenmesi, süzme ve sıralama işlemleri yapılabilir.
1. Tablolara satır ekleme (INSERT):
INSERT INTO BOLUM
VALUES(‘80’, ‘ARASTIRMA’);
2. Bilgilerin Güncellenmesi (UPDATE):
Örnek1: 80 nolu bölümün adını ARASTIRMAà HALKLA İLİŞKİLER
UPDATE BOLUM
SET BOLUM_ADI=’HALKLA İLİŞKİLER’
WHERE BOLUM_NO=’80’;
Örnek2: maaşlara %45 oranında zam yapıyoruz
UPDATE PERSONEL
SET MAAS=1.45*MAAS;
3. Tablo Satırlarının Silinmesi (DELETE):
DELETE FROM BOLUM
WHERE BOLUM_NO=’10’; //koşul olmazsa tüm kayıtlar silinir
4. Verilerin Sıralanması (ORDER BY):
SELECT NO,ADI,SOYADI
FROM PERSONEL
ORDER BY NO,ADI
ASC //küçükten büyüğe doğru sırala
5. Verilerin Gruplandırılması (GROUP BY):
Örnek:Tüm personelin bölümlere göre toplam maaşını bulmak için
SELECT CALISTIGI_BOLUM,SUM(MAAS)
FROM PERSONEL
GROUP BY CALISTIGI_BOLUM;
HAVING SUM(MAAS)<1000000000; //koşul
6. Parametrik Sorgulama: Parametrik sorgulama yapmak için & işareti ile başlayan bir değişken tanımlanmalıdır. SQL çalıştırıldığında, bu değişken için değer girilmesi beklenir. Değer girilince sorgu ona göre çalışır ve sonuçlar listelenir.
SELECT NO,ADI,SOYADI FROM PERSONEL
WHERE CALISTIGI_BOLUM=&B;
SELECT NO,ADI,SOYADI,MAAS
FROM PERSONEL
WHERE NO IN
(SELECT NO
FROM AVANS
WHERE AVANS_MIK>100000000);
8. İlişkisel Sorgulama: İki tabloyu belirli bir kolona göre ilişkilendirerek, her iki tablonun kolonları bir sonuç olarak listelenebilir.
SELECT NO,ADI,SOYADI,CALISTIGI_BOLUM, BOLUM_ADI
FROM PERSONEL ,BOLUM
WHERE CALISTIGI_BOLUM=BOLUM_NO;
bimeks borland component database delphi delphi.net delphi dersleri firebird help interbase makale oracle seminer software sybase veritabanı web