1. GİRİŞ 2. YENİ TABLO EKLEME
|
|
- Aygül Sarıca
- 8 yıl önce
- İzleme sayısı:
Transkript
1 İÇİNDEKİLER 1. GİRİŞ 2. YENİ TABLO EKLEME 1. COULOMN NAME 2. DATA TYPE 3. ALLOW NULLS 3. ANAHTAR (IDENTİTY) KOLON 4. İNSERT İNTO 5. SELECT, FROM, WHERE, VALUES, SET, UPDATE, AS, GROUP BY, ORDER BY, TOP, PERCENT, HAVING, BEGIN, RETURN, END 6. DELETE 7. SQL FONKSİYONLARI ( MONTH, REVERSE, SUBSTRİNG, LEFT, RİGHT, CHARİNDEX, UPPER ) 8. SQL JOIN 1.CROSS JOİN 2.ENNER JOİN 3. OUTER JOİN ( LEFT / RİGHT ) 9. TABLOLAR ARASI İLİŞKİLER 1. ANAHTAR 2. YABANCI ANAHTAR (FORİGN KEY) 3. UNİON 10. KÜMELEŞME FONSİYONLARI 1. COUNT 2. MAX 3. SUM 11. CREATE VIEW
2 12. ALTER VIEW 13. DATEDIFF 14. INDEX 1.DROP 2.ALTER 15. TEMPLATE EXPLORER 16. SAKLI YORDAMLAR (STORED PROCEDURE) 1. SUB 2. STORED PROCEDURE 3. CREATE PROC 4. ALTER PROC 5. IF - ELSE 17. KULLANICI TANIMLI FONKSİYONLAR 1. SKALER DEĞERLİ FONKSİYONLAR 2. TABLO DEĞERLİ FONKSİYONLAR 18. TETİKLEYİCİLER (TRIGGER) 1. ALTER TRIGGER 1. INSERT 2. DELETE 3. UPDATE 2. INSTEAD OF TRIGGER
3 Market örneği. GİRİŞ İlişkisel veri tabanı: Şehir ilçeler bağlantısı örneğini sadece bu sayede yapabiliriz. SQL 2005 güzel bir program. En son 2008 sürümü çıktı. SQL Structured Query Language kelimelerinin ilk harflerinden oluşur. MS SQL Server ücretli, fakat experss sürümü ücretsiz. ORACLE programıda gelmiş geçmiş en iyi programlardan birtanesi. Program yıllık kiralanıyor ve pahalı. MySql ve Postgre programları tamamen ücretsiz. SQL Structured Query Language kelimelerinin ilk harflerinden oluşur. Bu dersimizde SQL lisanını öğreneceğiz. Örnek: Git bana şu bilgiyi bul, değiştir veya sil. Şu iki tabloyu ilişkilendir ve istediğim bilgileri bana göster.
4 Tablolar Tablo dediğimiz şey 2 boyutlu bir matris. Kolonları ve satırları var. A B C D tables ın üzerine sağ tıkla ve new table tıklayarak o dizinde yeni tablo açabilirsin. Yeni tablo ekle yi tıkladıktan sonra aşağıdaki pencere açılacaktır.
5 Burada; 1. Coulomn name 2. Data type 3. Allow nulls Seçenekleri gelecektir. 1. Coulomn name: Vereceğinizi ismin girişinin yapıldığı yerdir. Türkçe karakterler kullanmamaya çalışın ve isimleri verirken Sehir, IpNo, Kolon_Ad gibi yazım formatlarını kullanmanız yararınıza olacaktır. 2. Data type: Burada, yeni açmış olduğunuz kolona girilecek verilerin tiplerini belirtmelisiniz. Örnek : sütun isimleri x ve y olan iki sutunun bütün satılarına veri olarak 1 i giriniz. Yeni tablo açı tıkla Adı:x Adı:y 2 satır ve 2 sütuna 1 1 gir Kırmızı ünlem işareti çıkıyor Çünkü satırları birbirinden ayıramıyor. Veri tabanında herhangi iki satırı birbirinden ayırt edecek bir kolana gerek vardır. İki tane aynı isim olduğunda tc numarası veya öğrenci numarası birbirinden ayıt etmeye yarıyor. Bu nedenle bu tür bir kimlik gerekiyor. Acsess te bu anahtarı otamatik olarak soruyor. Çünkü bu program daha düşük düzeyde bilgisi olanlar için yazılmıştır. Acsees de bu uyglamayı yap! Ama sql server asla bunu teklif etmez. Bunu yapmanın birçok yolu var. Tc no veya okul numarası bu amaçla kullanılabiliyor. Öğrenci numarasının bir mantığı var : Bu verilen numara isim sırası giriş yılı ve fakülte gibi bilgileri içeriyor.
6 Bunun gibi bir anahtarı biz belirleyebiliyoruz. Ama aynı zamanda sql bunu otomatik olarak da belirleyebilir Identify (kimlik) kolon IDENTİTİY BU KOLONU NUMARLANDIRIR. IDENTİTY ICREMENT: (DELTA DERSEK) NUMARALANDIRMA KAÇAR KAÇAR ARTARAK DEVAM EDECEĞİNİ BELİRTİR IDENTİTİY SEED (KİMLİĞİN ÇEKİRDEĞİ): ( S DERSEK) NUMARALANDIRMA İŞLEMİNİN HANGİ SAYIDAN BAŞLAYACAĞINI GÖSTERİYOR. S, S+DELTA,S+2DELTA ŞEKLİNDE GİDECEKTİR.
7 5 İLE BAŞLAYIP 7 ŞER ARTACAKTIR. KİMLİK KOLONUNA YAZI YAZMAYA İZİN VERMİYOR. BİR SATIRI SİLELİM YENİ BİR SATIR EKLEDİĞİMİZDE ACABA 12 NUMARASINI TEKRAR VERECEK Mİ? HAYIR ASLA AYNI NUMARAYI BİR DAHA VERMEZ. YAPILAN NUMARALANDIRMAYI DEĞİŞTİRMEK İSTERSEK NE OLUR? EN SON KALDIĞI NUMARADAN İTİBAREN YENİ ARTIRIMI DEVAM ETTİRMEYE BAŞLAR. AYNI NUMARAYI TEKRAR VERME OLASILIĞI OLABİLİR. AMA SQL BU KOLONU ANAHTAR OLARAK SEÇMEDİĞİMİZ İÇİN İTİRAZ ETMEYEBİLİR. TABLODA YAZILAN VERİLER SATIR DEĞİŞTİRMEDEN COMİT ETMEZ (AL BU VERİYİ GİT DİSKE YAZ İŞLEMİ). *ESC TUŞU İLE YAZDIĞIMIZI YOK EDEBİLİRİZ. VERİLERİ DİSKE SIRAYLA YAZMIYOR. BİR AĞAÇ VAR ONUN ÜZERİNDE YAPRAKLAR VAR VE VERİLERİ BU YAPRAKLAR ÜZERİNE YAZIYOR.
8 VERİLERİ KİMLİK NUMARALARINA GÖRE SIRALATABİLİRİZ. ID.. NO YAPTIĞIMIZ ZAMAN KİMLİK KOLONUNA VERİ GİRİŞİ YAPABİLİRİZ.
9 KİMLİK KOLONUNU ANAHTAR YAPTIK. ARTIK O KOLONA AYNI VERİ GİRİLDİĞİNDE BİZİ UYARACAK VE ENGELLİYECEK. IDENTİTY KOLONU HER ZAMAN TABLONUZA KOYUN BU KOLONU İNT YAPARSANIZ 2 MİLYAR VERİ GİREBİLİRSİNİZ. BİR KOLONU IDENTİTİY OLARAK SEÇTİĞİNDE İZİN VERMİYOR ÇÜNKÜ VCHAR(METİN) METİNLER KARAKTERLER OLAMAZ. İNT VEYA OLMALI. İNSERT İNTO DEYİMİ
10 BU TABLOMA BU KOLONLARINA BU DEĞERLERİ GİR DEMEKTİR. KOLON SAYISIYLA DEĞER SAYISI AYNI OLMALI İKİNCİSİ İ. KOLON İLWE İ. DEĞER AYNI TİPTE OLMALI INSERT INTO TABLO_ADI VALUES (DEĞER1, DEĞER2,...) BU ŞEKİLDE DE YAZILABİLİR BEN ÜŞENGECİN BİRİYİM İDENTİTY KOLONA VERİ GİRİLEMEZ BU NEDENLE BU YÖNTEM BİRAZ RİSKLİ INSERT INTO KİMLİKLİTABLO (X, Y) VALUES ('AHMET', 'VELÝ') KİMLİK TABLOSUNA YENİ BİR SATIR EKLİYORUM ADI BİRİNCİ KOLON AHMET, İKİNCİ KOLON VELİ OLSUN HATA VERMİYOR AMA İDENTİTY Yİ KALDIRIRSAK HATA VERECEKTİR. ÇÜNKÜ 4 KOLON VAR AMA 3 VERİ GİRİLİYOR
11 INSERT INTO KİMLİKLİTABLO SELECT 'AYÞE','FATMA', 1 BAŞKA TABLODAN KENDİ TABLOMUZA VERİ AKTARABİLİRİZ INSERT INTO KİMLİKLİTABLO (X, Y) SELECT IL.ILKOD, ILCE.ILCEAD FROM ILCE INNER JOIN IL ON ILCE.ILKOD=IL.ILKOD WHERE IL.ILKOD=1 UPDATE ŞU KOLONUN DEĞERİNİ ŞU YAP, BU KOLONUN DEĞERİNİ ŞU YAP OPENTABLE DE BİR TABLE AÇIP ORADAKİ BİR KOLONA VERİ GİRDİĞİMİZDE KALEM ÇIKAR O ONA UPDATE EDİYOR ANLAMINDADIR ÖR: KIMLIKTABLOSU NDA MEHMET KOLONUNDAKİ KİMLİK 41 SATIRINI MEHMET YAP UPDATE KİMLİKTABLOSU SET AD='MEHMET' WHERE KIMLIK=41
12 PROGRAM ÇALŞTIĞINDA UPDATE KİMLİKTABLOSU SET AD='MEHMET' WHERE KİMLİK=41 SELECT * FROM KİMLİKTABLOSU OLARAK DEĞİŞİR
13 UPDATE KİMLİKTABLOSU SET AD='MEHMET' --WHERE KİMLİK=41 SELECT * FROM KİMLİKTABLOSU WHERE YAZMAZSAK AD SÜTUNUNUN TAMAMI MEHMET OLUR.. EĞER YEDEK ALMAZSAK BU YANLIŞI YAPARSAK SONUÇLARI ÇOK KÖTÜ OLABİLİR UPDATE KİMLİKTABLOSU SET AD='HASAN' WHERE KİMLİK>=41 AND KİMLİK<=60 SELECT * FROM KİMLİKTABLOSU KODU İLE BELİRLİ VERİ ARALIĞINI DEĞİŞTİREBİLİRİZ
14 DELETE DEYİMİ: DELET FROM KİMLİKTABLOSU TABLONUN İÇİNİ TAMAEN SİL DELETE FROM KİMLİKTABLOSU WHERE KİMLİK=25 SELECT *
15 FROM KİMLİKTABLOSU
16 SQL FONKSİYONLARI
17
18 AMERİKA VE İNGİLTEREDE ÖNCE AY SONRA GÜN OKUNUR SELECT MONTH(CONVERT(DATETIME,' ',104)) SANA VERİLEN TARİHİ ALMANCA YAZILMIŞ GİBİ DÜŞÜN ONA GÖRE TARİHİ BELİRT
19 SELECT REVERSE('AHMET') --TERSTEN YAZMA ÝÞLEMÝNÝ YAPIYOR
20
21
22 CÜMLEYİ FRANSIZCA GÖR DEMEK CI: CASE INSENTİTIVE: BÜYÜK KÜÇÜK HARFE ALDIRMADAN KARŞILAŞTIR AC:ACCENT SENSITIVE: NOKTALI HARFLERE DİKKAT ET
23 SQL JOİN CROSS JOIN ENNER JOIN OUTER JOIN -LEFT / RIGHT CROS JOIN İKİ VEYA DAHA FAZLA KULLANILAN KARTEZYEN ÇARPIMI DİSAİN NEW QUERY (SAĞ TIKLA) SELECT A_TABLO.N, A_TABLO.AD, B_TABLOSU.N AS TABLOBNİNNSİ, B_TABLOSU.F FROM A_TABLO CROSS JOIN B_TABLOSU SELECT * FROM A_TABLO SELECT * FROM B_TABLOSU SELECT FROM A.N, A.AD, B.N AS B_DEN_GELEN_N, B.F A_TABLO AS A CROSS JOIN B_TABLOSU AS B A_TABLO=A OLMUŞ OLDU. INNER JOIN SELECT SELECT LİSTEN FROM A INNER JOIN B ON KOŞUL
24 ÖNCE AXB Yİ OLUŞTUR VE BUNLARIN İÇİNDEN ON DAN SONRA GELEN KOŞULA UYGUN OLANLARIN LİSTESİ. SELECT FROM A.AD, B.N AS B_DEN_GELEN_N, B.F A_TABLO AS A INNER JOIN B_TABLOSU AS B ON A.N = B.N
25
26 SELECT FROM IL.ILKOD, IL.ILAD, ILCE.ILCEKOD, ILCE.ILCEAD ILCE INNER JOIN IL ON ILCE.ILKOD = IL.ILKOD
27 LEFT OUTER JOIN SELECT SELECT LİSTESİ FROM A LEFT OUTER JOIN B ON KOÞUL
28 SAĞ TIKLA VE, SELECT ALL FROM A TABLO SEÇ. SELECT FROM A_TABLO.N, A_TABLO.AD, B_TABLOSU.N AS EXPR1, B_TABLOSU.F A_TABLO LEFT OUTER JOIN B_TABLOSU ON A_TABLO.N = B_TABLOSU.N A TABLOSUNUN TAMAMINI B İÇİN KOŞULU SAĞLAYANLARIN KENDİLERİNİ, KOŞULU SAĞLAMAYANLAR İÇİN NULL GETİRİYOR. SORU: İL TABLOSUNDA OLUPTA HİÇBİR İLÇESİ OLMAYAN KAÇ TANE İL VAR? SELECT FROM IL.ILKOD, IL.ILAD IL LEFT OUTER JOIN ILCE ON IL.ILKOD = ILCE.ILKOD
29 WHERE (ILCE.ILKOD IS NULL) ANAHTAR A EV B TABLOSUNDA N SÜTUNUNU ANAHTAR YAPARSAK OTOMATİK İKİSİNİ BİRLEŞTİRİYOR. FORIGN KEY (YABANCI ANAHTAR): BİR BAŞKA TABLONUN ANAHTARINA BAŞVURUP ONU SAKLIYOR.
30 UNION SELECT L1,L2,,LN FROM.. UNION SELECT R1,R2,,RN FROM [UNION SELECT S2,S2,,SN FROM ] UNİON DA GEÇEN SELECT LİSTELERİNDEKİ KALAN SAYILARIN OLMALIDIR. AYNI SELECT 1 AS A, 2 AS B UNION SELECT 1 AS A, 2 AS B UNION SELECT 3 AS A, 4 AS B VERİLERDEN AYNI OLANARI SİLİYOR.
31 SELECT N, AD FROM DBO.A_TABLO UNION SELECT N,F FROM DBO.B_TABLOSU DAİMA İLK YAZDIĞIMIZ İSİMLERİ SEÇER. (N,AD N,F AMA LİSTEDE N,AD VAR) SELECT 1 AS A, 'AHMET' AS B
32 UNION SELECT 1 AS A, 2 AS B AYNI İBDİKSLİ KOLONLAR AYNI TİPTE OLMALIDIR. SELECT 1 AS A, 2 AS B UNION ALL SELECT 1 AS A, 2 AS B UNION ALL HEPSİNİ GÖSTERİYOR KÜMELEŞME FONSİYONLARI SELECT COUNT (KOLON_ADİ) [,R1,,RN] FROM TABLOLAR [WHERE KOŞUL] [GROUP BY R1,,RN] [HAVING KOŞUL] [ORDER BY ] COUNT
33 BU TABLOLARDAN ELDE EDİLEN SATIR SAYISINI LİSTELER SELECT FROM COUNT(*) AS EXPR1 ILCE INNER JOIN IL ON ILCE.ILKOD = IL.ILKOD MAX SELECT MAX(N) FROM B_TABLO
34 SUM SORU: İSTANBUL İLİNİN KAÇ İLÇESİ VAR?
35 SELECT COUNT(*) FROM IL INNER JOIN ILCE ON IL.ILKOD = ILCE.ILKOD WHERE IL.ILKOD=34 SORU : IL ADINA GÖRE İLÇE SAYMA! SELECT COUNT(*) FROM IL INNER JOIN ILCE ON IL.ILKOD = ILCE.ILKOD WHERE IL.ILAD='BATMAN' SORU: BÜTÜN İLLERİN İLÇE SAYILARINI YAZAN PROGRAM? SELECT COUNT(*), IL.ILAD FROM IL INNER JOIN ILCE ON IL.ILKOD = ILCE.ILKOD GROUP BY IL.ILAD
36
37 SELECT SUM(TAHSİLAT) AS TOPLAMTAHSİLAT, N FROM HARCLARTABLOSU GROUP BY N HAVING SUM(TAHSİLAT)=0 SELECT * FROM DBO.HARCLARTABLOSU
38 SELECT SUM(TAHSİLAT) AS TOPLAMTAHSİLAT, N FROM HARCLARTABLOSU GROUP BY N HAVING SUM(TAHSİLAT)<=500 SELECT * FROM DBO.HARCLARTABLOSU
39 SORU: 10 DAN FAZLA İLÇESİ OLAN İLLERİ BULUNUZ?
40 SELECT FROM COUNT(*) AS ILCESAY, IL.ILAD IL INNER JOIN ILCE ON IL.ILKOD = ILCE.ILKOD GROUP BY IL.ILAD HAVING (COUNT(*) > 10) SORU: A_TABLO TABLOSU İKİ KOLONDAN OLUŞMAKTADIR N: İNT AD: VARCHAR(20) BU TABLOYA DAHA ÖNCE VERİ GİRİLMİŞTİR. ÖNCE ANAHTAR OLMAKLA BİRLİKTE ŞİMDİ N KOLONU TABLONUN ASIL ANAHTARI YAPMAK GEREKMEKTEDİR. BU AMAÇLA TABLO DİSİNG MODUNDA AÇILMIŞ VE N KOLONLU ANAHTAR OLARAK İŞARETLENMİŞTİR. FAKAT DEĞİŞİKLİK KAYDEDİLEK İSTENDİĞİNDE N KOLONUNUN BENZERSİZ VERLER İERMEDİĞİ HATA MESAJI ALINMAKTADIR. DURUMU DÜZELMEK AMACIYLA BU N LERİN BİLİNMESİ GEREKMEKTEDİR. BU N LERİ BULAN BİR SQL YAZINIZ? SELECT COUNT(*) AS SAY, N FROM A_TABLO GROUP BY N
41 HAVING (COUNT(*) > 1) CREATE VIEW DEYİMİ VİEW: DİSK ÜZERİNE TANIMI DIŞINDA YAZILMAYAN BİR SANAL TABLO OLARAK DÜŞÜNÜLEBİLİR.
42 SELECT İ HER SEFERİNDE YAZMAK YERİNE SAKLAMAK İSTEYEBİLİRİZ. BİR SELECT DEYİMİ GİBİ YAZILDIKTAN SONRA BU DEYİMİN BİR YERE SAKLANMASINI DİLEYEBİLİRSİNİZ. VİEW OLUŞTURULMASI: CREAT VIEW VADI AS SELECT DEYİM KULLANIM ŞEKLİ: SELECT FROM V.ADI
43 CREATE VIEW V_IL_ILCE AS SELECT B.ILKOD, B.ILAD, A.ILCEKOD, A.ILCEAD FROM ILCE AS A INNER JOIN IL AS B ON A.ILKOD = B.ILKOD YAPMIŞ OLDUĞUMUZ BU KOMUTU BİRYERE KAYDETTİ.
44 DAHA ÖNCE SEÇTİĞİMİZ TABLONUN KOLONLARINIDA BİZE GÖSTERİYOR. SORU: ADLARI TEKRAR EDEN İLÇELERİN TEKRAR ETME SAYISINI SÖYLEYEN BİR SQL YAZINIZ. SELECT COUNT(*) AS ILCE_SAYISI, ILCEAD FROM ILCE
45 GROUP BY ILCEAD HAVING (COUNT(*)>1) SORU: İLÇELERİN HANGİ İLLERDEN OLDUKLARINI GÖSTEREN BİR PROGRAM YAZINIZ? SELECT COUNT(*) AS ILCE_SAYISI, ILCE.ILCEAD, IL.ILAD, ILCE.ILKOD AS EXPR1, ILCE.ILCEKOD FROM ILCE INNER JOIN IL ON ILCE.ILKOD = IL.ILKOD GROUP BY ILCE.ILCEAD, IL.ILAD, ILCE.ILKOD, ILCE.ILCEKOD HAVING (COUNT(*) > 1)
46 SELECT COUNT(*) AS ILCE_SAYISI, ILCE.ILCEAD, IL.ILAD, ILCE.ILKOD AS EXPR1, ILCE.ILCEKOD FROM ILCE INNER JOIN IL ON ILCE.ILKOD = IL.ILKOD GROUP BY ILCE.ILCEAD, IL.ILAD, ILCE.ILKOD, ILCE.ILCEKOD --HAVING (COUNT(*) > 1) ÇİFTLERE GÖRE GRUPLADIĞIMIZ İÇİN ÇİFLERDEN AYNI OLAN VARMI DİYE SAYIYOR ODA BİRDEN BÜYÜK OLAMAYACAĞI İÇİN TABLO BOŞTU. AMA EN ALLTAKİ HAVİNG KOMUTUNU ALMAZSAK PROGRAMI ÇALIŞACAKTIR. BUNU ÇÖZMENİN EN İYİ YOLU BİR TANE VİEW YAZMAKTIR. CREATE VIEW V_TEKRAR_EDEN_ILCELER AS SELECT COUNT(*) AS ILCE_SAYISI, ILCEAD FROM ILCE GROUP BY ILCEAD HAVING (COUNT(*) > 1)
47 SELECT İ YAZILMIŞ VE BİR YERE YAZILMIŞ BEKLİYOR SELECT FROM V_TEKRAR_EDEN_ILCELER
48 SELECT V_TEKRAR_EDEN_ILCELER.ILCE_SAYISI, V_TEKRAR_EDEN_ILCELER.ILCEAD, IL.ILKOD, IL.ILAD FROM V_TEKRAR_EDEN_ILCELER INNER JOIN ILCE ON V_TEKRAR_EDEN_ILCELER.ILCEAD = ILCE.ILCEAD INNER JOIN IL ON ILCE.ILKOD = IL.ILKOD ORDER BY V_TEKRAR_EDEN_ILCELER.ILCEAD
49 ÖRNEK: YENİ TABLO OLUŞTURUYORUZ. INSERT INTO KIMLIK (TC_KIMLIK_NO,AD,SOYAD,NUFUS_ILKOD,DOGUM_TARIHI,DOGUM_ILKOD) VALUES ( ,'ALİ','ÇETİNKAYA',51,' ',51) SELECT * FROM KIMLIK
50 YENİ DATABESE YÜKLEME: EKSTRA BİLGİ TASK-RESTORE_DATABASE FROMDEVİCE TABLOYU GÖSTER ALTTAN SEÇ OK DERSEN ÇALIŞMAZ. OPTİONS OVERWRİTE THE.. SEÇ OK DERSEN YÜKLE. ALTER VIEW :ÖNCE YAPILAN VİEW İ DEĞİŞTİRMEK SORU: ADI V_KIMLIK OLAN BİR VİEW YAZINIZ? BU VİEW KIMLIK TABLOSUNDAN GELEN VERİLERİ IL TABLOSU İLE (İL TABLOSUNDAN 2 TANE GEREKECEK) BAĞLAYARAK KİMLİK BİLGİLERİNİ NUFUS İLİNİN ADINI VE DOĞUM İLİNİN ADINI GETİRSİN.
51 SELECT V_KIMLIK.TC_KIMLIK_NO, V_KIMLIK.AD, V_KIMLIK.SOYAD, V_KIMLIK.NUFUS_ILKOD, V_KIMLIK.DOGUM_TARIHI, V_KIMLIK.DOGUM_ILKOD, IL.ILAD, IL_1.ILAD AS EXPR1 FROM V_KIMLIK INNER JOIN IL ON V_KIMLIK.NUFUS_ILKOD = IL.ILKOD INNER JOIN IL AS IL_1 ON V_KIMLIK.DOGUM_ILKOD = IL_1.ILKOD SORU: ADI AYNI OLANLARIN SAYISI NEDİR?
52 SELECT COUNT(*) AS EXPR1, AD FROM KIMLIK GROUP BY AD SORU: EN ÇOK X.. İSMİ HANGİ İLDE VAR? ALTER VIEW V_MAX_ALI_IL AS SELECT TOP (100) PERCENT COUNT(*) AS SAY, IL.ILAD FROM KIMLIK INNER JOIN IL ON KIMLIK.DOGUM_ILKOD = IL.ILKOD WHERE (KIMLIK.AD = 'ALİ') GROUP BY IL.ILAD ORDER BY SAY SELECT SAY, ILAD FROM V_MAX_ALI_IL WHERE (SAY = (SELECT MAX (SAY) FROM V_MAX_ALI_IL
53 SORU(1): KULLANICI VE KULLANICI BİLGİLERİNİ GÖSTEREN BİR SQL PROGRAMI YAZINIZ? SELECT KULLANICI.IPTAL_TAR, KULLANICI.BAS_TAR, KULLANICI.KULLANTUR, KULLANICI.ADRES, KULLANICI.TEL_NO, KULLANICI.SOYAD, KULLANICI.AD, KULLANICI.KULLAN_NO, KULLAN_BILGI.KULLANAD, KULLAN_BILGI.GECIKMECEZA, KULLAN_BILGI.ODUNC_SURE FROM KULLANICI INNER JOIN KULLAN_BILGI ON KULLANICI.KULLANTUR = KULLAN_BILGI.KULLANTUR
54 SORU(2): KİTAPLARDAN YAZARLARI HENÜZ GİRİLMEMİŞ OLANLARIN LİSTESİ? SELECT FROM WHERE K.KITAP_NO, K.KITAP_AD, K.ISBN KITAP K LEFT OUTER JOIN YAZARLAR Y ON K.KITAP_NO = Y.KITAP_NO (Y.KITAP_NO IS NULL) SORU (8): AŞAĞIDAKİ BİLGİLER TAŞIYAN KİTABI KITAP TABLOSUNA GİREN BİR SQL YAZINI? KİTABIN ADI: ADIM-ADIM SQL SERVER, ISBN=123456, KOPYA SAYISI:3, RESERVE:0 VERİLERİNİ GİRECEK. INSERT INTO KITAP(KITAP_AD, ISBN, KOPYA_SAY, RESERVE) VALUES('ADÝM-ADÝM SQL SERVER','123456','3','0')
55 SORU(9): 8. SORUDA GİRİLEN KİTABIN KITAP_NO SU 6 DIR. BU KİTABI YAZAR_NO SU 3 OLAN YAZAR YAZDIĞINA GÖRE YAZARLAR TABLOSUNA GEREKLİ VERİYİ GİREN BİR SQL YAZINIZ? SORU(3): ' ' TARİHİNDE ÖDÜNÇ VERİLEN KİTAPLAR VE KULLANICILAR? SORU(10): KULLAN_NO NUMARALI KULLANICI 5KITAP_NO NUMARALI KİTABI TARİHİNDE ÖDÜNÇ ALMAK İSTİYOR. BU KİTABIN ALINABİLİR OLDUĞUNU VARSAYALIM. BU KULLANICI İÇİN ODUNC TABLOSUNA BU ODUNÇ ALMA İŞLEMİNİ YANSITAN VERİYİ GİREN BİR SQL YAZINIZ? INSERT INTO ODUNC(KITAP_NO, KULLAN_NO, BASLA_TARIH, BITIS_TARIH) --VALUES(5, ,' ','') --BİTİÞ TARİHİ KULLANÝCÝYA GÖRE DEÐİÞTİÐİ İÇİN DİREK GİREMEYİZ! SELECT 5, , ' ', DATEADD(DAY, B.ODUNC_SURE,' ') FROM KULLANICI AS K INNER JOIN KULLAN_BILGI AS B ON K.KULLANTUR = B.KULLANTUR SELECT * FROM ODUNC
56 SORU(4): ÖDÜNÇ VERME TARİHİ BİTTİĞİ HALDE HALEN GERİ GETİRİLMEYEN KİTAPLARIN VE KULLANICILARIN LİSTESİ SELECT X.KULLAN_NO, X.AD, X.SOYAD, K.KITAP_AD, K.ISBN, A.BASLA_TARIH, A.BITIS_TARIH, A.IADE_TARIH, A.CEZA FROM ODUNC AS A INNER JOIN KULLANICI AS X ON A.KULLAN_NO = X.KULLAN_NO INNER JOIN KITAP AS K ON A.KITAP_NO = K.KITAP_NO WHERE (A.BITIS_TARIH < GETDATE()) AND (A.IADE_TARIH IS NULL)
57 SORU(5): NUMARALI KULLANICI (VARSA) İADE ETMEDİĞİ HER BİR KİTAP İÇİN UYGULANACAK CEZA SELECT B.GECIKMECEZA * DATEDIFF(DAY, A.BITIS_TARIH, GETDATE()) AS CEZA, A.KITAP_NO FROM ODUNC A INNER JOIN KULLANICI B ON A.KULLAN_NO = B.KULLAN_NO INNER JOIN KULLAN_BILGI B ON B.KULLANTUR = B.KULLANTUR WHERE (A.BITIS_TARIH < GETDATE()) AND (A.IADE_TARIH IS NULL) AND (A.KULLAN_NO = ) DATEDIFF: SELECT DATEDIFF(DAY,' ',GETDATE()) --TARİHLER FARKINI HESAPLAYAN FONKSİYON --DAY, MOUNTH, HOUR, SECOND OLARAKTA FARKINI ALABİLİRİZ. SORU(6): İADE EDİLMEYEN KİTAPLAR İÇİN UYGULANACAK CEZALARI KULLANICILARA VE KİTAPLARA GÖRE VEREN BİR V_CEZALAR İSİMLİ BİR VIEW YAZINIZ?
58 CREATE VIEW V_CEZALAR AS SELECT B.GECIKMECEZA * DATEDIFF(DAY, GETDATE(), A.BITIS_TARIH) AS CEZA, A.KITAP_NO, B.KULLAN_NO FROM ODUNC A INNER JOIN KULLANICI B ON A.KULLAN_NO = B.KULLAN_NO INNER JOIN KULLAN_BILGI B ON B.KULLANTUR = B.KULLANTUR WHERE (A.BITIS_TARIH < GETDATE()) AND (A.IADE_TARIH IS NULL) SORU(7): YUKARIDAKİ V_CEZALAR SANAL TABLOSUNU KULLANARAK ÖDENECEK TOPLAM CEZALARI KİŞİLERE GÖRE VEREN ADI V_TOPLAMCEZA OLAN BİR VIEW CREATE VIEW V_TOPLAMCEZA AS SELECT SUM(CEZA) AS TOPLAM_CEZA, KULLAN_NO FROM V_CEZALAR GROUP BY KULLAN_NO INDEX (VERİ_TABANI_DERSİ_NOTLARI5) DİĞERLİMKİ ELİNİZDE BİR SÖZLÜK VAR. O SÖZLÜĞÜN İÇİNDE MALİYET KELİMESİNİ BULMAYA ÇALIŞIYORUZ. SÖZLÜĞÜ ORTADAN AÇIYORUZ. NE TARAFA M HARFİ DÜŞÜYORSA O TARAFTA ORTAYI AÇIYORUZ. MALİYET KELİMESİNİ BİRKAÇ SEFERDEN SONRA KOLAYCA BULABİLİYORUZ. BİLGİSAYARDA İKİLİ ARAMA ALGORİTMASI VARDIR. SIRALI BİR DİZİDE HARHANGİ BİR ŞEYİ ARAKEN KULLANIYORUZ. DİZİYİ İKİYE BÖL ALTTA KALIYORSA ALTI İKİYE BÖL İKİ ÜZERİ 60 ÇOK BÜYÜK BİR SAYIDIR. BU KADAR VERİNİN OLDUĞU BİR DİZİDE BU YÖNTEMİ KULLANARAK 60 DENEMEDEN SONRA İSTEDİĞİNİZİ BULABİLİRSİNİZ.
59 Y KOLONU İÇİN BANA BİR İNDEKS TUT: BU YÖNTEM KULLANILARAK MUAZZAM BİR HIZDA ARAMALAR YAPILABİLİR. SİPARİŞLER SAĞ TIK DİZAYN SAĞ TIK İNDEXES/KESY TIKLA SİAPRİŞLER SAĞ TIK, SCRİPT TABLE AS TIKLA CREAT TO NEW QUERY
60 SAĞ TIKLA YENİ İNDEX YAP AĞAIDAKİ DEĞİŞİKLİKLERİ YAP
61
62 İKİNCİ SATIRA DİSKE YAZAMAM IX İNDEKS TABLOSUNDA BİR HATA YAPTIM BUNA MÜSAADE EDEMEM.
63 İNDEX İ SİLMEK İSTİYORSAK DROP YAZIYORUZ DROP TABLE TABLO_AD TEMPLATE EXPLORER:
64
65 ALTER: DEĞİŞİKLİK YAP DEMEK. ALTER TABLE DEYİMİ BİR TABLONUN KOLONLARI NA EKLEME, KOLONLARDAN BAZI LARI NI SİLME, KOLONLAR ÜZERİNDE KISITLAMALAR VEYA İNDEX TANI MLAMA DA KULLANILIR. ALTER TABLE DERLER_TABLOSU ADD SAAT İNT DEFAULT (0) NOT NULL
66 ALTER TABLE DERSLER ADD KREDİ REAL DEFAULT (0) NOT NULL SAKLI YORDAMLAR (STORED PROCEDURE) (DERS NOTLARI 7) SUB BİR PROGRAMI PARÇALARA BÖLMEYE YARAR. İŞİ GÖREV TAKSİMİMİ YAPARAK DAĞITMAKTIR. YADA HEP AYNI ŞEKİLDE YAPILAN İŞLERİ BİR YERE
67 TOPLAYIP BİR DEFADA BU İŞLERİ BİR ARAYA TOPLAYIP HIZLI BİR ŞEKİLDE YAPMAMIZI DA SAĞLAYABİLİR. VİSUAL BASİC DE BUNLAR KULLANILIR. SQL SERVER DADA BU YAPILABİLİR. BU İŞLEM İÇİN SQL DE YAPILANLARI ÖĞRENECEĞİZ. MODÜLER PROGRAMLAMA YAPMAMIZI SAĞLAR. İŞLEMLERİN DAHA HIZLI YAPILMASINI SAĞLARLAR. AĞ TRAFİĞİNİ AZALTIR. GÜVENLİK ARACI OLARAK KULLANILABİLİR. STORED PROCEDURE
68 SX_ASAL SAĞ TIKLA ÖZELLİKLERİ TIKLA PERMİSSİONS DAN AYARLARI YAPILABİLİR. CREATE PROC [ EDURE ] SAKLI _YORDAM_ADI [ ; SAYI ] [ DATA_TİPİ } [ = DEFAULT ] [ OUTPUT ] ] [,...N ] AS SQL_DEYİMLERİ KENDİMİZE YENİ BİRTANE YAZALIM. DERSLER TABLOSUNU ÖNÜMÜZE GETİRSİN.
69 CREATE PROC SX_DERSLER AS SELECT * FROM DERSLER EXEC SX_DERSLER (ÇALITRMA KOMUTU) EXEC SX_DERSLER MT121 YAZARSAK TABLODA MT121 DERSLERİ GELİR. DBO.SX_DERSLERE SAĞ TIKLA MODFİY DE AÇILAN KOMUTLARI DEĞİŞTİR. ALTER: DEĞİŞİKLİK YAP DEMEK ALTER PROC İNT AS SELECT * FROM DERSLER WHERE DONEM=@D D DEĞİŞKEN DEĞİKEN OLDUĞUNU ANLAMASI İÇİN KOYUYORUZ. EXEC SX_DERSLER 1
70 CREATE PROC REAL AS INSERT INTO DERSLER ÇALIŞTIRMMAK İÇİN : EXEC SX_DERSGIR 1,'MT487',1,'SQL SERVER',4,3 INDEX YAPTIĞIMIZ İÇİN AYNI PROGRAMI BİRDAHA ÇALIŞTIRDIĞIMIZDA HATA VERMESİ LAZIM:
71 KULLANICI BÖYLE BİR MESAJLA KARŞILAŞIRSA NE OLDUĞUNU ANLAMAZ. BU PROSEDÜRÜN DOĞRU ÇALIŞIP ÇALIŞMADIĞINI ANLAYACAK BİR KOD YAZILMALI VE İKAZ ETMELİ. STORED PROCEDURE, BİR YANDAN VERİ GİRERKEN BİR YANDAN DA KONTROL YAPMA ŞANSI VERİYOR BİZE. ALTER PROC REAL AS IF EXISTS( SELECT * FROM DERSLER WHERE DONEM=@DONEM AND KOD=@KOD AND GRUP=@GRUP ) BEGIN SELECT 'GIRMEK ISTEDIGINIZ DERS ZATEN VAR!' RETURN -1 END INSERT INTO DERSLER RETURN 0 NOT: RETURN (HATA NUMARASI) ÖR: RETURN -1 : -1 NUMARALI HATA MESAJI NOT: BAŞKA VERİ TABANINA BAŞVURULACAĞI ZAMAN TABLO İSMİ SAISLEMLER.DBO.SX_DERSGIR ŞEKLİNDE GİRİLİR.
72 STORED PROCEDURES ÜZERİNE SAĞ TIKLAYIP EXCUTE DERSEK GELEN TABLOYUDA DOLDURARAK EKLEYEBİLİRİZ.
73 STORED PROCEDURE DERSİNE TEKRARI IF KOŞUL (KOŞUL DOĞRUYSA YAP) ELSE (KOŞUL DOĞRU DEĞİLSE YAPILACAK İŞLEMLER) IF KOŞUL BEGIN ( YAPILACAK İŞLEMLER) END ÖRNEK: DERSLER ARASINDAN DÖNEM DERS VE GRUBU VERİLEN BİR DERSİ SİLEN BİR YORDAM YAZINIZ. CREATE PROC INT AS IF NOT EXISTS( SELECT * FROM DERSLER WHERE DONEM=@DONEM AND KOD=@KOD AND GRUP=@GRUP ) BEGIN SELECT 'SÝLMEK ISTEDIGINIZ DERS YOK!' RETURN -1 END
74 DELETE FROM DERSLER WHERE AND AND RETURN 0 CREATE PROC REAL AS UPDATE DERSLER SET DONEM=@DONEM, GRUP=@GRUP, KOD=@KOD, DERSIN_ADI=@AD, SAAT=@SAAT, KREDI=@KREDI WHERE ID=@ID ÇALIŞTIRMAK İÇİN: EXEC SX_DERSDEGIS ORNEK:DEĞİŞİKLİK YAPILAN DERSİN AYNISINDAN VARSA BU DERSİN OLDUĞU UYARISINI VEREN PROGRAM CREATE PROC REAL AS IF EXISTS( SELECT * FROM DERSLER WHERE DONEM=@DONEM AND KOD=@KOD AND GRUP =@GRUP AND ID<>@ID)
75 BEGIN SELECT 'BU DEÐÝÞÝKLÝK YAPILAMAZ. ÇÜNKÜ AYNI DONEMDE BOYLE BÝR DERS VAR' RETURN -1 END UPDATE DERSLER SET WHERE NOT: DERSLER TABLOSUNDAN DERSİN ADI KOLONU SAÇMA AYNI KODLA FARKLI İSİMLER YAPILABİLİR. BUNU ÖNELEMEK İÇİN DERS ADI VE DERS KODU FARKLI TABLODA OLUŞTURULMALI. ÖRNEK: YENI TABLO OLUŞTURMA: CREATE TABLE DERSLERBILGI( [BILGIID] [İNT] IDENTITY(1,1) NOT NULL, [KOD] [VARCHAR](6) COLLATE TURKİSH_CI_AS NOT NULL, [DERSIN_ADI] [VARCHAR](50) COLLATE TURKİSH_CI_AS NOT NULL, [SAAT] [İNT] NOT NULL DEFAULT ((0)), [KREDI] [REAL] NOT NULL DEFAULT ((0)), CONSTRAINT [PK_DERSLERBILGI] PRIMARY KEY CLUSTERED ( [BILGIID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
76 SET ANSI_PADDING OFF ÖRNEK ASAL SAYI BULAN PROSES ÖRNEK: VERİLEN SAYININ ASAL OLUP OLMADIĞINI BULAN PROGRAM YAZINIZ? ALTER PROC REAL AS IF EXISTS( SELECT * FROM DERSLER WHERE DONEM=@DONEM AND KOD=@KOD AND GRUP=@GRUP ) BEGIN SELECT 'GIRMEK ISTEDIGINIZ DERS ZATEN VAR!' RETURN -1 END INSERT INTO DERSLER RETURN SCOPE_IDENTİTY()
77 KULLANICI TANIMLI FONKSİYONLAR A)SKALER DEĞERLİ FONSİYONLAR CREATE FUNCTION FONKSİYON_ADI (PARAMETRELER) RETURNS FONKSİYONUN_DEĞERİNİN_TİPİ AS BEGIN FONKSİYONUN İŞLEVİNİ PROGRAMLAYAN SATIRLAR RETURN FONKSİYONUN_DEĞERİ END CREATE FUNCTION FN_KARE INT) RETURNS INT AS BEGIN RETURN END SELECT DBO.FN_KARE(5)
78 ÇALIŞTIRMAK İÇİN BAŞINA DVO YAZDIK. BU FONKSİYONUN KİME AİT OLDUĞUNU BİLMEK İSTİYOR. DVO YAZMAZSAK BU FONKSİYONU SİSTEM FONKSİYONU OLARAK DÜŞÜNÜR. DATA BASE OLDER UN OLUŞTURDUĞU FONKSİYON (VERİ TABANI SAHİBİNİN KULLANDIĞI FONSİYONLAR) SAISLEMLER İÇİNDEKİ FONKİSYONU KULLANIR. SELECT MT487_OGR21.DBO.FN_KARE(5) 21. MASADAKİ DATA BASE DEKİ FONKSİYONU ÇALIŞTIRIR. SET X=1 YADA SELECT X=1 DİYEBİLİRZ. BİR DEĞİŞKENE DEĞERİ BÖYLE ATAYABİLİRİZ. DİĞER PROGRAMLARDA TİPİ PROGRAMIN KENDİSİ KENDİ KENDİNE ÇEVİREBİLİR. AMA BU HATA YAPMAMIZI SAĞLAYABİLİR. İYİ DİLLERDE MUTLAKA TİPİNİ BELİRLENMESİ İSTENİR. SQL DE DE TİP GİRMEK MECBURİDİR. CAST: ROLLER AS VARCHAR(4)) ÖRNEK: VERİLEN BÜYÜK KÜÇÜK KAREKTERLERİ DÜZELTEN FONKSİYON: ALTER FUNCTION VARCHAR(50)) RETURNS VARCHAR(50) AS
79 BEGIN IS NULL RETURN '' IF RETURN END SET SELECT DBO.FN_DUZELT('YUSUF') B) TABLO DEĞERLİ FONKSİYONLAR 1) INLİNE TABLO DEĞERLİ FONKSİYONLAR: CREATE FUNCTION FONKSİYON_ADI (PARAMETRELER) RETURNS TABLE AS RETURN ( BİR SELECT DEYİMİ ) ÖRNEK: ILKODU GİRDİĞİMİZDE İLÇELERİ GETİREN BİR FONSİYON YAPINIZ. CREATE FUNCTION FN_ILIN_ILCELERI (@ILKOD INT) RETURNS TABLE AS RETURN(SELECT ILCEKOD, ILCEAD FROM ILCE WHERE (ILKOD ÇALIŞTIRIRKENDE BİR VIEW GIBI TABLO DEGERLI FONKSIYONLARI AŞAĞIDAKİ GİBİ ÇALIŞTIRABİLİYORUZ.
80 SELECT FROM ILCEKOD, ILCEAD FN_ILIN_ILCELERI('34') ÖRNEK: AYNI FONSİYONDA İL ADINIDA GETİRESİN İSTERSEK. SELECT KISMINI TARA DESİGN QUERY YAP VE İLKODLARINI BAĞLA VE TAMAM DE. ALTER FUNCTION FN_ILIN_ILCELERI INT) RETURNS TABLE AS RETURN(SELECT ILCE.ILCEKOD, ILCE.ILCEAD, IL.ILAD FROM ILCE INNER JOIN IL ON ILCE.ILKOD = IL.ILKOD WHERE (ILCE.ILKOD CREATE FUNCTION FN_ILCELER(@ILKOD INT) TABLE(ILKOD INT, ILAD VARCHAR(20), ILCEAD VARCHAR(20), ILCEKOD INT) AS BEGIN INSERT ILAD, ILCEAD, ILCEKOD) VALUES (@ILKOD, 'ÝSTANBUL','BAKIRKÖY',3) INSERT ILAD, ILCEAD, ILCEKOD)
81 END VALUES 'ANKARA','ÇANKAYA',4) RETURN ÇALIŞTIRMAK İÇİN: SELECT * FROM FN_ILCELER(34) ÖRNEK: GİRDİĞİNİZ SAYIDAN KÜÇÜK TEK TAMSAYILARI GÖSTEREN PROGRAM YAZALIM CREATE FUNCTION FN_TEKSAYILAR(@N INT) TABLE (I INT) AS BEGIN INT BEGIN INSERT VALUES (@J) END RETURN END SELECT * FROM FN_TEKSAYILAR(5)
82 ÖRNEK: BİR TABLODAKİ ÖĞRENCİ KREDİ VE NOT ÇİZELGELERİNİ KULLANARAK GNO HESAPLAYAN PROGRAM YAZINIZ. ID KREDI NT DERS INT REAL REAL INT CREATE FUNCTION INT) RETURNS REAL AS BEGIN REAL =(SELECT SUM (KREDI) FROM KARNE WHERE (SELECT SUM (KREDI*NT) FROM KARNE WHERE RETURN END ÇALIŞTIRMAK İÇİM: SELECT DBO.FN_GNO(1)
83 ÖRNEK: ÖYLE BİR INLINE DEĞERLİ FONKSİYON YAZINKİ CREATE FUNCTION REAL) ID KREDI NT DERS GNO TABLOSUNU DOLDURSUN. CREATE FUNCTION INT) RETURNS TABLE AS RETURN( SELECT ID, KREDI, NT, DERS, AS GNO FROM KARNE WHERE (ID ÇALIŞTI: SELECT * FROM DBO.FN_KARNE (1) NOT:PROGRAM HER SATIRDA GNO HESAPLAR. BUDA BÜYÜK PROGRAMLARDA ÇOK BÜYÜK SORUN OLUŞTURUR. ACABA GNO YU BİR DEFA HESAPLAYAN BİR PROGRAM YAZABİLİRMİYİZ?
84 BUNU YAPMAK İÇİN BİR PRESEDÜR YAZMAMIZ LAZIM! CREATE PROCEDURE INT AS REAL = DBO.FN_GNO(@ID) SELECT ID, KREDI, NT, DERS,@GNO AS GNO FROM KARNE WHERE (ID ÇAŞILIR: EXEC SX_KARNE 1 OLUŞAN BU TABLOYU BİR SELECT CÜMLESİNDE KULLANABİLMEMİZ LAZIM. NORMALDE FONSİYONLA YAPTIĞIMIZ TABLOYU KULLANABİLİRİZ. AMA BU PROSEDÜRÜ ASLA BİR SELECT CÜMLESİNDE KULLANAMAYIZ. CREATE FUNCTION FN_KARNE2 (@ID INT) TABLE (ID INT, KREDI REAL,NT REAL, DERS INT, GNO REAL) AS BEGIN REAL = DBO.FN_GNO(@ID) INSERT (ID, KREDI, NT, DERS,GNO ) SELECT ID, KREDI, NT, DERS,@GNO AS GNO FROM KARNE WHERE (ID RETURN END ÇALIŞTIR: SELECT * FROM DBO.FN_KARNE2 (2)
85 ARTIK BU TABLOUYU İNNER JOIN YAPABİLİRİM BAŞKA TABLOYLA BAĞLAYABİLİRİM. SELECT FN_KARNE2_1.KREDI, FN_KARNE2_1.NT, FN_KARNE2_1.DERS, FN_KARNE2_1.GNO, SINIF.ADSOYAD, SINIF.CINS, SINIF.BOLUM FROM DBO.FN_KARNE2(2) AS FN_KARNE2_1 INNER JOIN SINIF ON FN_KARNE2_1.ID = SINIF.ID TETİKLEYİCİLER (TRIGGER) BİR TABLO HAKKINDA YAZILAN GİZLİ (BİLG. ÖNÜNDE OTURULUYARSA SAKLI DEĞİL) BİR YORDAMDIR. A) AFTER TRIGGER B) INSTEAD OF TRIGGER
86 A) ALTER TRIGGER: BELİRLİ BİRŞEYLER OLDUKTAN SONRA HAREKETE GEÇ VE BİRŞEYLER YAP. INSERT, DELETE, UPDATE İŞLEMLERİ GERÇEKLEŞTİKTEN SONRA İŞLEME GİREN PROGRAMLAR. B) INSTEAD OF TRIGGER: BELİRLİ BİR İŞLEM YAPILMADAN BİR BAŞKA İŞLEMİN YAPILAMSINI SAĞLAYAN TRIGGER LARDIR. ÖRNEK: BU ÖRNEKTE ÖNCELİKLER ÜÇ TABLO OLUŞTURALI M. MÜŞTERİLER, KİTAPLAR VE SATIŞLAR: CREATE TABLE MÜŞTERİLER ( MÜŞTERİNO İNT IDENTITY (1, 1) NOT NULL, AD NVARCHAR (20), SOYAD NVARCHAR(20) ) GO CREATE TABLE ÜRÜNLER ( ÜRÜNNO İNT IDENTITY (1, 1) NOT NULL, ÜRÜNAD NVARCHAR (255), STOK İNT ) GO CREATE TABLE SATI ŞLAR ( FİŞNO İNT IDENTITY (1, 1) NOT NULL, MÜŞTERİNO İNT, ÜRÜNNO İNT, ADET İNT, TARİH SMALLDATETİME ) GO INSERT INTO DBO.URUNLER VALUES ('CETVEL','30') SELECT * FROM MUSTERİLER SELECT * FROM URUNLER CREATE TRIGGER SATİSGİR_STOKGUNCELLE ON SATİSLAR FOR INSERT AS UPDATE URUNLER SET STOK=A.STOK-İ.ADET FROM URUNLER A INNER JOIN INSERTED İ ON A.URUNNO=İ.URUNNO
87 İKİ ADET SATIŞ INSERT INTO SATİSLAR(MUSTERİNO, URUNNO, ADET, TARİH) VALUES (1,1,50,GETDATE()) INSERT INTO SATİSLAR(MUSTERİNO, URUNNO, ADET, TARİH) VALUES (1,2,10,GETDATE()) BU BİR ALTER TRIGGER İ. GERÇEKLEŞTRİLEN İŞLEM EĞER YANLIŞSA ÖRNEĞİN SOKTAN DAHA FAZLA SATIŞ YAPILIRSA ALTER TRIGGER SATİSGİR_STOKGUNCELLE ON SATİSLAR FOR INSERT
88 AS FROM URUNLER A INNER JOIN INSERTED İ ON A.URUNNO=İ.URUNNO BEGIN ROLLBACK TRANSACTION END ELSE UPDATE URUNLER SET STOK=A.STOK-İ.ADET FROM URUNLER A INNER JOIN INSERTED İ ON A.URUNNO=İ.URUNNO ALTER TRIGGER SATİSGİR_STOKGUNCELLE ON SATİSLAR FOR INSERT AS FROM URUNLER A INNER JOIN INSERTED İ ON A.URUNNO=Ý.URUNNO BEGIN ROLLBACK TRANSACTION RAISERROR ('GİRİLEN ÜRÜNLERDEN BİRİ STOKDAN FAZLA',16,1) END ELSE UPDATE URUNLER SET STOK=A.STOK-İ.ADET FROM URUNLER A INNER JOIN INSERTED İ ON A.URUNNO=Ý.URUNNO
89 SATILAN MAL ADETİ STOKTAN FAZLA OLDUĞU İÇİN YAZDIĞIMIZ HATA MESAJINI VERDİ VE TABLOYU DEĞİŞTİRMEDİ. CREATE TRIGGER SATİSSİL ON SATİSLAR FOR DELETE AS FROM URUNLER A INNER JOIN DELETED D ON A.URUNNO=D.URUNNO UPDATE URUNLER SET STOK=STOK+@ADET WHERE URUNNO=@URUNNO BİR TABLODAN BİRŞEYİ DELETE EDECEKSEK ÖNCE ONU DELETED ADLI BİR TABLOYA KOYUYOR SONRA DELETE EDİYOR. İŞLEM BİTENE KADAR ORADA TUTUYOR. BU SAYEDE YAPTIKLARIMIZI İPTAL ETMEK İÇİN GERİ DÖNÜŞ SAĞLIYOR.
EXISTS VE NOT EXISTS fonksiyonları
EXISTS VE NOT EXISTS fonksiyonları Kullanımı EXISTS (sorgu) : eğer sorgudan bir yada daha fazla kayıt dönerse değeri true (doğru), hiç kayıt dönmez ise değeri false (yanlış) tır. NOT EXISTS : exists fonksiyonunun
DetaylıTRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.
TRIGGER Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir. DML ve DDL trigger lar olarak ikiye ayırmak mümkündür. DML (Data Manipulation
DetaylıYukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?
1) I. Tablo Oluşturma II. Veri Güncelleme III. Veri Silme IV. Veri Ekleme V. Tablo Silme Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir? a) I, IV ve V b) II, III ve IV
DetaylıSQL TRIGGERS (Tetikleyiciler)
Trigger kelime anlamı olarak tetikleyici demektir. Trigger, SQL de bir sorgu çalıştırdığımızda, başka bir sorgunun çalışmasını sağlamak için yazılan koddur. Mesela bir tablodan kayıt sildiğimizde, başka
DetaylıSayfa 1 / 8. Tabo yapıları
Tabo yapıları KullanTur KullanTurNo INT Birincil anahtar(kullanıcının türü 0 : Öğrenci, 1: Öğretim elemanı KullanTurAd VARCHAR(20 NOT NULL GecikmeCeza MONEY NOT NULL DEFAULT(0 Kullanıcı türü için uygulanacak
DetaylıBir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.
TRIGGER Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir. Herhangi bir tablo üzerinde yapılan, insert, update veya
DetaylıTetikleyiciler (TRIGGER) Tetikleyiciler ne zaman kullanılırlar. Ardı Sıra Tetikleyiciler (After Triggers) Örnek
Tetikleyiciler (TRIGGER) Bir tetikleyici bir tabloya bağlı olarak bir takım işlemler yapan özel bir saklı yordamdır. Biz bu derste sadece Ardı Sıra Tetikleyici (After Trigger) ve Yerine Tetikleyici (Instead
DetaylıVeri Tabanı SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299
Veri Tabanı 1 1. SQL Server ve Management Studio kurulum linkleri: https://www.microsoft.com/en-us/download/details.aspx?id=42299 2. SQL Management Studio açılış ekranı: Server Type: reporting, analysis
Detaylı1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:
OtoKira bir çok yerde kiralama noktası olan bir araba kiralama şirketidir. Bu şirket bu kiralama noktalarında değişik araçlara sahiptir. Bu şirketin veri tabanı aşağıdaki tablolardan oluşmaktadır. KiralananYer
DetaylıKullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.
KULLANICI TANIMLI FONKSİYONLAR Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır. Fonksiyonları veritabanı programlamada
DetaylıSP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'
Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları
Detaylı2008 09 Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları
2008 09 Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları Hayali bir şirket için BizimŞirket isimli bir veritabanı oluşturulmuş ve aşağıdaki tablolar yapılmıştır. Lütfen tabloları dikkatlice
DetaylıT.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR
T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR YÜKSEK LİSANS PROJESİ Mehmet Emin AKKAYA Danışman: Yrd. Doç.
DetaylıMT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)
Öğrenci No: Ad Soyad: İmza: MT 487 Bilgisayarda Veri Yapıları 2005-06 Güz Yarıyıl Sonu Sınavı 20.01.2006 AÇIKLAMALAR Cevaplar toplam 60 puan üzerinden değerlendirilecektir. Her soru 4 puandır. Soruları
DetaylıSQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.
SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır. Bu dersimizde biz Microsoft SQL Server veritabanı sistemini kullanmayı öğreneceğiz. SQL Nedir? SQL Structured Query Language
DetaylıKULLANICI TANIMLI FONKSİYONLAR (Devam)
KULLANICI TANIMLI FONKSİYONLAR (Devam) Skaler değerli fonksiyon örneği: Parametre müşteri grubu olacak, eğer grubu parametresi değeri NULL olursa, tüm müşteri sayısını, NULL değilse girilen gruptaki müşteri
DetaylıSQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır.
SQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır. Yapı SQL içinde tanımlı bir fonksiyonu kullanmak için genel yapı Fonksiyon_adı(Fonksiyonun argümanları)
Detaylı20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi
20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi 1) Aşağıdaki SQL Server sürümlerinden hangisi ana sürümlerden bir tanesidir? a) Parallel Data Warehouse b) Express c) Standart d) Developer
DetaylıSAKLI YORDAM (Stored Procedure) Sibel Somyürek
SAKLI YORDAM (Stored Procedure) Sibel Somyürek Saklı Yordam Saklı yordamlar veritabanı kataloğunda saklanan SQL kod bloklarının tanımlanmasıdır. Mesela, iki sayı alıp bunların toplamlarını hesaplayan bir
DetaylıKULLANICI TANIMLI FONKSİYONLAR
KULLANICI TANIMLI FONKSİYONLAR Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır. Fonksiyonları veritabanı programlamada
DetaylıKULLANICI TANIMLI FONKSİYONLAR (Devam)
KULLANICI TANIMLI FONKSİYONLAR (Devam) Skaler değerli fonksiyon örneği: Parametre müşteri grubu olacak, eğer grubu parametresi değeri NULL olursa tüm müşteri sayısını, NULL değilse verilen gruptaki müşteri
DetaylıVERİ TABANI ve YÖNETİMİ
VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -10- FONKSİYONLAR 3 Giriş Geçen haftaki derslerimizde Görünümleri (View) ve Stored Procedure (SP) leri öğrendik. Bu hafta
Detaylı2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?
1- ' select cast ('500' as nvarchar) + cast ('250' as nvarchar) sorgusunun sonucu olarak aşağıdakilerden hangisi döner? a) 750 b) 250 c) 500250 d) 500 e)250500 2- Total de 8000 byte yer tutup 4000 karakter
DetaylıAşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.
Bu Derste Öğrenecekleriniz: 1- Basit Sorgulamalar a. Tablodan tüm alanları sorgulama b. Tablodan alanları belirterek sorgulama c. Tekrarlı satırları önleme d. Belirli sayıda veya oranda sorgulama yapma
DetaylıBu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.
18 SQL SORGU DİLİ SQL (Structured Query Language) yapısal sorgu dili, veritabanı yönetim sistemlerinin standart programlama dili olarak bilinmektedir. SQL dilinin Access içinde sorgu pencerelerinde veya
DetaylıFonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.
Fonksiyonlar tamamen işimizi kolaylaştırmak adına sürekli olarak tekrarladığımız sql sorgularına tek bir noktadan erişmemizi sağlar. Buda bize hızlı bir erişim imkanı,hızlı bir hata kontrol mekanizması,
Detaylı«BM364» Veritabanı Uygulamaları
HAFTA 6 T-SQL ile Programlar Yazmak" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı Programlama dili olarak T-SQL Fonksiyonlar Programlamak
DetaylıAşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.
Bu Derste Öğrenecekleriniz: 1- Birden Fazla Tablodan Sorgulama 2- Tablo Birleştirme işlemleri (JOIN) a. INNER JOIN b. OUTER JOIN i. LEFT OUTER JOIN ii. RIGHT OUTER JOIN iii. FULL OUTER JOIN 3- Tablo Ekleme
DetaylıVeri Tabanı Programlamaya Giriş
Veri Tabanı Programlamaya Giriş Kitap özeti Veri Tabanı Programlamaya Giriş SQL insanların veritabanı sistemleri ile konuşmasını sağlayan popüler bir dildir. Bu dil sayesinde, bir veritabanından kayıtları
DetaylıTablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu
SQL'DE VERİ İŞLEME KOMUTLARI SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,
DetaylıSP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'
Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları
Detaylı8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon
ORACLE GİRİŞ Oracle ile SQL Server ın karşılaştıralım. 1 Oracleda veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, değiştirme ve silme kodları aynı. 3
DetaylıMaltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)
Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301) GENEL DERS BİLGİLERİ Öğretim Elemanı : Öğr. Gör. Erdal GÜVENOĞLU Ofis : MUH 313 Ofis Saatleri : Pazartesi: 10.00-12.00,
DetaylıSTORED PROCEDURE LER (Saklı Yordamlar)
STORED PROCEDURE LER (Saklı Yordamlar) Eskiden yazılımlar, sadece prosedür denilen kod parçalarından oluşurdu. Her prosedür belli bir işlevi yerine getirmek için yazılmış kod parçalarıdır. Mesela, 2 sayı
DetaylıTEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.
TEMEL SQL SORGU ÖRNEKLERİ Sorgu İle Veritabanı Oluşturma create database veritabanı_adı Örnek : create database db_okul Yukarıdaki sorguyu çalıştırdığımızda db_okul adında bir veritabanı oluşturulur. Örnek:
DetaylıAşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.
Bu Derste Öğrenecekleriniz: 1- Tabloya Veri (Yeni Kayıt) Ekleme 2- Kayıt Silme 3- Kayıt Güncelleme Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu
DetaylıMysql Veritabanı Komutları
Mysql Veritabanı Komutları Mysql Veri Tabanı Komutları Hazırlayan : M. Başar ACAROĞLU Kaynaklar: http://www.hrzafer.com/sql-dersleri http://www.w3schools.com/sql/default.asp Veri Tabanı Nedir? Mysql Veritabanı
DetaylıSQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler
SQL'e Giriş 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
DetaylıSorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.
Oracle (Devam) SELECT INTO Deyimi Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir. Genel ifade: SELECT kolonisimler INTO
DetaylıTavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.
Ms SQL Veritabanı Nesneleri Bölüm Veritabanı Yönetimi Yazar Öznur KARAKUŞOĞLU Yayın Tarihi 15.04.2004 Okunma Sayısı 1110 Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek. Hedefler Veritabanı
DetaylıSORGULAR. Öğr.Gör.Volkan Altıntaş
SORGULAR Öğr.Gör.Volkan Altıntaş SORGULAR VE ÇEŞİTLERİ Seçme Sorguları: En sık kullanılan sorgu türüdür. Seçme sorguları, bilgileri veri sayfası görünümü nde gösteren veri tabanı nesnesi türüdür. Sorgu,
DetaylıACCESS PLATFORMUNDA SQL
ACCESS PLATFORMUNDA SQL (STRUCTURED QUERY LANGUAGE) KODLAMA ÖRNEKLERİ DISTINCT : Bir alanda birbirinin aynı kayıtlar bulunabilir. Öğrenciler tablosundaki aynı isimde öğrencilerin bulunması durumunda aynı
DetaylıSQL Stored Procedure
SQL Server'daki Stored procedure'lar aynı diğer programlama dillerindeki procedure'lara benzer. SQL deyimlerini içeren komut doayaları hazırlanır ve sunucu üzerinde saklanır. Stored procedure aracılığıyla
DetaylıTESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi
1. 2. 3. 4. 5. 6. Görünüm (view) için özellikle aşağıdakilerden hangisi söylenebilir?? a) Veritabanındaki kayıtlı verileri düzenlemek, yönetmek ve elde etmek için kullanılan bir dildir b) Bir ilişkinin
Detaylı5 SQL- Yapısal Sorgulama Dili. Veritabanı 1
5 SQL- Yapısal Sorgulama Dili Veritabanı 1 SQL- Yapısal Sorgulama Dili SQL ifadeleri yapısal olarak üç gruba ayrılır. Veri Tanımlama Dili (DDL - Data Definition Language) Veri İşleme Dili (DML - Data Manipulation
DetaylıAşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.
Bu Derste Öğrenecekleriniz: 1- Sorgulama Yaparken Gruplama (GROUP BY) 2- Gruplamada Koşul Kullanımı (HAVING) 3- Sorgulama Yaparken Sıralama (ORDER BY) 4- Sorgulamalarda İşlem Yapma 5- Güncellemelerde İşlem
DetaylıVeri Tabanı-I 9.Hafta
Veri Tabanı-I 9.Hafta SELECT komutu 1 SELECT YAPISI SELECT FROM [WHERE ] , veritabanından değerleri alınacak olan kolonların listesidir. kolon_listesi
DetaylıKişiler tablosundan AD kolonu yusuf olan tüm satırları siler. ORDER BY deyimi bir tablodan SELECT ile seçilen verileri sıralamak için kullanılır.
DELETE Deyimi DELETE deyimi bir tablodan veri silmek için kullanılır. DELETE tablo_adı [WHERE arama_koşulu] Örneğin DELETE Kişiler WHERE (SIRANO = 1) Kişiler tablosundan SIRANO = 1 olan satırı siler. DELETE
DetaylıVeri Tabanı ve Yönetimi
Veri Tabanı ve Yönetimi Transaction Trigger 1Muhammer İLKUÇAR, MAKÜ-2011 BURDUR TRANSACTİON TRANSACTİON: İşlem bütünlüğü sağlar. Tranasction bloğu içindeki komutlar bir bütün olarak işlenir. Komutların
DetaylıVERİ TABANI ve YÖNETİMİ
VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -12- TETİKLEYİCİ (TRIGGER) 3 Giriş Trigger lar Trigger lar Ne Zaman Kullanılmalıdır? Klasik Trigger ların Özellikleri
DetaylıOracle da kullanılan veri tipleri:
ORACLE A GİRİŞ Oracle ile SQL Server ı karşılaştıralım, 1 Oracle da veritabanı yerine kullanıcı oluşturulur. Kullanıcılar veritabanı gibi davranır. 2 Tablo oluşturma, yapısını değiştirme, silme kodları
DetaylıSQL Kod ile Tablo Oluşturma
SQL Kod ile Tablo Oluşturma Aşağıdaki SQL kodları Veri tabanı hazırlama programında yazılıp çalıştırıldığı zaman PERSONEL adında bir tablo oluşturulur ve bu tablonun sütunları Personel_no, Adı, Soyadı
DetaylıVERİTABANI. SQL (Structured Query Language)
VERİTABANI SQL (Structured Query Language) SQL'de Gruplama Bir tablonun satırları gruplara ayrılarak fonksiyonların bunlara uygulanması mümkündür. Gruplara ayırmak için SELECT deyimi içerisinde GROUP BY
DetaylıSQL e Giriş. Uzm. Murat YAZICI
SQL e Giriş Uzm. Murat YAZICI SQL (Structured Query Language) - SQL Türkçe de Yapısal Sorgulama Dili anlamına gelmektedir ve ilişkisel veritabanlarında çok geniş bir kullanım alanına sahiptir. - SQL ile
DetaylıTablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler
SQL'de Veri İşleme Komutları SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,
DetaylıVeritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.
VERİ BÜTÜNLÜĞÜ VTYS lerde veri bütünlüğünü sağlamanın iki temel yolu vardır; Tanımlanabilir veri bütünlüğü ve prosedürel veri bütünlüğü. Tanımlanabilir veri bütünlüğü, tanımlanan nesnelerin kendi özellikleri
DetaylıGruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç
I. SQL FONKSİYONLARI SQL Server'da Fonksiyonlar, hesaplamalarda ve özellikle sistem hakkında bilgi almada yaygın olarak kullanılan araçlardır. Transact-SQL (T-SQL) programlama dilinde değişik kategorilerle
DetaylıDAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.
DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü
DetaylıVeritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)
Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language) Konular Yapısal SQL Komutları Gruplama İşlemi SQL Fonksiyonları Kaynaklar 2 SQL (Structured Query Language) SQL Carlos
DetaylıBAYİLERİMİZE ÖZEL. 13 Ağustos İlgili Modül/ler : Genel. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL
13 Ağustos 2011 İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL SQL SORGU ÖRNEKLERİ CARİ KART TABLOSUNDAKİ BÜTÜN ALANLARIN LİSTELENMESİNİ SAĞLAYAN SORGU SELECT * BAYİLERİMİZE ÖZEL İlgili Modül/ler : Genel CARİ
DetaylıVeritabanına Uygulanması
Add, Alter Drop, Alter Change, Alter Sql komutları ve açıklamaları CREATE CREATE TABLE Üzerinde çalışma yapılan veritabanı içerisinde yeni bir tablonun oluşturulmasını sağlar. CREATE TABLE tablo_adı (alan_adı1
DetaylıSQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.
SQL PROGRAMLAMA BATCH Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı deyimidir. SELECT. UPDATE...... DELETE.. BATCH BATCH Özellikleri 1- Bir batch içinde bir deyimde yazım hatası olduğunda
Detaylı-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.
T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak
Detaylı1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:
Bu Derste Öğrenecekleriniz: 1- MS SQL Server 2008 Kurulumu ve Tanıtımı 2- Komut Kullanarak Veritabanı Oluşturma ve Silme 3- SQL Yazım Kuralları Kurulum: Sistem gereksinimleri: Desteklenen işletim sistemleri:
DetaylıBilgisayar Uygulamaları. MySql
MySql MySql,; Oracle, Progress, MsSql, PostgreSql gibi veri tabanı programıdır. Kullanılan dil SQL (Structured Query Language) yapısal sorgulama dilidir. Lisansı GNU General Public License olarak bilinen
DetaylıVeri Tabanı Hafta Dersi
Veri Tabanı - 1 7. Hafta Dersi Dersin Hedefleri SQL Yapısal Sorgulama Dili Veri Tanımlama Dili (DDL) Create Alert Drop Veri tanımlama dili verinin ne olduğundan çok verinin tipi ile ilgilenir. Veri tabanı
DetaylıVERİTABANI ve YÖNETİMİ
VERİTABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü 2 BÖLÜM -7- VERİLERİ GRUPLAYARAK ANALİZ ETMEK 3 Genel Bakış Grup fonksiyonlarının tanımlanması, Gruplama işlemlerini, Gruplama
DetaylıEBE-368 Veri Tabanı Yönetim Sistemleri SQL
EBE-368 Veri Tabanı Yönetim Sistemleri SQL Dr. Dilek Küçük SQL Sorgu Dili [1] Ogrenci no ad soyad yas ortalama 21325 Necla Yılmaz 18 2,9 21345 Öykü Okan 20 2,1 21378 Elçin Demir 19 3,3 21389 Özgür Kara
DetaylıSQL Komutları (2) Uzm. Murat YAZICI
SQL Komutları (2) Uzm. Murat YAZICI Sıralama Sıralama işlemi için SELECT ifadesinde ORDER BY kullanılır. Bu ifadede ASC kelimesi kullanılırsa sıralama küçükten büyüğe doğru (A-Z), DESC kullanılırsa büyükten
DetaylıPostgreSQL ve PL/pgSQL
PostgreSQL ve PL/pgSQL Adnan DURSUN Uygulama tasarım ve geliştiricisi @ : adnandursun.at.asrinbilisim.com.tr : +AdnanDURSUN Sunum Akışı PL/pgSQL nedir PL/pgSQL neden kullanmalıyız PL/pgSQL in yapısı Saklı
DetaylıSorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.
Oracle (Devam) SELECT INTO deyimi Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur. Genel ifade; SELECT koloisimleri INTO değişkenisimleri
DetaylıVERĐTABANI YÖNETĐM SĐSTEMLERĐ
VERĐTABANI YÖNETĐM SĐSTEMLERĐ Öğr.Gör.Sedat Telçeken ANADOLU ÜNĐVERSĐTESĐ FEN FAKÜLTESĐ MATEMATĐK BÖLÜMÜ 2005 2006 Bahar Dönemi D M L Bilindiği üzere SQL tablolar üzerinde sorgulama yapar. Bu sorgular
Detaylı3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri. 1.2. Kısıtlamalar (Constraints)
Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.
DetaylıData Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı
Data Programming SQL Language Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 15 Mar 2016 1 SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından
DetaylıVeritabanı. SQL (Structured Query Language)
Veritabanı SQL (Structured Query Language) SQL (Structured Query Language) SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için kullanılan dildir. SQL, bütün kullanıcıların ve uygulamaların veritabanına
DetaylıElbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU
Elbistan Meslek Yüksek Okulu 2015 2016 GÜZ Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Tetikleyici : Tetikleyici (trigger), SQL Server üzerinde herhangi bir işlem gerçekleştiğinde başka bir işlemin tetiklenmesi
DetaylıVERİ TABANI YÖNETİM SİSTEMLERİ I
BÖLÜM 7 7. TEMEL SQL KOMUTLARI-I SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında
DetaylıMicrosoft SQL Server Sorgulama
Microsoft SQL Server Sorgulama Eğitim Takvimi Tarih Eğitim Süresi Lokasyon 26 Kasım 2018 3 Gün Bilginç IT Academy Eğitim Detayları Eğitim Süresi : 3 Gün Kontenjan : 12 Ön Koşullar : Herhangi bir ön koşul
DetaylıIN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.
Alt Sorgular SQL Serverda sorgu içinde sorgu da oluşturulabilir. Sorgu içinde sorgu, içteki sorgunun dışta olan sorguya değer üretmesidir. Bu, bir değer veya birden fazla değer olabilir. IN ve NOT IN Tablodaki
Detaylı3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri
Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f.
Detaylı1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like
1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like A% Select * From Kisiler Where Adi Like %A Select *
DetaylıBölüm 4: DDL Veri Tanımlama Dili
Bölüm 4: DDL Veri Tanımlama Dili -43- Dr. Serkan DİŞLİTAŞ DDL (Data Definition Language Veri Tanımlama Dili : Bu kategorideki SQL komutları ile veritabanları, tablo, görünüm ve indekslerin yaratılması,
Detaylı6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar
6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar Veritabanı 1 1 Aritmetiksel Operatörler SELECT adi,soyadi, maas + maas*10/100 zamlimaas FROM tbl_personel select 3*5 select 5+3 select 3*5,3+5, 3/5 select
Detaylı«BM364» Veritabanı Uygulamaları
HAFTA 3 Veritabanı Tasarımı" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı Veritabanı Tasarımı Kuramlar Veritabanı Nesnesini Yapılandırmak
DetaylıTETİKLEYİCİ. Tetikleyici Ne Zaman Kullanılır? Çeşitli amaçlara uygun olarak tetikleyiciler kullanılabilir.
TETİKLEYİCİ Tetikleyici(trigger), SQL Server üzerinde herhangi bir işlem gerçekleştiğinde başka bir işlemin tetiklenmesi için kullanılır. Tetiklenecek işlem tamamen bizim belirlediğimiz çerçevede başka
DetaylıYAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com
YAPISAL SORGULAMA DİLİ BARIŞ ARIBURNU barisariburnu.com barisariburnu.@gmail.com SQL, insanların veritabanı sistemleri ile konuşmasını sağlayan popüler bir dildir. SQL, tüm veritabanı programlarında kullanılabilir.
DetaylıASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ
ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ Asp.NET mimarisinin temelini oluşturan CLASS yapısını kullanarak veri tabanı işlemlerini nasıl daha az kodla ve daha stabil yapabiliriz bunu göreceğiz. Mevzu
DetaylıÖğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri
Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II Değişken Tanımlama Ve Akış Kontrol Deyimleri Değişken Tanımlama Değişken isimlerinin başında @ sembolü bulunur. @ad, @soyad, @tarih değişken isimlerine birer örnektir.
DetaylıLıke Joker Karakterler, Is [not] Null, Order By, Group By, As
LIKE (Joker Karakterler) Joker karakterleri kullanarak bir veri sütunu veya ifadeler içinde desen arayabilirsiniz. Örneğin, soyadları "Ak" ile başlayan veya "kaya" ile biten tüm çalışanları arayabilirsiniz.
DetaylıBMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü
BMB202. Veritabanı Yönetimi Ders 6. SQL Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı SQL Fonksiyonları Çoklu Tablo İşlemleri İç içe Select ler JOIN Birleştirme
DetaylıBİLİŞİM TEKNOLOJİLERİ
T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ VERİ TABANI YÖNETİMSEL FONKSİYONLARI Ankara, 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan
DetaylıÇok tablolu sorgulamalar
Çok tablolu sorgulamalar Eğer birden fazla tabloda yer alan verilerin tek bir sorgu ile görüntülenmesi istenirse FROM kısmında ilgili tablolar araya virgül konularak yazılmalı, WHERE kısmında ise o tabloları
DetaylıSQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com
SQL Deyimleri Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com SQL NEDİR? SQL bir veri tabanıyla iletişim kurmak için kullanılır. ANSI standardına göre ilişkisel veri tabanı yönetim sistemlerinin standart dilidir.
DetaylıGenel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler
Genel Kavramlar Veri Nedir? Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar Veri Tabanı Nedir? Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler Veritabanı Yönetim Sistemi (DBMS)Nedir?
DetaylıSQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.
SQL'e Giriş SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL (Structured Query Language) kendisi bir programlama
DetaylıVERİTABANI Veritabanı Yönetimi
VERİTABANI Veritabanı Yönetimi YAPILANDIRILMIŞ SORGULAMA DİLİ (SQL) Veritabanı yönetimi, veritabanının yapısal özelliklerini belirtmek ve değiştirmek, veritabanına kullanıcı erişimlerini ve yetkilerini
DetaylıPostgreSQL ve PL/pgSQL
PostgreSQL ve PL/pgSQL Adnan DURSUN Uygulama tasarımcı ve geliştirici adnandursun@asrinbilisim.com.tr 30.04.2011 İstanbul 1. PostgreSQL Türkiye Konferansı 1 Akış PL/pgSQL nedir PL/pgSQL neden kullanmalıyız
DetaylıBirden Çok Tabloda Sorgulama (Join)
Birden Çok Tabloda Sorgulama (Join) Join(Birleştirici), iki ya da daha fazla tabloyu aynı anda sorgulayarak bir sonuç tablosu (result table) oluşturmaya yarar. Örneğin: İki tabloyu birleştirici ile birleştirerek
DetaylıPursaklar İMKB Teknik ve Endüstri Meslek Lisesi
Modül 1: Eylül 3 (1) Veritabanı kavramını bilme. Tablo kavramını bilme. İlişkisel veritabanı kavramını bilme. Tablo yapısını tanımlayabilme. Tablolar arasında ilişkiler kurabilme. Anahtar alan kavramını
Detaylı