Logo DB Temel Sorgu

TRANSACT SQL QUERY LANGUAGE

SELECT

SQL dilinin en temel deyimidir. Tablolarda yer alan verilerden istenilen satırlara erişmek ve onları listelemek için kullanılır.

SELECT deyiminin temel yapısı :

SELECT [ALL] liste [INTO yeni tablo] FROM [tablo]

[WHERE  ifade]

[GROUP BY ifade]

[HAVING ifade]

[ORDER BY ifade]

[COMPUTE ifade]

SELECT [DISTINCT] liste [INTO yeni tablo] FROM [tablo]

[WHERE  ifade]

[GROUP BY ifade]

[HAVING ifade]

[ORDER BY ifade]

[COMPUTE ifade]

ALL                  : Bütün satırların sonuç listesinde görünmesini sağlar.

DISTINCT        : Sadece tek olan (unique) kayıtların sonuç listesinde yeralmasını sağlar.

liste                 : Veriden seçilecek kolonu belirtir.

INTO               : Yeni tablo yaratmayı sağlar.

yeni tablo         : Sorgu sonucunda yaratılacak olan yeni tablonun adını belirtir.

FROM              : Belli bir tablonun seçilmesini sağlar.

tablo                : Sorgulanacak olan tablo ya da tabloları, görünümleri belirtir.

WHERE           : Bir koşulu belirterek sadece o koş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           : Kayıtlarda yapar ancak hesaplamayı etkilemez.

ORDER BY       : Belirtilen kolona göre listelenen kayıtları sıralamayı sağlar. Sırlama artan (ASC) ya da azalan (DESC) olabilir.

COMPUTE       : Hesaplama yapar. Tipik olarak SUM, AVG, MIN, MAX, COUNT gibi fonksiyonları kullanarak hesaplama yapar.

Örnek 1

LG_001_STCARD tablosunun tüm kolonlarının ve verilerinin listelenmesi.        

SELECT  *  FROM LG_001_STCARD

Sonuç :

LOGICALREF  ACTIVE            CARDTYPE     CODE               DEFINITION_

———– —— ——– ————————- ————————————————-

2                      0          1                      ST001              Kursun Kalem             

3                      0          1                      ST002              Kirmizi kalem              

4                      0          1                      ST003              Kokulu silgi                 

5                      0          1                      ST004              Kokusuz silgi              

6                      0          1                      ST005              05 kursun kalem                     

7                      0          1                      ST006              07 kursun kalem                     

8                      0          1                      ST007              05 kursun kalem ucu               

9                      0          1                      ST008              Aydinger kagidi           

10                    0          1                      ST009              Karton             

11                    0          1                      ST010              Aydinger kagidi 2                    

Örn2 :

LG_001_STCARD tablosundaki belli kolonların seçilmesi, verilerinin listelenmesi.

SELECT  CODE, DEFINITION_  FROM   LG_001_STCARD

Sonuç :

CODE              DEFINITION_

————— ———————————————-

ST001              Kursun Kalem

ST002              Kirmizi kalem

ST003              Kokulu silgi

ST004              Kokusuz silgi

ST005              05 kursun kalem

ST006              07 kursun kalem

ST007              05 kursun kalem ucu

ST008              Aydinger kagidi

ST009              Karton

ST010              Aydinger kagidi 2

Örn3 :

LG_001_STCARD tablosundaki CODE kolonun değeri ‘ST007’ olan satırın listelenmesi.

SELECT  *  FROM LG_001_STCARD  WHERE  CODE = ‘ST007’

Sonuç :

LOGICALREF  ACTIVE            CARDTYPE     CODE               DEFINITION_

———– —— ——– ————————- ————————————————-

8                      0          1                      ST007              05 kursun kalem ucu

Örn4 :

LG_001_STCARD tablosundaki CODE ve DEFINITION_  kolonlarının DEFINITION_  kolonuna göre sıralı olarak listelenmesi.

SELECT CODE, DEFINITION_  FROM  LG_001_STCARD  ORDER BY  DEFINITION_

Sonuç :

CODE              DEFINITION_

————— ———————————————-

ST005              05 kursun kalem

ST007              05 kursun kalem ucu

ST006              07 kursun kalem

ST008              Aydinger kagidi

ST010              Aydinger kagidi 2

ST009              Karton

ST002              Kirmizi kalem

ST003              Kokulu silgi

ST004              Kokusuz silgi

ST001              Kursun Kalem

Örn5 :

Stok fiyatlarının tutulduğu LG_001_PRCLIST tablosundaki PRICE kolonunun değerinin 1.17 ile çarpılarak ek bir kolona sonucunun yansıtılması. Kolon  isminden sonra tırnak içerisinde yazılan text o kolonun , yazılan text ile görüntülenmesini sağlar.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST

Sonuç :

STOK KODU                           FIYATI                                       KDV DAHIL

ST001                          777377.0                                  909531.08999999997

ST002                          34233.0                                   40052.610000000001

ST003                          342142.0                                  400306.13999999996

ST004                          32423.0                                   37934.909999999996

ST005                          243322.0                                  284686.73999999999

ST006                          55363.0                                   64774.709999999999

ST007                          1000.0                                     1170.0

ST008                          2000.0                                     2340.0

ST009                          25000.0                                   29250.0

ST010                          80000.0                                   93600.0

Örn6 :

Cari hesap bilgilerinin tutulduğu LG_001_CLCARD tablosundaki ADDR1 ve CITY kolonlarını “ “ / ”  işaretiyle ayırarak tek kolon gibi görünmesini sağlar.

SELECT  CODE “CARI KODU”, DEFINITION_ “Cari Unvani”, ADDR1+” / “+CITY “ILCE / SEHIR” FROM  LG_001_CLCARD

Sonuç :

CARI KODU                 Cari Unvani                              ILCE / SEHIR                                                               

—————– ————————————————— ———————————————-

C001                            Polatoglu Kirtasiye LTD STI        KADIKOY / ISTANBUL

C002                            Parlak Kirtasiye                           FERHATPASA / ISTANBUL

Örn7 :

Sadece tek olan kayıtların görüntülenmesi.

SELECT DISTINCT  *  FROM LG_001_STCARD

Örn8 :

İlk harfi “K” harfi ile başlayan stok kartı açıklamalarının listelenmesi.

SELECT  *  FROM LG_001_STCARD WHERE  DEFINITION_  LIKE ‘K%’

Örn9 :

Stok kartı açıklamasının içerisinde “K” harfi geçen satırların listelenmesi.

SELECT  *  FROM LG_001_STCARD  WHERE  DEFINITION_  LIKE  ‘%K%’

Örn10 :

Stok kartı açıklamasının ikinci harfi U ile başlayanlarının listelenmesi.

SELECT  *  FROM LG_001_STCARD  WHERE  DEFINITION_   LIKE  ‘_U%

Örn11 :

Stok kartı açılamasının ilk harfi “A” ile “H” arasındaki harflerden biri olan satırların listelenmesi.

SELECT  *  FROM  LG_001_STCARD  WHERE  DEFINITION_  LIKE  ‘[A-H]%

Örn12 :

Stok kartı açılamasının ilk harfi “A” ile “H” arasındaki harflerden biri ile başlamayan satırların listelenmesi.

SELECT  *  FROM  LG_001_STCARD  WHERE DEFINITION_  LIKE[^A-H]%

Örn13 :

İlk harfi “K” harfi ile başlamayan stok kartı açıklamalarının listelenmesi.

SELECT  *  FROM LG_001_STCARD WHERE  DEFINITION_  NOT LIKE ‘K%’

Örn14 :

Stok kartları listesinin DEFINITION_ (açıklama) kolonuna göre sıralı olarak küçükten büyüğe listelenmesi.

