SQL (Structured Query Language) kendisi bir programlama dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir.



Benzer belgeler
VERİ TABANI YÖNETİM SİSTEMLERİ I

VERİ TABANI YÖNETİM SİSTEMLERİ I

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

SQL Komutları (2) Uzm. Murat YAZICI

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

VERİTABANI. SQL (Structured Query Language)

Veritabanı. SQL (Structured Query Language)

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.

Bilgisayar Uygulamaları. MySql

SQL e Giriş. Uzm. Murat YAZICI

Like Joker Karakterler, Order By, Group By

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

İleri Web Programlama

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

VERİTABANI Veritabanı Sorgulama

SORGULAR. Öğr.Gör.Volkan Altıntaş

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Veri Tabanı Programlamaya Giriş

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Veri Tabanı Tasarım ve Yönetimi

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU

YAPISAL SORGULAMA DİLİ (SQL)

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

SQL (Structured Query Language)

Mysql Veritabanı Komutları

VERİ TABANI YÖNETİM SİSTEMLERİ I

SQL Kod ile Tablo Oluşturma

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

ACCESS PLATFORMUNDA SQL

Veritabanına Uygulanması

İNTERNET TABANLI PROGRAMLAMA- 12.ders

Çok tablolu sorgulamalar

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

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

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

VERİTABANI Veritabanı Yönetimi

SQL (Structured Query Language)

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

Veritabanı ve Yönetim Sistemleri

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Fonksiyonlar, Count, Sum, Avg, Max, Mın, Lower, Upper, Length, Round, Mod, Left, Right, Concat, If

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

SELÇUK ÜNİVERSİTESİ BOZKIR MESLEK YÜKSEKOKULU VERİTABANI-II DERSİ FİNAL SINAVI

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.

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

BÖLÜM 11. YAPISAL SORGULAMA DİLİ (SQL) Amaçlar:

VERİTABANI ve YÖNETİMİ

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Emrah UYSAL 1

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Veri Tabanı Yönetim Sistemleri Bölüm - 5

Veri Tabanı-I 9.Hafta

Bölüm 3: DML Veri İşleme Dili

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

VERİ TABANI YÖNETİM SİSTEMLERİ I

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Bölüm 4: DDL Veri Tanımlama Dili

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

15 Aralık 2011 / Perşembe.

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Eki Öğr. Gör. Murat KEÇECĠOĞLU

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.

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Sql Komutlarından Select Sorgusu Ve Myadmin Üzerinden Anlatımı

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

Veri Tabanı II Alt Sorgular

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Birden Çok Tabloda Sorgulama (Join)

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

BAYİLERİMİZE ÖZEL. 13 Ağustos İlgili Modül/ler : Genel. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

Veri Tabanı Hafta Dersi

Veri Tabanı Yönetim Sistemleri Bölüm - 6

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

Tavsiye Edilen Önhazırlık Veritabanı kavramınıöğrenmek. Hedefler Shrink yapılmasının amacının kavranması. Shrink yapılma yöntemlerinin öğrenilmesi.

Yapısal Sorgulama Dili (SQL)

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

Transkript:

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 dili olmamasına rağmen bir çok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. (sub language) SQL ile yalnızca veri tabanı üzerinde işlem yapabiliriz. SQL cümleceikleri kullanarak veri tabanına kayıt ekleyebilir, olan kayıtları değiştirebilir silebilir ve bu kayıtlardan listeler oluşturabiliriz. SQL cümlecikleri genellikle aynı olmakla birlikte farklı veri tabanı ortamlarında değişebilmektedir. Ayrıca veri tabanlarının kendilerine özgü sql komutlarıda vardır. Biz burada her ortamda geçerli olan temel sql komutları işleyeceğiz.şimdi örnekler kullanacağımız bir database tanımlayalım. Aşağıdaki Örnekler Microsoft SQL Server 6.5 'da denenmiştir. Tablo adı : personel Kolon : sicil_no:text (8) Kolon : ad:text (8) Kolon : soyad:text (8) Kolon : dogum_tarihi:date Kolon : dogum_yeri:text (8) Kolon : cinsiyeti:text(1) Kolon : medeni_hali:binary Kolon : meslek_id:smallint Kolon : egitim_durumu:binary Kolon : adres:text (50) Tablo adı : ucretler Kolon : per_sicil_no:text (8) Kolon : baslama_tarihi:date Kolon : aylık_ucret:numeric Kolon : aile_yardimi:numeric Kolon : egitim_yardimi:numeric Kolon : kesinti:numeric: Tablo adı : meslekler Kolon : meslek_id:smallint Kolon : aciklama:text (23) Kolon : taban_ücret:numeric From İlk önce bu komut ile başlayalım. Bu komut bütün SQL cümleciklerinde bulunması gerekli bir komuttur.bu komut ile hangi tablolar üzerinde çalışacağımı veri tabanına söylüyoruz. Eğer aynı sql cümleciği ile bir kaç tablo üzerinde işlem yapmak istersek tablo isimleri arasına virgül koymalıyız. aşagıdaki örnekleri SELECT komutundan sonra açıklayacağım. Örnek 1 : SELECT * FROM personel; Örnek 2 : SELECT * FROM personel,ucretler; Select

Bu komut ile database üzerindeki tablonun hangi kolonları alacağımız veritabanına söyleriz.tablonun bütün kolonlarını görmek istiyorsak '*' karekterini kullanırız. Sadece belli kolonları görmek istiyorsak kolon isimlerini aralarına virgül koyarak yanyana yazmalıyız.yukarıdaki örnekleri açıklayacak olursak birinci örnek personel tablosundaki bütün kayıtları getirecektir. İkinci örnekte ise persenol ve ücretler tablosundaki bütün kayıtlar çekilecektir. Örnek 3 : SELECT * FROM meslekler ; Bütün meslek bilgilerini almak istersek yukarıdaki gibi bir query yazmalıyız. Örnek 4 : FROM personel ; Bu query ise bize firmamızda çalışan bütün personeli listeler. SQL'de Veri Tabanı Yaratma SQL komutları yalnızca bir veri tabanı üzerinde geçerli olduğu için veri tabanı yaratma işlemlerinide anlatmanın yararlı olacağına inanıyorum. Aşağıda anlatılan işlemler SQL Server 6.5 üzerinde gerçekleştirilmiştir.database yaratmak için aşagıdaki komutu yazabiliriz. CREATE DATABASE database_name [ON {DEFAULT database_device} [= size] [, database_device [= size]]...] [LOG ON database_device [= size] [, database_device [= size]]...][for LOAD] database_name : Bu yaratılacak olan veri tabanının ismidir. ON : Bu ise yaratılacak olan veri tabanın hangi device üzerinde yer alacağını belirten bir parametredir. Burada aynı zamanda bu device üzerinde size parametresi ile database'in ne kadar yer kaplayacağını belirmiş oluyoruz. Eğer device tanımlamaz isek SQL server default device üzerinde 5 mb bir veri tabanı yaratacaktır.bu parametre içinde birkaç device ismi kullanarak veri tabanını bir kaç device üzerinde yer almasını sağlayabiliriz. LOG ON : Bu ise yaratılacak olan veri tabanın log'unun hangi device üzerinde yer alacağını belirten bir parametredir. Burada aynız zamanda bu device üzerinde size parametresi ile database'in log'unun ne kadar yer kaplayacağını belirmiş oluyoruz. Eğer device tanımlamaz isek SQL server default device üzerinde bir log tutacaktır.bu parametre içinde birkaç device ismi kullanarak veri tabanı log'unun bir kaç device üzerinde yer almasını sağlayabiliriz. Örnek 1 : CREATE DATABASE fat123 Bu komut ile SQL Server üzerinde fat123 isimli boş bir database yaratmış oluyoruz. (Dönen mesaj :CREATE DATABASE: allocating 2560 pages on disk 'a1v1') Örnek 2 :

CREATE DATABASE fat123 ON master = 10 Bu komut ile SQL Server'da master device'ı üzerinde 10 mb'lık fat123 isimli boş bir database yaratmış oluyoruz. Örnek 3 : CREATE DATABASE fat123 ON fat123 = 10 LOG ON fat123log = 5 Bu komut ile SQL Server'da fat123 device'ı üzerinde 10 mb'lık fat123 isimli boş bir database ve fat123log device'ı üzerinde 5 mb bir log yaratmış oluyoruz. Örnek 4 : CREATE DATABASE fat123 ON fat=10, fat1 = 10, fat2=10, fat3=10 LOG ON fat123log = 20 Bu komut ile ise fat123 isimli veri tabanını 4 farklı device üzerinde yaratıyoruz. Genellikle yaratılan database'in yarısı kadar bir alanda log için oluşturulur. SQL Komutları Order By Bu komut ile belirtilen kolona göre artan veya azalan bir sıralama ile sorgulama yapabiliriz. ASC : kullanarak küçükten büyüğe doğru artan sıralama yapabiliriz. DESC : kullanarak büyükten küçüğe doğru azalan sıralama yapabiliriz. Ancak ASC kullanmak zorunlu değildir. Çünki default sıralama tipi ASC'dir. Aynı anda birkaç kolon üzerindende sıralama yapabiliriz. Örnek 1 : SELECT * FROM personel ORDER BY ad ASC; Bu query ile personel tablosundaki bütün kayıtları ad'a göre küçükten büyüğe dogru sıralarız. Örnek 2 : SELECT * FROM personel ORDER BY soyad DESC; Bu query da yukarıdakinin tersine kayıtları büyükten küçüğe dogru sıralar. Örnek 3 : SELECT * FROM personel ORDER BY ad,soyad; Bu query kayıları ad göre artan bir sıralama yapar. Ancak aynı ad ile yaratılmış birden fazla kayıt varsa ise bunlarıda soyad sırasına göre artan bir şekilde sıralar. Eğer her iki kolnda aynı ise o

zaman okuduğu sırada sıralar. Örnek 4 : SELECT * FROM personel ORDER BY dogum_tarihi DESC,ad,soyad ; Bu query'de ise pernel kayıtları büyükten küçüğe doğru sıralanıyor. Yani en genç eleman'dan başlanarak en yaşlı elemana doğru bir liste yapılıyor. Doğum tarihleri aynı olanlarda ise ad ve soyad'a göre bir sıralama yapılmaktadır. Where Yukarıda yaptığımız sorgulamaların hepsinde hiç bir koşul belirtmedik.yani bütün kayıtları tablolardan çektik. Ancak gerçek hayat'ta bu kayıtların sadece bir kısmına ihtiyaç duyarız.bize gerekli olan dataları diğerlerinden ayıran bazı özellikleri vardır. İşte bu özellikleri bu komut yardımı ile kullanarak gerekli datalara ulaşabiliriz. Örnek 5 : Adı ahmet olan personeli listelemek istersek ne yapacağız.aşagıdaki gibi bir sorgulama yapacağız. SELECT * FROM personel WHERE ad='ahmet'; Örnek 6 : Yaşı 40'dan büyük personeli listeleme istersek; SELECT * FROM personel WHERE dogum_tarihi < '01.01.1959' sorgulamasını kullanmalıyız.elemanın 40 yaşında büyük olması için 1959 yılından önce doğmuş olması gerekmektedir. O halde dogum_tarihi 1959 yılından küçük olmalıdır. Örnek 7 : Adana'da doğmuş personeli listelemek istersek SELECT * FROM personel WHERE dogum_yeri = 'Adana' Örnek 8 : 300 milyondan fazla maaş alan kişileri işe maaşa göre sıralamak istersek; SELECT * FROM ucretler WHERE aylik_ucret >= 300000000 ORDER BY aylik_ucret; Operatörler Her programlama dilinde olduğu gibi SQL'de de operatörler bulunur. Üç çeşit operatör mevcuttur. Karşılaştırma oparatörleri, mantıksal operatörler ve kümeleme operatörleri.bu karşılaştırma operatörleri aşağıdaki gibidir ; operatör anlamı a>x... X... a'dan küçük a<x... X... a'dan büyük a=x... X... a'ya eşit a=>x... X... a'dan küçük eşit a<=x... X... a'dan büyük eşit a<>x... X... a'ya eşit değil Mantıksal operatörler ise AND,OR,NOT olarak verilebilir. Bu operatörler burada anlatmayacağız. Bunlar standart bütün dillerde aynı olan operatörlerdir.kümeleme operatörleri ise datalar üzerinde

gruplama yapmamızı sağlayan operatörlerdir.bu operatörler Between, In, Like operatörleridir. Bu operatörlerin hepsini where ile birlikte kullanmalıyız. Between : Aralıklı sorgulama yapmak istersek kullanabilecegimiz bir operatördür. Örnek 1 : SELECT * FROM ucretler WHERE aylik_ucret BETWEEN 200000000 AND 300000000 Bu cümlecik ile 200 ile 300 milyon arasında maaş alanlar listelenecektir. Örnek 2 : SELECT * FROM fat_bsl WHERE ft_tar BETWEEN '01.01.1998' and '04.06.1999' Bu sorgulamada ise fatura tarihi 01.01.1998 ve 04.06.1999 tarihleri arasındaki faturalar listelenmiştir.verilen tarih formatının sistemde kullanılan tarih formatı ile aynı olmasına dikkat edilmelidir. Yoksa sizin verdiğiniz tarih doğru olsa bile format farklı ise sorgulamanız geriye data döndürmez. (Yukarıdaki sorgulamada başıma geldide (:) ) In : Bu komut ile belli bir kolonun kümesini vererek işlemimizi daha kolay bir şekilde yapabiliriz. Örnek 3 : SELECT * FROM personel WHERE meslek_id IN (1,2,3) Buradaki örnek 'te 1,2 veya 3 meslek grubundan herhangi birine dahil olan personel listelenemektedir.bu örnek aşagıdaki şekildeki gibide yapabiliriz; SELECT * FROM personel WHERE meslek_id=1 OR meslek_id=2 OR meslek_id=3 Like : Bu ise içinde belli bir karakter dizisi bulunan datalara ulaşmak istersek kullanabileceğimiz bir operatördür. Örnek 4 : SELECT * FROM personel WHERE adres LIKE '%İstanbul%' Bu sorgulama ile adres alanında İstanbul geçen kayıtları listelemiş oluruz. Örnek 5 : SELECT * FROM personel WHERE adres LIKE '%İstanbul'

Bu sorgulama ile adres alanının sonunda İstanbul geçen kayıtları listelemiş oluruz. Örnek 6 : SELECT * FROM personel WHERE adres LIKE 'İstanbul%' Bu sorgulama ile adres alanının başında İstanbul geçen kayıtları listelemiş oluruz SQL'de Yeni Bir Kayıt Eklemek Tabloya yeni bir satır eklemek istersek INSERT INTO sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ; INSERT INTO tablo adı VALUES (deger1,deger2,deger3,...) Eğer sadece belirli sahalara değer girmek istersek INSERT INTO'yu aşağıdaki şekildeki gibide kullanabiliriz. INSERT INTO tablo adı(kolon1,kolon3,kolon9,kolon7) VALUES (deger1,deger3,deger9,deger7) Yeni bir personel eklemek istersek ; INSERT INTO personel VALUES ('asdf2345','ahmet','yıldırım','01.01.1960','ankara','e',1,7,1,'ebuziya cad. Bakırköy') Yeni bir meslek eklemek istersek ; INSERT INTO meslekler VALUES (23,'Belçi',200.000.000) Bir tablodan bazı kayıtları başka bir tabloyada aktarabiliriz. Bunun için aşağıdaki gibi bir ifade yazmalıyız; INSERT INTO tablo1 SELECT kolon1,kolon2,.. FROM tablo2 INSERT INTO NEW_CUSTOMER SELECT NAME,CITY FROM CUSTOMER SQL'de Tablolar Üzerinde İşlem Yapma Genellikle veri tabanı kayıları oluştururken bütün bilgileri bir tabloda değilde birkaç tablo üzerinde tutarız.bu dataların hem daha düzenli durmasını hemde gereksiz veri tekrarlarını engellemiş olur.şimdi farklı tablolara bölünmüş datalar üzerinde işlem yapmamız gerekirse ne yapmamız gerekir.aslında fazla bir şey yapmamız

