Temel SQL Komutları

0

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İ

  1. Aritmetik operatörler
  2. Karşılaştırma operatörleri
  3. Mantıksal operatörler
  4. Küme operatörleri
  5. Karakter operatörleri
  6. Diğer operatörler
  7. 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

  1. 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;

  1. 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;

  1. 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%’;

  1. 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));

  1. INDEX OLUŞTURMA (CREATE INDEX):

CREATE INDEX (index adı ON tablo adı (alan adı))

Örnek: CREATE INDEX PERSON_IDX ON PERSONEL (ADI,SOYADI);

  1. 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; à

 

  1. 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;

  1. 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));

  1. 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’);

  1. 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;

  1. Tablo Satırlarının Silinmesi (DELETE):

DELETE FROM BOLUM
WHERE BOLUM_NO=’10’; //koşul olmazsa tüm kayıtlar silinir

  1. 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

  1. 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

  1. 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;

  1. İçiçe Sorgular: Bir sorgu altında bir başka sorgu tanımlanabilir.

 

SELECT NO,ADI,SOYADI,MAAS
FROM PERSONEL
WHERE NO IN
(SELECT NO
FROM AVANS
WHERE AVANS_MIK>100000000);

  1. İ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;

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz