![]() | |
| | #2 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| SQL Komutlarının Sınıflandırılması Sorgulama ve Veri manipülasyonu (Data Manipulation Language - DML): Sorgulama ve değiştirme için kullanılır. (SELECT, INSERT, DELETE, UPDATE) Veri Tanımı (Data Definition Language - DDL) : Veriyapılarını yaratmak, değiştirmek ve silmek için kullanılır. (CREATE,ALTER,DROP,RENAME,TRUNCATE) Transaction Kontrolü veGüvenlik (Data Control Language - DCL) :Veriye ulaşımı kontrol etmek için kullanılır (COMMIT, ROLLBACK, SAVEPOINT,GRANT, REVOKE). |
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| SELECT SELECT cümlesi bir veri tabanından verileri seçmek ve çıkarmak (“retrieve”) için kullanılır. SELECT [DISTINCT] *, sütun [alias] {, sütun [alias] } FROM tablo|view|SELECT_komutu [alias] {, tablo|view|SELECT_komutu [alias] } [WHERE satır_seçme_şartı { and|or satır_seçme_şartı}] [GROUP BY sütun {, sütun } [HAVING grup_seçme_şartı { and|or grup_seçme_şartı}]] [ORDER BY sütun [ASC|DESC] {, sütun [ASC|DESC] }] Her SELECT komutunda mutlaka olması gereken iki kısım vardır; SELECT ve FROM. Bunlar dışındakiler gerekirse kullanılabilir. Sütun kullanılan her yerde tek başına veya iç içe geçmiş single row (tek satır) fonksiyonları kullanılabilir. Örneğin upper(rtrim(rname)) Group By komutu kullanılmadan Having komutunun kullanılmaması gerekir. Satır seçme veya grup seçme şartlarında SELECT cümleleri kullanılabilir. Bu şekilde yazılan SELECT cümlelerine NESTED Queries (İç içe geçmiş sorgu cümlecikleri) denir. SQL komutları genel olarak büyük harf küçük harf ayrımı yapmaz. SELECT cümleciğinde yıldız (*) kullanıldığında tüm sütunlar seçilmiş olur. WHERE cümleciği kullanılmazsa tablodaki tüm satırlar seçilmiş olur ve ekrana gönderilir. Aşağıdaki SQL ifadesi, hasta tablosundaki tüm satır ve sütunları ekranda listeler. SELECT * FROM hasta HS_KEY HS_AD HS_SOYAD CINSIYET ISLEMSAYI 1 İLKAY FINTIK E 4 2 SERDAL GÜZEL E 3 3 SERAP ATIŞ K 8 Sadece tablodaki bazı sütunların görünmesi gerekiyorsa, SELECT cümleciğinde bu sütunlar listelenir. SELECT hs_key, hs_ad, hs_soyad FROM hasta HS_KEY HS_AD HS_SOYAD 1 İLKAY ÇALIŞKAN 2 SERDAL GÜZEL 3 SERAP ATIŞ İstenir ise, aliaslar kullanılarak sütun başlıkları değiştirilebilir. SELECT hs_key AS dosyano, hs_ad AS hastad, hs_soyad AS hastasoyad FROM hasta DOSYANO HASTAAD HASTASOYAD 1 İLKAY ÇALIŞKAN 2 SERDAL GÜZEL 3 SERAP ATIŞ Sütunlar, sabit değerler, aritmetik işlemler veya diğer sütunlar ile birleştirilerek tek bir string haline getirilebilir. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS hastaad FROM hasta |
| | |
| | #4 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| Karşılaştırma Operatörleri Değişken veya değerleri doğrudan aritmetiksel büyüklük kıyaslama işaretlerini kullanarak karşılaştırma yapan operatörlerdir. Bunlar, !=, <>, ^=, =, >=, >, <=, < !=, <>, ^= Karşılaştırılan sütun ile değerin birbirinden farklı olan kayıtları listeler. = Karşılaştırılan sütun ile değer eşit olan kayıtları listelenir. >= Karşılaştırılan sütun ile değer eşit ve büyük olan kayıtları listelenir. > Karşılaştırılan sütunun verilen değerden büyük olan kayıtlar listelenir. <= Karşılaştırılan sütun ile değer eşit ve küçük olan kayıtları listelenir. < Karşılaştırılan sütunun verilen değerden küçük olan kayıtlar listelenir. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_key = 1 DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_key >= 2 DOSYANO HASTA CINSIYET ISLEMSAYI 2 SERDAL GÜZEL E 3 3 SERAP ATIŞ K 8 |
| | |
| | #5 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| SQL Karşılaştırma Operatörleri SQL ifadelerde IS NULL, IS NOT NULL, LIKE, NOT LIKE, IN ( değerler), NOT IN ( değerler), BETWEEN ... AND ..., NOT BETWEEN ... AND .... operatörleri, karşılaştırma operatörleri olarak kullanılır. · IS NULL : karşılaştırma yapılan sütunun içeri boş olanlarını listeler. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE babaad IS NULL DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 · IS NOT NULL : karşılaştırma yapılan sütunun, değeri boş olmayanlarını listeler. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE babaad IS NOT NULL DOSYANO HASTA CINSIYET ISLEMSAYI 2 SERDAL GÜZEL E 3 3 SERAP ATIŞ K 8 · LIKE : String alanlarda karşılaştırma operatörleri kullanıldığında, koşula uyan tüm kayıtlar listelenir. LIKE opretoründe ise, belirtilen değer sütun içinde kullanılan % parametresine göre konum belirlemeksizin aranır. % Parametresi sayesinde, aranan değerin başlangıç ve bitiş noktaları serbest bırakılır. WHERE hs_ad LIKE ‘İLK’ hs_ad sütun değeri ‘İLK’ olan tüm kayıtları listeler. WHERE hs_ad = ’İLK’ karşılaştırma ifadesi ile aynı anlamı taşır. WHERE hs_ad LIKE ‘İLK%’ hs_ad sütunu içine ilk 3 karekteri ‘İLK’ olan tüm kayıtları listeler. WHERE hs_ad LIKE ‘%İLK%’ hs_ad sütunu değerinin başlangıç ve bitiş değerlerine bakılmaksızın, içinde ‘İLK’ olan tüm kayıtları listeler. LIKE operatörü başına NOT eklenirse yukarıdaki tüm koşulların olumsuzu çalışır. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_ad LIKE ‘S%’ DOSYANO HASTA CINSIYET ISLEMSAYI 2 SERDAL GÜZEL E 3 3 SERAP ATIŞ K 8 SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_ad NOT LIKE ‘S%’ DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 · IN : Karşılaştırma operatörleri ile karşılaştırma yapıldığında, yalnızca bir değer için karşılaştırma yapılabilir. IN operatörü ise, bir sütunun birden fazla eşitliği kontrol edilebilir. WHERE hs_key IN (1,3) hs_key sütunun değeri 1 ve 3 olan kayıtlar listelenir. IN operatörünün başına NOT eklenir ise belirtilen koşulun olumsuzu çalışır. Böyle bir durumda, hs_key sütun değeri 1 ve 3 dışında olan kayıtlar listelenir. String alanlarda kullanıldığında koşul tırnak içinde yazılması gerekir. WHERE hs_ad in (‘İLKAY’) gibi. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_key IN (1,3) DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 3 SERAP ATIŞ K 8 SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_key NOT IN (1,3) DOSYANO HASTA CINSIYET ISLEMSAYI 2 SERDAL GÜZEL E 3 · BETWEEN ... AND ... : BETWEEN ’den önce belirtilen değer ile BETWEEN’den sonra belirtilmiş olan değerin arasında ve bu iki değere eşit olup olmadığını sorgulamak için kullanılır. SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE acistarih BETWEEN '10.10.2002' AND '11.10.2002' DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE hs_key BETWEEN 1 AND 2 DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 2 SERDAL GÜZEL E 3 “hs_key BETWEEN 1 AND 2”=”hs_key>=1 AND hs_key<=2” sorgu ifadesi de aynı sorgu sonuçlarını üretir. |
| | |
| | #6 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| SQL karşılaştırma veya karşılaştırma operatörleri arasına koşuları birbirine bağlamak için kullanılır. AND, OR ve NOT bu gruba giren operatörlerdir. 1. Koşul Tabloda da görüldüğü gibi, NOT operatörü ifadeye olumsuzluk katarak sonucun tam tersini türetir.Mantık Operatörü 2. Koşul SONUÇ NOT Doğru AND Doğru Doğru Yanlış Doğru AND Yanlış Yanlış Doğru Yanlış AND Doğru Yanlış Doğru Yanlış AND Yanlış Yanlış Doğru Doğru OR Doğru Doğru Yanlış Doğru OR Yanlış Doğru Yanlış Yanlış OR Doğru Doğru Yanlış Yanlış OR Yanlış Yanlış Doğru SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE (hs_key BETWEEN 1 AND 2) AND (islemsayi = 4) DOSYANO HASTA CINSIYET ISLEMSAYI 1 İLKAY ÇALIŞKAN E 4 SELECT hs_key AS dosyano, hs_ad || ’ ‘ || hs_soyad AS HASTA, cinsiyet, islemsayi FROM hasta WHERE NOT ((hs_key BETWEEN 1 AND 2) AND (ISLEMSAYI =4)) DOSYANO HASTA CINSIYET ISLEMSAYI 2 SERDAL GÜZEL E 3 |
| | |
| | #7 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| <H2 style="MARGIN: 12pt 0cm 6pt 28.8pt">GROUP BY</H2> Belirtilen kolon veya kolonlardaki tüm satırları bir araya toplar ve bu kolonlar üzerinde Kümeleme Fonksiyonlarının (“Aggregate Functions”) çalıştırılmasına izin verir. Kümeleme Fonksiyonları : MIN Seçilen kolonun en küçük değerini verir. MAX Seçilen kolonun en büyük değerini verir. SUM Seçilen kolonun sayısal toplamını verir. AVG Seçilen kolonun ortalamasını alır. COUNT Grup yapılan satır sayısını verir. SELECT cinsiyet, count(*) AS hasta FROM hasta GROUP BY cinsiyet CINSIYET HASTA E 2 K 1 SELECT MAX(hs_key) AS hastasayi hasta FROM hasta hastasayi 3 |
| | |
| | #8 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| HAVING HAVING yan tümcesi, GROUP BY grup ifadesi kullanılan sorgularda kullanılır. Yapılan grupların belirli bir koşula göre oluşturulmasını sağlar. Bu bakımdan HAVING , GROUP BY ifadesinden sonra yer almalıdır. SELECT cinsiyet, COUNT(*) AS hasta FROM hasta GROUP BY cinsiyet HAVING COUNT(*)>1 CINSIYET HASTA E 2 |
| | |
| | #9 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| TABLE JOINS (Tablo Birleştirme) Şu ana kadar yazılan tüm sorgularda tek bir tablo kullanıldı. Şimdi, ilişkisel veri tabanlarının ve SQL’in çok önemli ve yararlı bir özelliğini göreceğiz: Birleştirme (“join”) işlemi. İlişkisel veri tabanlarına “ilişkisel” denmesinin nedeni olan işlem. Birleştirme işlemi iki veya daha çok tablo arasında bağlantı (“link”) kurarak tek bir tablo oluşturur ve sorgu bu tablo üzerinde çalışır. Genellikle her n tablo için (n-1) join koşulu kullanmak gerekiyor. · Inner Join İki tabloyu birbirine eşitleyerek birleştirmeye Inner Join veya Equijoin denir. SELECT a.hs_key,a. hs_ad, a.hs_soyad, b.girtarih, b.islemno FROM hasta a, hpislem b WHERE a.hs_key = b.pi_hs_key HS_KEY HS_AD HS_SOYAD GIRTARIH ISLEMNO 1 İLKAY ÇALIŞKAN 02.10.2002 14:20:38 1 2 SERDAL GÜZEL 02.10.2002 14:30:18 1 1 İLKAY ÇALIŞKAN 03.10.2002 10:11:15 2 3 SERAP ATIŞ 03.10.2002 10:15:22 1 1 İLKAY ÇALIŞKAN 04.10.2002 13:45:41 3 · Non Equijoin Tabloları ilişkilendirmek için, her zaman eşitlik kullanılmaz. Bazı durumlarda tablolarda birbirleriyle doğrudan ilgili olan sütunlar olmaz. Bu durumlarda kullanılır. SELECT a.pi_hs_key, a.girtarih, a.islemno FROM hpislem a, htanim b WHERE TO_CHAR(a.girtarih, 'HH24:MI') BETWEEN b.mesaibas AND b.mesaibit PI_HS_KEY GIRTARIH ISLEMNO 1 02.10.2002 14:20:38 1 2 02.10.2002 14:30:18 1 1 03.10.2002 10:11:15 2 · Self join Bazı problemlerde bir tabloyu kendi kendisiyle birleştirmek gerekebilir. Bu durumlarda mutlaka alias (tablo için ikinci isim) kullanılmalıdır. SELECT a.servisad, b.servisad AS bagservis FROM servis a, servis b WHERE a.sr_key = b.bagservis SERVISAD BAGSERVIS Çocuk Hastalıkları ÇOCUK 1 Çocuk Hastalıkları ÇOCUK 2 Çocuk Hastalıkları ÇOCUK 3 · Outer join Inner join yapıldığında join koşuluna uymayan kayıtların listelenmediği görülür. Nedeni ise, join koşulundaki sütunları NULL olan satırların değerlendirilmemesidir. Eğer NULL olan kayıtlar da görmek isteniyorsa outer join kullanılmalıdır. Outer Join yapmak için, join koşulunda birleşecek değeri bulunmayan tablonun tarafına (+) eklenir. Bir koşulun yalnızca bir tarafında outer join operatörü kullanılabilir. SELECT a.servisad, b.servisad AS bagservis FROM servis a, servis b WHERE a.sr_key = b.bagservis (+) SERVISAD BAGSERVIS Çocuk Hastalıkları ÇOCUK 1 Çocuk Hastalıkları ÇOCUK 2 Çocuk Hastalıkları ÇOCUK 3 Acil |
| | |
| | #10 (permalink) |
| Üye Üyelik Tarihi: 05/2007 Yer: Antalya
Mesaj: 56
| Subquery (İç veya Alt Sorgular) İçiçe geçmiş sorgular birden fazla tablonun kullanılmasını gerektiren problemlerde kullanılır. Subqueriler daha fazla satır veya grup seçme gibi işlemlerde kullanılırlar. Bazı problemler hem join, hem de Subquery ile çözülebilir. Performans açısından subquery tercih edilmelidir. Subquery parantez arasında yazılır. Subquery bir kez çalıştırılır ve sonucu dış query tarafından kullanılır. SELECT <select list> FROM <tablo> WHERE <expression> <operatör> (SELECT <sub select list> FROM <tablo>) Subquery’lerin kullanıldıkları yerler : · Where cümleciği · Having cümleciği · Update komutu · INSERT komutunun INTO cümleciği · UPDATE komutunun SET cümleciği · SELECT veya DELETE komutlarının FROM cümleciği Subquery Kuralları : · Subqueri karşılaştırma operatörünün sağında olur. · Subquerilerde ORDER BY kullanılamaz · Subquerinin seçeceği satır sayısına göre kullanılan karşılaştırma operatörleri değişir. Subquery Karşılaştırma Operatörleri : Tek satır döndüren subquery Birden fazla satır döndürebilen subquery Operatör İşlev Operatör İşlev = Eşitlik IN İçinde !=, <>, ^= Eşitsizlik NOT IN İçinde değil < Küçük < ALL, < ANY Tümünden Küçük <= Küçük ve Eşit <= ALL, <= ANY Tümünden Küçük ve Eşit > Büyük > ALL, > ANY Tümünden Büyük >= Büyük ve Eşit >= ALL, >= ANY Tümünden Büyük ve Eşit SELECT servisad FROM servis WHERE sr_key in (SELECT bagservis FROM servis WHERE bagservis IS NOT NULL) SERVISAD Dermatoloji Çocuk Hastalıkları İç Hastalıkları Diş |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Yeni Başlayanlar İçin Minik Projeler II | hasanyasin | Python / Zope | 4 | 22/05/2007 07:54 |
| Yeni Başlanyanlar İçin İllustrator | LordVoldemort | Photoshop / Corel / PSP | 5 | 26/12/2005 12:18 |
| Arkadaşlar Java Komponentlerini Anlatan Türkçe Döküman | ayhankiraz | Java / JSP | 1 | 08/12/2005 02:14 |
| Yeni Başlayanlar İçin Ücretsiz Kitap Önerisi | Grafik | Hayata Dair | 10 | 07/09/2005 12:02 |
| Yeni Site İçin Fikirlerinizi Bekliyorum | ejderatesi | Site Yorum | 9 | 22/04/2003 01:15 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | Malta | |