belki ilginizi çeker
  1. · c
  2. · karakter sayımı
  3. · mybb
  4. · sc
  5. · data structure
  6. · delete from entries
  7. · truncate table
  8. · sözlüğe girilecek son giri
  9. · distinct
  10. · drop database
  11. · madde 97: bir ünlü şahsiyeti seninle mcdonald's a gitmeye ikna et (reklam)
gündem
  1. · beşiktaş ile fenerbahçe taraftarı arasındaki fark
  2. · otuz yaşına gelen kadının kendini avutma yolları
  3. · kapının önünde bir yığın misafir ayakkabısı görmek
  4. · prison brake
  5. · sevgilinin 5 gün aramayıp naber diye mesaj çekmesi
  6. · 250 milyarlık cip kullanan türbanlı
  7. · sözlük yazarlarının hayalleri
  8. · türk edebiyatı
  9. · gaza gelin çorbası

sql  

 sayfa  / 2
  1. veritabanı
    (aykut, 09.03.2004 00:48)
  2. uzatılmış hali structured query language olan sorgu dili
    (togisama, 09.03.2004 00:56 ~ 13.08.2005 02:52)
  3. yapısal sorgulama dili anlamına gelir. proğramlama dilleri farklı da olsa veritabanlarının çoğunda sql kullanılır ve bir dilden diğerine çok az farklılık gösterir.
    (atidelphi, 17.04.2004 23:12)
  4. özentiler tarafından sequel diye de telaffuz edilir
    (excalibur, 01.06.2004 16:04)
  5. (lillymarlin, 05.08.2004 17:13 ~ 17:14)
  6. microsoft'un "es qu el" diye okuyun dediği hededir. ayrıca dünyada "sequel" diye okuma trendinin gün geçtikçe azaldığı dikkate alınmalıdır.
    (whopper, 28.12.2004 00:05)
  7. (bkz: oracle)
    (whopper, 28.12.2004 00:05)
  8. sql, veritabanı tablolarındaki verilere istediğimiz kriterlere göre ulaşmayı sağlayan yapısal bir dildir. kullanımı ve mantığı çok basittir. basitçe bir veritabanındaki tablolardan veri çekme, veri silme, veri güncelleme, veri girme işlemleri yapar. hemen bir giriş yapalım. bu arada bu makalemizde sadece yukarıda bahsettiğimiz işlemleri anlatacağım. veritabanı yönetimiyle ilgili create, alter gibi komutlara değinmeyeceğim.

    1-) veritabanı tablosuna veri ekleme

    insert komutuyla yapılır. bu komutla tabloda yeni bir satır oluştururuz. örneğin benimtablom ismindeki tablomuz id, isim, cinsiyet bölümlerinden oluşsun.

    insert into benimtablom (id,isim,cinsiyet) values ('1','abdülrezzak kıllıbacak','erkek');
    insert into benimtablom (id,isim,cinsiyet) values ('2','ferhan güllüyüz','gay');

    bu durumda tahmin edebileceğiniz gibi veritabanımızdaki tablomuza iki satır ekledik. ilk parantez içinde eklemek istediğimiz alanları belirtiyor, values kelimesinden sonra gelen parantez içindeyse girmek istediğimiz verileri yazıyoruz.

    2-) tablodan veri çekme

    select komutuyla yapılır. en basit hali

    select * from benimtablom şeklindedir. bu durumda

    ------------------------
    | id | isim | cinsiyet |
    ------------------------
    | 1 | abd..| erkek |
    ------------------------
    | 2 | fer..| gay |
    ------------------------

    şeklinde bir kayıt seti recordset elde ederiz. bu şekilde kritersiz bir listeleme yapılır. örneğin cinsiyeti sadece "gay" olan kişileri listeleyelim. bu durumda where yapısı kullanılır.

    select * from benimtablom where cinsiyet='gay'

    bu durumda

    ------------------------
    | id | isim | cinsiyet |
    ------------------------
    | 2 | fer..| gay |
    ------------------------

    şeklinde bir sonuç alırız. where yapısında =, !=, < , >, <=, >= operatörlerini kullanabilirsiniz. bunlar basit matematiksel temellere dayanır.

    select yapısında tablodan sadece belli alanların içeriğini almak isteyebiliriz bu durumda * yerine bu alanlar yazılır.

    select isim from benimtablom

    örneğin tablomuzdan cinsiyeti erkek olan kişilerin sayısını almak isteyebiliriz. bu durumda alan listemize sadece count(*) şeklinde bir giriş yapmalıyız.

    select count(*) as delikanlisayisi from benimtablom where cinsiyet='erkek'

    -------------------
    | delikanlisayisi |
    -------------------
    | 1 |
    -------------------

    şeklinde bir recordset alırız. burada 'as delikanlisayisi' bir aliastır. veritabanında ismi farklı olan field'lara kafamıza göre bir isim vermeye yarar. recordsetimizde bizim belirlediğimiz isim çıkar.

    ayrıca inner join, left join, right join, outer join şeklinde 2 veya daha fazla tabloyu birleştirme olanağı da vardır. ama şimdilik dağılın önce bunları bir öğrenin.

    select yapısının hoş özelliklerinden biri de group by yapısıdır. örneğin şöyle bir tablomuz olsun :

    ------------------------
    | id | isim | cinsiyet |
    ------------------------
    | 1 | ahmet| gay |
    ------------------------
    | 2 | hasan| erkek |
    ------------------------
    | 3 | fatih| gay |
    ------------------------
    | 4 | gül | bayan |
    ------------------------
    | 5 | arto | gay |
    ------------------------
    | 6 |jenny | lezbiyen |
    ------------------------
    | 7 | leyla| bayan |
    ------------------------
    | 8 | aydın| gay |
    ------------------------
    | 9 | caner| erkek |
    ------------------------


    bu tablomuzda kaç erkek, kaç bayan, kaç gay, kaç lezbiyen olduğunu bulmaya çalışıyoruz diyelim. bakınız şimdi güzel sorguya :

    select cinsiyet,count(*) as sayi from benimtablom group by cinsiyet

    bu durumda veritabanı motorumuz cinsiyetlere göre bir gruplandırma yapacak ve bize sonuçları şöyle gösterecektir :

    -------------------
    | cinsiyet | sayi |
    -------------------
    | erkek | 2 |
    -------------------
    | bayan | 2 |
    -------------------
    | gay | 4 |
    -------------------
    | lezbiyen | 1 |
    -------------------

    gördüğünüz gibi ufak bir cinsiyet istatistiği yaptık. bu toplumun cinsel tercihleri konusundaki yorumları bir yana bırakıyoruz şimdilik.

    sql le birlikte kullanılabilecek veritabanı motoruna özgü çeşitli fonksiyonlar da olabilir. bunları standart olmadıkları için anlatmak zordur. veritabanı motorunun kılavuzundan bunlar bulunabilir.

    tablo güncelleme ve veri silme için kullanılan update,replace ve delete komutlarının anlatımını bir başka giriye bırakıyor esenlikler diliyorum.
    (wondrous, 24.04.2005 00:11)
  9. arkadaşlar arasında konuşma şekli olarak belirlemiştik. mesela kantine çay içmeye gitme isteğimizi;

    select çay from kantin
    where şeker=2

    şeklinde belirtirdik.
    (hansvoralberg, 24.04.2005 00:26)
  10. mysql'de alias tanımlanırken "as" kelimesinin girilmesinin zorunlu olmadığı dil
    (raiser, 04.05.2005 18:52)
  11. mssql'de alias tanımlanırken "as" kelimesinin girilmesinin zorunlu olmadığı dil.
    (cyberboy, 04.05.2005 18:58)
  12. postgresql'de alias tanımlanırken "as" kelimesinin girilmesinin zorunlu olmadığı dil.
    (wondrous, 04.05.2005 20:04)
  13. access veritabanları için kullanılanında alias tanımlanırken "as" kelimesinin girilmesinin zorunlu olduğu dil.
    (raiser, 04.05.2005 20:19)
  14. sql ile data çekmekten evvela çekilecek datalarda değişiklik için kullanılan manipülasyon yapılarını bilmek, bunları kullanmak elzemdir.

    ilk olarak update yapısına bakarsak olay şöyledir:

    update tablo set alan='hede',alan2='hödö' where alan='veren';

    bu yapı kullanıldığında alan field'ının 'veren' şeklinde değere sahip olan tüm elemanlarında set yapısından sonra verilmiş işlemler yapılacak yani alan='hede' ve alan2='hödö' eşitlemeleri yapılacaktır. update yapısında where yapısı kullanılmaması tüm tablonun sorgusuz sualsiz manipüle edilmesine yol açar. evinizde denemeyin.

    delete yapısı ise daha basit olmak üzere şöyledir:

    delete from tablo where alan='veren';

    bu query where clause'dan sonra verilen şartlara uyan tüm kayıtları tablodan siler. where yapısı verilmediği durumlarda tüm tablodaki datayı kaybederiz ki bunu da evde denemeyin. eğer bir tabloyu boşaltmak üzere delete from table yapısı kullanıyorsanız kullandığınız dbms destekliyorsa şunu kullanın: (bkz: truncate table)

    bunlar veri manipülasyonu içindi. peki select'in daha gelişmiş kullanımından devam edelim şimdi ve join yapısına bakalım. dört tür join vardır.

    - inner join
    - outer join
    - left join
    - right join

    ben burda şimdi inner join'den bahsedeyim, gerisini eğer yazmışsam (veya ileride yazacaksam) ilgili başlıklarından okuyabilirsiniz. tüm join'lerin syntax'leri aynıdır. inner join ise iki tabloyu tamamen birleştirip sorgulamaya yarar.

    örneğin iki tablomuz olsun cinsiyetler isimli birinde id ve cinsiyet field'ları, kisiler olanında ise yine id ve isim field'ları olsun. erkek cinsiyetindeki tüm kişilerin isimlerini bulmak için iki tabloyu birleştiririz:

    select kisiler.isim from kisiler
    inner join cinsiyetler on kisiler.id=cinsiyetler.id
    where cinsiyetler.cinsiyet='erkek'

    bu olayın püf noktası iki tabloda ortak olan id field'ları kullanılarak bir ortak payda, bir birlik bir federasyon yaratılması olayıdır. aslında join kullanmadan da bu mümkün ama hiç girmiyoruz bu konuya. (hızlandırılmış kursta olmamız sebebiyle)

    diğer join tiplerinden left join'in olayı ana tablomuza join edilen ikinci tabloda eşleşen bir data olmaması sonucunda null değer döndürmesi, yani iki tabloda örtüşen kayıtlar zorunluluğunun olmaması durumudur. outer ve right'a ise diğerlerinin bir anlamda tersi diyebiliriz.

    maalesef update ve delete yapılarında genel olarak join kullanılamaz. destekleyen bazı dbms'ler olsa da bilmiyorum.

    edith piaf: terminoloji hatası yapmışız. inner join tek başına bir join cinsiyken left ve right join outer join'in iki farklı versiyonuymuş.
    (wondrous, 21.06.2005 22:35 ~ 22:37)
  15. tüm müminlerin data manipülasyonu haricinde ileri derece tablo administration'uyla ilgili şu genel yapıları öğrenmesi sql'in farzlarından biridir.

    (bkz: create table)
    (bkz: create temporary table)
    (bkz: alter table)
    (bkz: truncate table)
    (bkz: drop table)
    (bkz: drop database)
    (wondrous, 21.06.2005 22:39)
  16. tam anlamıyla sql lisanı (bkz: öss sınavı) ile ilgili olmasa da database'cilik ilmiyle ilgili şu kavramları da okumak sizi bir adım daha doğru yola ulaştıracaktır:

    (bkz: index)
    (bkz: index scan)
    (bkz: index seek)
    (bkz: multi column index)
    (bkz: nonclustered index)
    (bkz: cluestered index)
    (bkz: composite index)
    (wondrous, 21.06.2005 22:44)
  17. inner join'i "select t1.a,t2.b from tablo1 t1,tablo2 t2 where t1.id = t2.id" şeklinde de yapabileceğimiz dil. tablo1 ve tablo2'nin istenen sütunlarında eşleşme olmadığı takdirde o satır gösterilmez.
    (raiser, 22.06.2005 02:17 ~ 19:57)
  18. kaliteli sql yazımında dikkat edilmesi gereken şeylerden biri field'ler başına tablo isminin yazılmasıdır. yazmasanız da olur, yazsanız da güzel olur.

    edith piaf: yazmayın amına koim
    (wondrous, 22.06.2005 17:21 ~ 23.06.2005 14:15)
  19. sql'de önemli join tiplerinden biri de cross join'dir. (aslında önemli değil de genel istek üzerine).

    cross join'in mantığı soldaki tablodaki tüm row'ları sağdaki tabloyla kartezyen çarpar, eşleştirir, birleştirir ortaya muhteşem bir resultset çıkar. syntax vermiyorum zaten isteyen kişi çok iyi biliyor diye.
    (wondrous, 24.06.2005 20:31)
  20. (gxix, 10.06.2006 23:02)
  21. (bkz: structured query language) kısaltması olan ve ingilizce olması hasebiyle es- qu -el diye okunması gereken sql in sequel diye okunması alışkanlığı bir zamanlar veritabanı sistemleri için kullanılan square den vazgeçilip uzun hali structured english query language olan sequel in zamanla sql e dönüşmesi, lakin bu dönüşümde ismin sabit kalması yüzündendir. birileri inat etmiş eski alışkanlıklarından vazgeçmemiş.
    (gomünüst, 16.08.2007 15:28)
  22. 1970'lerde ibm tarafından başlatılan 1992, 1999, 2003'te standartlara tabi tutulan yüksek seviye dil.
    (ben de öyle biliyordum, 03.11.2007 12:40)
  23. yeni başlayan kullanıcılara ilk etapta karışıklığı ile siktir çeken, kullanıcı yılmayıp öğrenicem lan bunu dediği zaman; "gel buraya sevdim seni şerefsiz" dercesine yakınlık gösteren, güvenilir, güçlü, öğrenmesi hem zor - hem kolay, bazen sıkıcı - bazen eğlenceli, ilişkisel veritabanı. tanımlaması bile kendisi gibi karışık...
    (yavuz çetin özlemi, 05.06.2008 23:59)
  24. hayvan gibi kasan bir dildir. belkide vizesine finaline adam akıllı çalıştığım tek dersti. ama olmadı o kadar çalış çalış. bir kodu unuttun diye hoca çizsin soruyu. zor iştir programlama zaten geceleri rüyalarımda kodları gördüğümde anlamalıydım bir bokluk olduğunu.
    (sickthread, 01.10.2008 14:18)
  25. kompleks ya da patforma göre (oracle, ms sql server, mysql) farklılık göstermediğinden ötürü (spesifik durumları saymazsak, zira bu durumlar sql'in farklı kullanımını değil sadece ekstra sorgu stillerinin eklenmesi ile oluşan farklılıklardır) 2-3 gün içinde öğrenip (hatta duruma göre çok daha kısa sürede) canavar gibi sorgu yazabileceğiniz veritabanı üzerinde işlem yapmaya yarayan dil. data structure temellidir.
    (hacktor, 08.06.2009 17:00)
 sayfa  / 2

künye  ·  iletişim / şikayet / reklam  ·  sıkça sorulan sorular  ·  itü sözlük görseller  ·  itü sözlük extra  ·  itü sözlük mobil