SELECT  *  FROM  LG_001_STCARD ORDER BY DEFINITION_  ASC

Örn15 :

Stok kartları listesinin DEFINITION_ (açıklama) kolonuna göre sıralı olarak büyükten küçüğe listelenmesi.

SELECT  *  FROM  LG_001_STCARD ORDER BY DEFINITION_  DESC

Örn16 :

Stok fiyatı 1000 ila 50000 arasında olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST WHERE PRICE BETWEEN 1000 AND 50000

Örn17 :

Stok fiyatı 50000’ den büyük olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST WHERE PRICE > 50000

Örn18:

Stok fiyatı 50000’ den küçük olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST WHERE PRICE <50000

Örn19:

Stok fiyatı 50000’ den küçük veya eşit olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST WHERE PRICE <=50000

Örn20:

Stok fiyatı 50000’ den büyük veya eşit olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST WHERE PRICE =>50000

Örn21:

Stok fiyatı 50000’  den büyük veya eşit olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL” FROM LG_001_PRCLIST WHERE PRICE =>50000

Örn22:

Stok kodları, “ST001”, “ST003”, “ST006” olan satırların listelenmesi.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , PRICE * 1.17 “KDV DAHIL”  FROM LG_001_PRCLIST  WHERE  STCODE IN (‘ST001’, ‘ST003’, ‘ST006’)

Örn23:

PRICE kolonunun 1.17 ile çarpımının sonucunun mutlak değerinin alınması.

SELECT  STCODE  “STOK KODU”,  PRICE “FIYATI” ,  ABS(PRICE * 1.17) “KDV DAHIL” FROM LG_001_PRCLIST

Örn24:

PRICE kolonunun 1.17 ile çarpımının sonucunun mutlak değerinin alınması.

SELECT  STCODE  “STOK KODU”,  PRICE “FIYATI” ,  ABS(PRICE * 1.17) “KDV DAHIL” FROM LG_001_PRCLIST

Örn25:

PRICE kolonunun 1.17 ile çarpımının sonucunun tamsayıya yuvarlanmış eşit ya da daha küçük değerinin alınması.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , FLOOR(PRICE * 1.17) “KDV DAHIL” FROM LG_001_PRCLIST

Örn26:

PRICE kolonunun 1.17 ile çarpımının sonucunun tamsayıya yuvarlanmış eşit ya da daha büyük değerinin alınması.

SELECT STCODE “STOK KODU”, PRICE “FIYATI” , CEILING(PRICE * 1.17) “KDV DAHIL” FROM LG_001_PRCLIST

Örn27:

Stok kodu açıklamasının küçük harfe çevirilmesi.

SELECT CODE, LOWER(DEFINITION_) FROM LG_001_STCARD

Örn28:

Stok kodu açıklamasının büyük harfe çevirilmesi.

SELECT CODE, UPPER(DEFINITION_) FROM LG_001_STCARD

Örn29:

Stok kodu açıklamasının tersten yazdırılması.

SELECT CODE, REVERSE(DEFINITION_) FROM LG_001_STCARD

Örn30:

Stok kodu açıklamasının üçüncü karakterinden başlayarak iki karakter silinecek ve yerine ‘LBS’ yazılarak görüntülenecek.

SELECT CODE, STUFF( DEFINITION_, 3, 2, ‘LBS’ ) FROM LG_001_STCARD

Örn31:

Stok kodu açıklamasının 4.karakterinden başlayarak 3 karakterini alacak ve öyle görüntüleyecek.

SELECT CODE, SUBSTRING( DEFINITION_, 4, 3)  FROM LG_001_STCARD

Örn32:

LG_001_STCARD isimli tablonun aynısı, STCARD isimli başka bir tablo yaratmak.

SELECT * INTO STCARD FROM LG_001_STCARD

UPDATE komutu

Tablo satırlarındaki verilerin değiştirilmesi için kullanılır.

Temel yapısı :

