SQL deyimleri

+ Yorum Gönder
Webmaster ve HTML-PHP-ASP-JAVA Bölümünden SQL deyimleri ile ilgili Kısaca Bilgi
  1. 1
    tuanamlk
    Usta Üye
    Reklam

    SQL deyimleri

    Reklam



    SQL deyimleri

    Forum Alev
    SQL Deyimleri

    SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından sorgulama yapmak için SELECT, ekleme yapmak için INSERT güncelleme yapmak için UPDATE, silme yapmak için DELETE, yeni tablo oluşturmak için CREATE TABLE gibi komutlara sahiptir. Bu komutlar işlevlerine göre şu şekilde kategorilendirilir:
    • DDL (Data Definition Language): Veri tanımlama deyimleri.
    • DML (Data Manuplation Language) : Veri düzenleme dili.
    • DCL (Data Control Language): Veri kontrol dili.
    A. DDL (DATA DEFİNİTİON LANGUAGE) DEYİMLERİ

    DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL deyimleri şunlardır:
    • CREATE
    • ALTER
    • DROP



    CREATE Deyimi
    CREATE deyimi tablo ve view gibi bir veritabanı nesnesi yaratmayı sağlar.

    Tablo Yaratmak:
    Veritabanı üzerinde bir tablo yaratmak için CREATE deyimi kullanılır.

    Yapısı:

    CREATE <tablo adı>
    Örnek:
    CREATE TABLE Musteri( mus_id char(4) NOT NULL mus_ad varchar(40) NULL, ili varchar(20) NULL, ulke char(2) NULL, adres varchar(30) NULL)
    NOT: Char, varchar, integer, numeric gibi sözcükler tablo alanlarındaki temsil edilecek verinin türünü belirtir. SQL'de SMALLINT, VARCHAR, DECIMAL(x,y), FLOAT(x;y), DATE, LOGICAL, TIME, TIMESTAMP, GRAPHIC(n) gibi alan veri türleri vardır.

    Örnek:

    CREATE TABLE personel(Sskno Integer,Adi Varchar(20) not null,Soyadi Varchar(20) not null,Departman integer)
    NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Bütün hakları saklıdır. Ticari olarak kullanılamaz. Bakınız: www.farukcubukcu.com
    Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır.

    ALTER DEYİMİ
    Daha önce yaratılmış nesnenin değiştirilmesini sağlar. Örneği bir tablonun tasarımını değiştirmek gibi.

    Örnek:

    ALTER TABLE MusteriADD tel varchar(20) NOT NULL
    Yukarıdaki deyimde musteri tablosunun alanlarına tel adlı bir alan daha eklenmiştir.


    DROP DEYİMİ
    Bir nesnesin silinmesini sağlar.

    Örnek:

    DROP TABLE MUSTERI

    Müşteri tablosunun verilerini ve tabloyu siler.


    B. DML (DATA MANIPULATION LANGUAGE) DEYİMLERİ

    Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir.

    · SELECT
    · INSERT
    · UPDATE
    · DELETE





    SELECT DEYİMİ
    Veritabanındaki verilere erişmenin, diğer bir deyişle onları görmenin ya da onları elde etmenin en sık kullanılan yöntemidir. Genellikle bir ya da daha çok tablonun bütün alanları ya da belli alanları için SELECT deyimi yazılır.

    Temel Yapısı:

    SELECT [ALL] [DISTINCT] liste [INTO yeni tablo] FROM [tablo]
    [WHERE ifade]
    [GROUP BY ifade]
    [HAVING ifade]
    [ORDER BY ifade]
    [COMPUTE ifade]

    Seçeneklerin Anlamları:

    ALL sözcüğü bütün satırların sonuç listesinde görünmesini sağlar.

    DISTINCT sözcüğü sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar.

    liste parametresi veriden seçilecek kolonu (sütunu) belirtir.

    INTO sözcüğü yeni bir tablo yaratmayı sağlar.

    yeni tablo parametresi sorgu sonucu yaratılacak tabloyu belirtir.

    FROM sözcüğü belli bir tablonun seçilmesini sağlar.

    tablo parametresi ise sorgulanacak olan tablo ya da tabloları, görünümleri belirtir.

    WHERE bir koşulu belirterek sadece o kuşula uyan kayıtların seçilmesini sağlar.

    GROUP BY Kayıtların gruplanmasını sağlar. HAVING deyimiyle de ara toplamların alınmasını sağlar.

    HAVING sözcüğü de kayıtlarda kısıtlama yapar ancak hesaplamayı etkilemez.

    ORDER BY sözcüğü ise belirtilen kolona göre listelenen kayıtları sıralamayı sağlar. Sıralama artan (ASC) ya da azalan (DESC) olabilir

    COMPUTE sözcüğü ise hesaplama yapar. Tipik olarak SUM, AVG, MIN, MAX, COUNT gibi fonksiyonları kullanarak hesaplama yapar.

    Örnek:

    SELECT * FROM musteri

    Yukarıdaki deyim ile musteri tablosundaki bütün bilgiler elde edilir. SELECT deyiminin ardından kullanılan * (asterisk) işareti bütün kayıtlar anlamına gelir. Bu deyimin aynısı (aynı sonucu vereni) şu şekilde de yapılabilir:

    Örnek:

    SELECT kod, ad, soyad, grup, il, bakiye FROM musteri

    Müşteri tablosu:

    kodu
    Ad
    Soyad
    grup
    il
    bakiye
    1
    Ahmet
    Uzun
    ithal
    İZMİR
    300000
    2
    Ayşe
    Yılmaz
    ithal
    ANKARA
    400000
    3
    Mehmet
    Yılmaz
    ihraç
    ANKARA
    100000
    4
    Hüseyin
    Uzun
    ihraç
    İZMİR
    600000
    5
    Nuri
    Gezer
    ithal
    İZMİR
    900000
    6
    Fatma
    Örnek
    ihraç
    İSTANBUL
    300000

    Sorgunun sonucu:

    1
    Ahmet
    Uzun
    ithal
    İZMİR
    300000
    2
    Ayşe
    Yılmaz
    ithal
    ANKARA
    400000
    3
    Mehmet
    Yılmaz
    ihraç
    ANKARA
    100000
    4
    Hüseyin
    Uzun
    ihraç
    İZMİR
    600000
    5
    Nuri
    Gezer
    ithal
    İZMİR
    900000
    6
    Fatma
    Örnek
    ihraç
    İSTANBUL
    300000

    SELECT deyimi ile sadece belli kolonlar (alanlar) da seçilebilir:

    ARAMA

    Tablo: Arama Kriterleri:
    Karşılaştırma operatörleri
    (=, >, <, >=, <>, !=, !<, !>
    Aralık belirtme
    BETWEEN ve NOT BETWEEN
    Liste
    IN ve NOT IN
    String karşılaştırma
    LIKE ve NOT LIKE
    Bilinmeyen değerler
    IS NULL ve IS NOT NULL
    Koşulların birleştirilmesi
    AND, OR
    Olumsuzlaştırma
    NOT

    ÖRNEK:

    SELECT * from musteri WHERE bakiye BETWEEN 100000 AND
    3000000

    Aynı anlamda:

    SELECT * from musteri WHERE bakiye <= 100000 AND
    >= 3000000

    ÖRNEKLER:

    SELECT * FROM MUSTERI
    WHERE borcu BETWEEN 100 AND 2000
    AND grup='özel'

    Yukarıdaki sorgulamada grubu 'özel' olan ve ayrıca da borcu değerinin 100 ile 200 arasında olanı listelenir.

    ARİTMETİK İŞLEMLER
    Aritmetik işlemleri gerçekleştirmek için belli operatörler kullanılır:


    OPERATÖRLER AÇIKLAMALARI
    + Toplama
    - Çıkarma
    / Bölme
    * Çarpma


    SELECT borcu, borcu*2 FROM MUSTERI






  2. 2
    tuanamlk
    Usta Üye

    --->: SQL deyimleri

    Reklam



    VERİLERİ SIRALAMAK
    SELECT deyimi ile elde edilen veriler istenirse sıralanabilir. Sıralama belirtilen bir ya da daha fazla kolona göre yapılır. Bunun dışında sıralama ASC (ascending-artan) ya da DESC (descending-azalan) olarak belirtilebilir.

    Kullanım Biçimi:

    SELECT kolon_listesi
    ORDER BY kolon adı ASC ya da DESC

    ORDER BY sözcüğü ise verilerin istenilen alan göre sıralı olarak listelenmesini sağlar.

    SELECT * FROM musteri
    ORDER BY ad

    Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtlar ad alanına göre sıralı olarak listelenirler.

    GRUPLANDIRMA İŞLEMLERİ
    Gruplama seçenekleri tablo satırlarının belli alanlarına göre gruplandırılmasını sağlar.

    GROUP BY sözcüğü ise yapılan bir gruplandırma işlemine göre listeleme sağlar.

    Örnek:

    SELECT grup, sum(bakiye) FROM musteri
    GROUP BY grup

    Yukarıdaki örnekte müsteri tablosundaki bakiye alanı grup kodu bazında toplanır.

    GROUP BY ile yapılan gruplandırma (alt toplamlar) işlemi içinde ayrıca HAVING sözcüğü kullanılarak bir koşul da verilebilir.

    SELECT grup, sum(bakiye) FROM musteri
    GROUP BY grup
    HAVING il = 'İZMİR'

    Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtların bakiye bilgiler gruplarına göre ara toplam alınır, bir de il bilgisine göre filtrelenir.

    NOT: Gruplama yapılmayan he sütun GROUP BY deyiminde kullanılması gerekir:

    Örnek:

    SELECT PRODUCTID, CATEGORYID, SUM (UNITPRICE) FROM PRODUCTS
    GROUP BY PRODUCTID, CATEGORYID

    COMPUTE SÖZCÜĞÜ
    COMPUTE sözcüğü toplama fonksiyonunun kullanarak query sonucunda bir toplam satırı üretir. COMPUTE BY sözcüğü ise ek toplam satırları yaratır.

    Kullanım Biçimi:

    COMPUTE fonksiyon (kolon_adı)

    Örnek:

    Sipariş tablosu:
    tarih
    Mkodu
    ürün
    adet
    fiyatı
    1/1/1999
    1
    X-TV
    10
    100000
    2/1/1999
    1
    X-TR
    10
    100000
    2/1/1999
    2
    X-TV
    15
    100000
    2/1/1999
    3
    X-KT
    10
    200000
    3/1/1999
    3
    X-KT
    20
    150000
    2/2/1999
    1
    X-TV
    22
    400000

    SELECT ürün, adet
    FROM siparis
    ORDER BY ürün
    COMPUTE SUM(adet)

    Yukarıdaki örnekte adet kolonunun toplamı alınır.

    Sonucu:

    ürün adet
    X-KT 10
    X-KT 20
    X-TR 10
    X-TV 10
    X-TV 15
    X-TV 22
    Sum
    ===================
    87

    INSERT DEYİMİ
    Tabloya veri girmek için kullanılır.

    INSERT INTO <tablo adı>
    (sütunlar listesi) VALUES (değerler listesi)

    ÖRNEK:

    INSERT INTO CARIANA
    (kodu, adi, grubu, adresi)
    VALUES ('600', 'FARUK', 'A', '76 sokak no 5')


    Örnek: INSER INTO deyimi ile bir tabloyu diğer bir tablodan doldurmak:

    use ornek
    INSERT INTO cariyedekf
    (kodu, adi, grubu, adresi)
    (SELECT kodu, adi,
    case grubu
    when 'A' THEN 'ITHAL'
    when 'B' THEN 'YERLİ'
    ELSE 'DİĞER'
    end,
    adresi from cariana)


    UPDATE DEYİMİ:
    Tablodaki verileri güncellemek için kullanılır. Genellikle güncelleştirilecek satırı belirtmek için WHERE sözcüğüyle kullanılır.

    Mevcut bir tablodaki satırları değiştirmek için UPDATE deyimi kullanılır. UPDATE deyimi sadece bir tablo üzerinde kullanılmalıdır. UPDATE deyimi ile SET ve WHERE sözcüğü kullanılır.

    SET sözcüğü değiştirilecek kolonları ve değerleri belirtir. WHERE sözcüğü ise değiştirilecek satırı belirtir.

    Kullanım biçimi:

    UPDATE tablo
    SET kolon = ifade
    WHERE arama_koşulu

    Örnek: Aşağıdaki örnekte fiyat değerini %10 artırır.

    UPDATE siparis
    SET fiyatı= fiyatı * 1.1


    Örneğin bir kaydı düzeltmek istersek ;

    UPDATE Musteri
    SET Ad = 'Nuri Yılmaz'
    WHERE kod='1';

    Örneğin tüm musterilerin bakiyesini %10 artırmak istediğimizde;

    UPDATE Musteri
    SET bakiye=bakiye*1.1;

    DELETE DEYİMİ
    Bir tablodaki verileri silmek için DELETE komutu kullanılır. Örneğin Öğrenci tablosundaki tüm verileri silmek için;

    DELETE * from musteri;

    Tabloda, bakiyesi 1000'den küçük olan müşterilerin satırlarını silmek için:

    DELETE * FROM musteri WHERE bakiye <=1000

    Kullanım biçimi:

    DELETE tablo
    WHERE arama_koşulu

    Örnek: Tablodan satır silmek

    Aşağıdaki örnekte müşteri tablosundan 'B' grubuna sahip olan müşteriler silinir.

    DELETE musteri
    WHERE grubu = 'B'


    C. DCL (DATA CONTROL LANGUAGE) DEYİMLERİ

    Veritabanındaki kullanıcı haklarını düzenlemek için kullanılan deyimlerdir. Örneğin GRANT, DENY, REVOKE gibi.

    Örnek:

    USE NorthwindGRANT SELECT ON Stok TO PUBLIC
    NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Bütün hakları saklıdır. Ticari olarak kullanılamaz. Bakınız: www.farukcubukcu.com
    Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır.

    GRANT DEYİMİ
    Aşağıdaki örnek Ayşe adlı kullanıcı veritabanı ve tablo oluşturma izni verilir:

    GRANT CREATE DATABASE, CREATE TABLETO ayşe
    Gözden Geçirme


    1. SQL deyimleri hangi gruplara ayrılır.
    2. SELECT deyiminin kullanım şekillerini açıklayınız?
    3. INSERT deyiminin amacı nedir?
    4. UPDATE deyiminin amaçları nelerdir?







+ Yorum Gönder
5 üzerinden | Toplam : 0 kişi