gerekmez.tek yapacağımız hangi tabloları kullanacaksak bunları from cümleceğinde belirtmemizdir.tabloları belirtirken aralarıda, koymayı unutmazsak o zaman sorun yok. Örnek 1 : Hangi personelin ne kadar maaş aldığını listelemek istersek;,aylik_ucret FROM personel,ucretler WHERE sicil_no=per_sicil_no Örnek 2 : İstanbul'da yaşayan Adana doğumlu personelin maaşlarını listelemek istersek;,aylik_ucret FROM personel,ucretler WHERE sicil_no=per_sicil_no AND adres LIKE '%İstanbul%' AND dogum_yeri = 'Adana' Örnek 3 : 300 milyondan fazla maaş alan ve 2 nolu meslek grubuna ait personeli listelemek istersek;,aylik_ucret FROM personel,ucretler WHERE sicil_no=per_sicil_no AND aylik_ucret>300000000 AND meslek_id=2 Örnek 4 : Muhasebe meslek grubuna ait personel listesi; FROM personel,meslekler WHERE meslek_id=meslek_id AND meslek_aciklama='muhasebe' Şimdi buradaki sorgulamımızda bir karışıklık söz konusu olacak.iki tane aynı isimde meslek_id oldu.bunu şu şekilde engelleyebiliriz. Tablolarda aynı isimde iki kolon varsa bu kolanları kullanırken başlarıda tablo ismini getiririz araya bir nokta koyarak kolon adını yazarız. FROM personel,meslekler WHERE personel.meslek_id=meslekler.meslek_id AND meslek_aciklama='muhasebe' Örnek 5 : Şirketimizde 30 yıldır çalışan ve 200 milyon altında maaş alan personeli ödüllendirecegiz. Bunun için nasıl bir sorgulama yapmalıyız. FROM personel,ucretler WHERE sicil_no=per_sicil_no AND baslama_tarihi < '01.01.1969' AND aylik_ucret < 200000000 Örnek 6 : 22 yaşından büyük bilgi işlemde çalışan bayan personeli listelemek istersek (NOT : cinsiyet= 0 : bayan 1 : erkek

medeni_hal= 0 : bekar 1 : evli ) FROM personel,meslekler WHERE personel.meslek_id=meslekler.meslek_id AND meslek_aciklama='bilgi İşlem' AND cinsiyet=0 AND dogum_tarihi < '01.01.1977' Örnek 7 : 40 yaşından küçük,bilgi işlem veya muhasebe bölümünde çalışan,erkek,200 milyondan fazla maaş alan,ankara doğumlu,sarıyer'de oturan,10 yıldan fazla şirkette çalışan, bekar,10 milyondan fazla kesinti yapılan personeli listelemek istersek; FROM personel,meslekler,ucretler WHERE dogum_tarihi > '01.01.1959' AND personel.meslek_id=meslekler.meslek_id AND (meslek_aciklama='bilgi İşlem' OR meslek_aciklama='muhasebe') AND cinsiyet=1 AND sicil_no=per_sicil_no AND aylik_ucret > 200000000 AND dogum_yeri='ankara' AND adres LIKE '%Sarıyer%' AND baslama_tarihi > '01.01.1989' AND medeni_hal=0 AND kesinti>10000000 Örnek 8 : Muhasebe ve Pazarlama bölümü dışında çalışan perseneli listelemek istersek; FROM personel,meslekler WHERE personel.meslek_id=meslekler.meslek_id AND meslek_aciklama<>'pazarlama' AND meslek_aciklama<>'muhasebe' Örnek 9 :40 yaşları arasında İzmir ve Bursa doğumlu adayları listelemek istersek; FROM personel WHERE dogum_tarihi BETWEEN '01.01.1959' AND '01.01.1969' AND (dogum_yeri='izmir' OR dogum_yeri='bursa') Örnek 10 : Adı E ile başlayan, 3,5 ve 7 nolu meslek grubuna ait,bayan,bekar,30 yaşından küçük, 100 milyondan fazla maaş alan personel listesi ; FROM personel,ucretler WHERE ad LIKE 'E%' AND meslek_id IN (3,5,7) AND cinsiyet=0 AND medeni_hal=0 AND dogum_tarihi > '01.01.1969' AND sicil_no=per_sicil_no AND aylik_ücret > 100000000