UPDATE

                        tablo_adı veya viev adı

                        SET

                        kolon_adı = {expression | DEFAULT | NULL}

                        | @variable = expression

                        | @variable = column = expression } [,…n]

            {{[FROM {<table_source>} [,…n] ]

                        [WHERE

                                   <search_condition>] }

Örn1 :

Stok kartları tablosunda, stok kodu ST001 olan stok kartının açıklamasının değiştirilmesi.

UPDATE LG_001_STCARD SET DEFINITION_=’Turuncu Kalem’  WHERE CODE=’ST001′

 

DELETE komutu

 

Tablo satırlarınının silinmesini sağlar.

Temel yapısı :

DELETE

            [FROM ]

                        {

                          tablo_adı veya view_adı 

                        [ FROM {<table_source>} [,…n] ]

            [WHERE

                        { <search_condition>

Örn1:

Stok kartları tablosunda, stok kodu ST003 olan stok kartının silinmesi.

DELETE  FROM LG_001_STCARD WHERE CODE=’ST003′

Örn2:

Stok kartları tablosundaki tüm verilerin tümünün silinmesi.

DELETE  LG_001_STCARD

VIEW ‘ lar

Tabloların belli kolonlarının listelendiği ayrıca hesaplama işlemlerinin yapıldığı bir veri erişim yöntemidir.

Temel yapısı :

CREATE VIEW view_adı

                        kolon_adı

                        [WITH ENCRYPTION]

                        AS select _deyimi

Not : SELECT cümlelerinin içerisinde ORDER BY, COMPUTE ve INTO kullanılamaz. Ayrıca TEMPORARY tablolarda kullanılamaz.

Örn1:

Stok kartları listesini döken view

CREATE VIEW stk_list AS

SELECT CODE “Stok Kodu” , DEFINITION_ “Aciklamasi”  FROM LG_001_STCARD

Örn2:

“stk_list”  VIEW ‘ inin isminin değiştirilmesi.

sp_rename stk_list,  stok_list

Örn3:

“stok_list”  VIEW’ inin silinmesi.

drop view  stok_list

TRIGGER‘ lar

Temel yapısı :

CREATE TRIGGER triger_adi

            ON tablo_adi

            [WITH ENCRYPTION]

            {FOR  {  [DELETE] [,] [INSERT] [,] [UPDATE]}

            AS

            sql_deyimi

Örn1:

CREATE TRIGGER stk_trg

            ON LG_001_STCARD

            FOR INSERT

            AS

                        Print ‘Stok kartlari tablosuna veri girisi yapildi..!’

Örn2:

CREATE TRIGGER stk_trg

            ON LG_001_STCARD

            FOR DELETE

            AS

                        Print ‘Stok kartlari tablosundan veri silindi ..!’

STORED PROCEDUR’ lar

Belli işlemleri gerçekleştiren kod parçalarıdır. Rutin hale gelen işleri kolayca gerçekleştirmek için kullanılırlar. Pek çok avantajı vardır.

Modüler programlamayı destekler. Bir kere yaratılır, istenildiği kadar kullanılabilir.

Hızlı işletilir. Tekrar tekrar derlenmez.

Network trafiğini azaltır.

 Temel yapısı:

CREATE PROC[EDURE] procedur_adı [;sayı]

            [ {@parametre data_tipi} [VARYING] [=varsayım] [OUTPUT] ]

            [,….n]

            [WITH  {RECOMPAILE | ENCRYPTION | RECOMPILE, ENCRYPTION} ]

            [FOR REPLICATION]

            AS

            sql_deyimleri […n]

Örn1:

CREATE PROCEDURE test

@stok_adi varchar(255)

AS

SELECT CODE “Stok kodu”, DEFINITION_ “Açıklaması”  FROM LG_001_STCARD

WHERE CODE = @stok_adi

Kullanımı :

EXEC test ST005

Sonuç:

Stok kodu                    Açıklaması                                         

————————- —————————————————

ST005                          05 kursun kalem