Örnek 11 : Evli ve aile yardımı almayan persenol listesi; FROM personel,ucretler WHERE medeni_hal=1 AND aile_yardim=0 SQL Tablo'dan Kayıt Silmek Tablodan bir satır silmek istersek DELETE sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ; DELETE FROM tablo adı Eğer yukarıdaki gibi bir sorgulama yazıp çalıştırırsak tablodaki bütün kayıtları sileriz. Bunun için DELETE cümleciğini kullanırken dikkat edilmelidir. Sicil nosu 12345678 olan kayıt silinmek istenirse; DELETE FROM personel WHERE sicil_no='12345678' Doğum tarihi 1940'dan önce doğmuş personel kayıtları silinmek istenirse ; DELETE FROM personel WHERE dogum_tarihi<'0 SQL'de Kayıt Değişikliği Tablodan bir kayıtı değiştirmek istersek UPDATE sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ; UPDATE tablo adı SET kolon1=deger1,kolon2=deger2,... WHERE kosul; Sicil nosu 12345678 olan kayıtın adresi değiştirlmek istenirse ; UPDATE personel SET adres='bronz Sok. Teşvikiye' WHERE sicil_no='12345678' Bütün personele uygulanan kesinti ücreti 10.000.000 sabit olarak belirlenirse ; UPDATE ucretler SET kesinti=10000000

Bütün personelin maaşına %20 zam yapılırsa ; UPDATE ucretler SET aylik_ucret=aylık_ucret*1.20 SQL Gruplama Fonksiyonları (SUM,AVG,MIN,MAX,COUNT(*),COUNT(DISTINCT)) MAX Verilen kolondaki en büyük değeri geri döndürür. Genel yazım biçimi aşağıdaki gibidir; Select MAX(kolon_adı) FROM tablo; En fazla aylık ücret alan personel ne kadar maaş alıyor? Select MAX(aylik_ucret) From ucretler; En fazla aile yardımı alan personelin maaşını ve sicil no'sunu öğrenmek istersek ; Select per_sicil_no,max(aylik_ucret) From ucretler ; MIN Verilen kolondaki en küçük değeri geri döndürür. Genel yazım biçimi aşağıdaki gibidir; Select MIN(kolon_adı) FROM tablo; En düşük aylık ücret alan personel ne kadar maaş alıyor? Select MIN(aylik_ucret) From ucretler; En az aile yardımı alan personelin maaşını ve sicil no'sunu öğrenmek istersek ; Select per_sicil_no,min(aylik_ucret) From ucretler ; SUM Verilen kolondaki Bütün değerleri toplayarak geri döndürür. Genel yazım biçimi aşağıdaki gibidir; Select SUM(kolon_adı) FROM tablo; Personele ödenen toplam ücret nedir?

Select SUM(aylik_ucret) From ucretler; Toplam ödenen aile yardımı bulunmak istenirse Select SUM(aile_yardimi) From ucretler ; AVG Verilen kolondaki değerlerin aritmetiksel ortalamsını geri döndürür. Genel yazım biçimi aşağıdaki gibidir; Select AVG(kolon_adı) FROM tablo; Aylık ödenen ücret ortalamasını bulmak istersek ; Select AVG(aylik_ucret) From ucretler; COUNT(*) Verilen tablodaki record sayısını geri döndürür. Genel yazım biçimi aşağıdaki gibidir ; Select COUNT(*) FROM tablo; Kaç tane personel çalıştığını listelenmek istersek; Select COUNT(*) From personel; COUNT(DISTINCT..) Verilen kolondaki unique record sayısını geri döndürür. Genel yazım biçimi aşağıdaki gibidir ; Select COUNT(DISTINCT kolon_adı) FROM tablo; İsmi farklı kaç tane personel çalıştığını listelenmek istenirse; Select COUNT(DISTINCT ad) From personel; Örnek 1: En yüksek taban ücret olan meslek listelenmek istenirse ; Select MAX(taban_ücret) From meslekler;

Örnek 2: Ortalama taban ücret listelenmek istenirse ; Select AVG(taban_ücret) From meslekler; Örnek 3: 30.01.1990 yılından sonra işe başlıyanların ortalama ücreti hesaplanmak istenirse ; Select AVG(aylik_ücret) From ucretler Where baslama_tarihi>'30.01.1990'; Örnek 4: Maaşından kesinti yapılan personele ödenen toplam ücret bulunmak istenirse ; Select SUM(aylik_ücret) From ucretler Where kesinti>0;