Benzer belgeler
Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

SQL Komutları (2) Uzm. Murat YAZICI

VERİTABANI. SQL (Structured Query Language)

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

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

VERİTABANI Veritabanı Sorgulama

YAPISAL SORGULAMA DİLİ (SQL)

SQL Kod ile Tablo Oluşturma

Veri Tabanı-I 9.Hafta

SQL e Giriş. Uzm. Murat YAZICI

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

Veritabanı. SQL (Structured Query Language)

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

Bilgisayar Uygulamaları. MySql

Mysql Veritabanı Komutları

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

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

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

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

Veritabanı ve Yönetim Sistemleri

Veri Tabanı Tasarım ve Yönetimi

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Ü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

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

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

ACCESS PLATFORMUNDA SQL

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

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

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

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

Like Joker Karakterler, Order By, Group By

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

Emrah UYSAL 1

Veritabanı Yönetim Sistemleri

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

Veri Tabanı Programlamaya Giriş

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

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

VERİTABANI ve YÖNETİMİ

Veri Tabanı Hafta Dersi

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

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

SQL (Structured Query Language)

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

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

Veritabanı Tasarımı. SQL Deyimi Anatomisi

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

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

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

5 Sorgulama İşlemleri. Veritabanı 1

İNTERNET TABANLI PROGRAMLAMA- 12.ders

Microsoft SQL Server Sorgulama

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

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

Oracle da kullanılan veri tipleri:

5 Sorgulama İşlemleri. Veritabanı 1

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

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ü

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

15 Aralık 2011 / Perşembe.

Oracle Database 11g: Introduction to SQL

BÖLÜM- 5: BİRDEN FAZLA TABLODAN VERİ GETİRMEK

SQL Query and Table Application

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

SPSS (Statistical Package for Social Sciences)

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

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

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

VERİTABANI Veritabanı Yönetimi

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

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

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Veritabanı Tasarımı. Alt Sorgu Temelleri

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

Her bölüm için kısa bazı girişler yapılacak ve bölüm içerisinde anlatılacak olan konuların genel başlıkları belirtilecektir.

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

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.

Birden Çok Tabloda Sorgulama (Join)

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

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

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

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

EROL AKGÜL

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

Veri Tabanı-I 12.Hafta

BÖLÜM -2: VERİLERİ SINIRLAMA VE SIRALAMA

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

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

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

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

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

SQL (Structured Query Language)

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

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

BİLİŞİM TEKNOLOJİLERİ

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

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

BİLİŞİM TEKNOLOJİLERİ

Transkript:

SQL-Yapısal Sorgulama Dili SQL-GİRİŞ SQL-GİRİŞ 1

VERİ TÜRLERİ VERİ TÜRLERİ VERİ TÜRLERİ 2

Veri Tabanı Bileşenleri Kayıt Tablolar Öznitelik/Alan Kayıtlar satır Öznitelik/Alan sütun Kurallar tablolar arasındaki ilişkileri belirler ve verileri birbirine bağlar Tablo Yaratma SQL 3

Phone Book/Contact Table Tablo Yaratmadaki Kısıtlamalar Alan adı Tablo Yaratma String, Karakter sayısı (1-255) 4

Örnek Tablo-Student/Öğrenci TABLOLARI GÖRÜNTÜLEME Örnek Tablo +--------------+--------------+------+--------------+ Field Type Null Default +-----------+-----------------+------+-------------+ name varchar(20) YES NULL owner varchar(20) YES NULL species varchar(20) YES NULL birth date IYES NULL +-----------+----------------+------+---------------+ 5

TABLOYA EKLEME YAPMA ( INSERT ) Tabloya Veri eklemek ve ekli verileri görmek Tabloya veri girmek için kayıtlar Tablo içindeki verileri görmek Veri eklemek 6

SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ] ; FROM tablo ismi WHERE koşul Tüm Öğrenci Kayıtlarını Gösterme SELECT KOMUTU SELECT * FROM student Sonuç id name dob gender class mtest hcode dcode remission 9801 Peter 06.04.86 M 70 R SSP.F. 9802 Mary 01.10.86 F 92 Y HHM.F. 9803 Johnny 03.16.86 M 91 G SSP.T. 9804 Wendy 07.09.86 F 84 B YMT.F. 9805 Tobe 10.17.86 M 88 R YMT.F. : : : : : : : : : Product PName Price Category Manufacturer Gizmo $19.99 Gadgets GizmoWorks Basit bir SQL Sorgusu Powergizmo $29.99 Gadgets GizmoWorks SingleTouch $149.99 Photography Canon MultiTouch $203.99 Household Hitachi SELECT * FROM Product WHERE category= Gadgets PName Price Category Manufacturer Gizmo $19.99 Gadgets GizmoWorks Powergizmo $29.99 Gadgets GizmoWorks 21 7

Product PName Price Category Manufacturer Gizmo $19.99 Gadgets GizmoWorks Basit bir SQL Sorgusu Powergizmo $29.99 Gadgets GizmoWorks SingleTouch $149.99 Photography Canon MultiTouch $203.99 Household Hitachi SELECT PName, Price, Manufacturer FROM Product WHERE Price > 100 PName Price Manufacturer SingleTouch $149.99 Canon MultiTouch $203.99 Hitachi 22 SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ] ; FROM tablo ismi WHERE koşul Duplikasyonları eleme SELECT KOMUTU SELECT DISTINCT category FROM Product Karşılaştırırsak: SELECT category FROM Product Category Gadgets Photography Household Category Gadgets Gadgets Photography Household 24 8

sınıfındaki öğrencilerin ismini ve ev kodunu listele S QL İŞLEÇLERİ SELECT name, hcode, class FROM student ; WHERE class="" Sonuç Class : class="" name hcode class Peter R Mary Y Johnny G Luke G Bobby B Aaron R : : : Class : Koşul " Girls": 1) class = " 2) gender = "F 3) Both ( AND operator) sınıfındaki kızların isim ve yaşlarını listele Fonksiyonlar: # days : DATE( ) dob # years : (DATE( ) dob) / 365 1 d.p.: ROUND(, 1) SELECT name, ROUND((DATE( )-dob)/365,1) AS age ; FROM student WHERE class="" AND gender="f" name age Wendy 12.1 Kitty 11.5 Janet 12.4 Sandy 12.3 Mimi 12.2 9

sınıfında ücret muafiyeti olmayan öğrencilerin adı ve id si SELECT name, id, class FROM student ; WHERE class="" AND NOT remission name id class Peter 9801 Mary 9802 Luke 9810 Bobby 9811 Aaron 9812 Ron 9813 Gigi 9824 : : : Ocak, Mart, Temmuz ve Eylül de doğmamış olan öğrencileri listele SELECT name, class, dob FROM student ; WHERE MONTH(dob) NOT IN (1,3,6,9) name class dob Wendy 07/09/86 Tobe 10/17/86 Eric 1C 05/05/87 Patty 1C 08/13/87 Kevin 1C 11/21/87 Bobby 02/16/86 Aaron 08/02/86 : : : sınıfında olup matematik sınav sonucu 80 ile 90 arasında olan öğrencileri seçmek SELECT name, mtest FROM student ; WHERE class="" AND ; mtest BETWEEN 80 AND 90 name mtest Luke 86 Aaron 83 Gigi 84 10

İsmi T ile başlayan öğrencileri ve sınıflarını seçme SELECT name, class FROM student ; WHERE name LIKE "T%" name Tobe Teddy Tim class 2A Kırmızı ev sahibi olup isminin ikinci harfi a olan kişileri seçme SELECT name, class, hcode FROM student ; WHERE name LIKE "_a%" AND hcode="r" name class hcode Aaron R Janet R Paula 2A R SİLME VE DEĞİŞTİRME İŞLEMLERİ 11

SELECT... FROM... WHERE koşul ; GROUP BY groupexpr [HAVING gereklilik] Gruplama fonksiyonları: COUNT( ), SUM( ), AVG( ), MAX( ), MIN( ) Gruplama groupexpr tek kayıt olarak gruplanacak olan satırları tanımlar. Genellikle bir sütundur. WHERE satırlar gruplanmadan önce bireysel satırların uyması gereken koşul. - HAVING bütun grubun sağlaması gereken koşul. Matematiksel ifadeler WHERE ile kullanılabilecek operatörler 12

Her bir sınıftaki öğrenci sayısını listeleme Matematiksel Fonksiyonlar 1C Group By Class class 1C 1C 1C Student COUNT( ) COUNT( ) COUNT( ) Her bir sınıftaki öğrenci sayısını listeleme SELECT class, COUNT(*) FROM student ; GROUP BY class class cnt 10 9 1C 9 2A 8 2B 8 2C 6 13

Her bir sınıfın ortalama matematik notunu listele 1C Group By Class class 1C 1C 1C Student AVG( ) AVG( ) AVG( ) Her bir sınıfın ortalama matematik notunu listele SELECT class, AVG(mtest) FROM student ; GROUP BY class class avg_mtest 85.90 70.33 1C 37.89 2A 89.38 2B 53.13 2C 32.67 Her bir ilçedeki kız öğrenci sayısı SELECT dcode, COUNT(*) FROM student ; WHERE gender="f" GROUP BY dcode dcode cnt HHM 6 KWC 1 MKK 1 SSP 5 TST 4 YMT 8 14

3 ten fazla erkek öğrencinin olduğu her bir sınıftaki erkek öğrencilerin matematik notu ortalaması SELECT AVG(mtest), class FROM student ; WHERE gender="m" GROUP BY class ; HAVING COUNT(*) >= 3 avg_mtest class 86.00 77.75 35.60 1C 86.50 2A 56.50 2B Gösterim sırası-ordering SELECT... FROM... WHERE... GROUP BY... ; ORDER BY colname ASC / DESC sınıfındaki erkek öğrencileri isimlerine göre sıralamak SELECT name, id FROM student ; WHERE gender="m" AND class="" ORDER BY name name id Peter 9801 Johnny 9803 Luke 9810 Bobby 9811 Aaron 9812 Ron 9813 Sonuç ORDER BY name name id Aaron 9812 Bobby 9811 Johnny 9803 Luke 9810 Peter 9801 Ron 9813 15

2A sınıfındaki öğrencileri oturdukları ilçeye göre listelemek Sonuç SELECT name, id, class, dcode FROM student ; WHERE class="2a" ORDER BY dcode name id class dcode Jimmy 9712 2A HHM Tim 9713 2A HHM Samual 9714 2A SHT Rosa 9703 2A SSP Helen 9702 2A TST Joseph 9715 2A TSW Paula 9701 2A YMT Susan 9704 2A YMT Her bir ilçedeki öğrenci sayısını listelemek (DESC. olarak) SELECT COUNT(*) AS cnt, dcode FROM student ; GROUP BY dcode ORDER BY cnt DESC Sonuç cnt docode 11 YMT 10 HHM 10 SSP 9 MKK 5 TST 2 TSW 1 KWC 1 MMK 1 SHT Çıktıların oluşturulması INTO TABLE tablename Çıktı tablo olarak bir veritabanı içine diskteki bir alana kaydedilir. INTO CURSOR temp Çıktı geçici süreliğine hafızaya kaydedilir. TO FILE filename [ADDITIVE] Çıktı text dosyasına kaydedilir. (additive = append) TO PRINTER TO SCREEN Yazıcıya gönderme Ekranda görme 16

Öğrencileri isimlerine göre sıralayıp sonucu bir veritabanı dosyasına kaydetme SELECT * FROM student ; ORDER BY name DESC INTO TABLE name.dbf id name dob sex class mtest hcode dcode remission 9707 Zion 07/29/85 M 2B 51 B MKK.F. 9709 Yvonne 08/24/85 F 2C 10 R TST.F. 9804 Wendy 07/09/86 F 84 B YMT.F. 9819 Vincent 03/15/85 M 1C 29 Y MKK.F. 9805 Tobe 10/17/86 M 88 R YMT.F. 9713 Tim 06/19/85 M 2A 91 R HHM.T. 9816 Teddy 01/30/86 M 64 B SSP.F. : : : : : : : : : Kırmızı renk evde kalan öğrencilerin sınıf, cinsiyet ve isimlerini içeren tablonun yazıcıdan çıktısını alma SELECT class, name, gender FROM student ; WHERE hcode="r" ; ORDER BY class, gender DESC, name TO PRINTER class name gender Aaron M Peter M Ron M Tobe M Janet F Kitty F Mimi F : : : Tabloların Kesişimi, Birleşimi ve Farkı A ve B nin birleşimi union (A B) A B A ve B tablolarındaki tüm satırları içeren tablo. 17

Tabloların Kesişimi, Birleşimi ve Farkı A ve B nin kesişimiintersection (A B) A Hem A hem de B tablolarında olan satırları gösteren tablo. B Tabloların Kesişimi, Birleşimi ve Farkı A nın B den farkı difference (A B) A B A tablosunda olan fakat B tablosunda olmayan kayıtları gösteren tablo. Briç ve santranç klubünde yer alan kişiler alan veri-tipi gen. içerik id numeric 4 student id number name character 10 name gender character 1 gender: M / F class character 2 class Briç [A] Santranç [B] id name gender class id name gender class 1 9812 Aaron M 1 9802 Mary F 2 9801 Peter M 2 9801 Peter M 3 9814 Kenny M 3 9815 Eddy M 4 9806 Kitty F 4 9814 Kenny M 5 9818 Edmond M 1C 5 9817 George M 1C : : : : : : : : 18

Tabloların Kesişimi, Birleşimi ve Farkı SELECT... FROM... WHERE... ; UNION ; SELECT... FROM... WHERE... İki klüp üyeleri birlikte bir etkinlik düzenlemek isterse katılacak öğrencilerin listesi: SELECT * FROM briç ; UNION ; SELECT * FROM santranç ; ORDER BY class, name INTO TABLE etkinlik id name gender class 1 9812 Aaron M 2 9801 Peter M 3 9814 Kenny M 4 9806 Kitty F 5 9818 Edmond M 1C 6 9802 Mary F 7 9815 Eddy M 8 9817 George M 1C Her iki klübede üye olan öğrenciler SELECT... FROM table1 ; WHERE col IN ( SELECT col FROM table2 ) SELECT * FROM briç ; WHERE id IN ( SELECT id FROM santranç ) ; TO PRINTER Briç klubüne üye olan fakat santranç klübüne üye olmayan öğrenciler SELECT... FROM table1 ; WHERE col NOT IN ( SELECT col FROM table2 ) SELECT * FROM briç ; WHERE id NOT IN ( SELECT id FROM santranç ) ; INTO TABLE fark 19

Birden çok tablo olması durumunda: SQL kullanılarak çıkarılabilir. birden çok Bunun için kullanılan işleç join dir. tablodan bilgi Join işleci ile birden fazla tablo tüm olasılıkları içerecek şekilde çok daha büyük yeni bir tabloda toplanır (Kartezyen çarpım) Bu yeni tablodaki satırlar filtrenelerek yararlı bilgiler üretilebilir. Çoklu tablolar alan1 A B alan2 1 2 3 alan1 A A A B B B alan2 1 2 3 1 2 3 Herbir öğrenci bir müzik aleti öğrenmelidir. İki veri tabanı dosyası: student.dbfdbf & music.dbf Ortak alan: student id Müzik dersi örneği field id type type width contents numeric 4 student id number character 10 type of the music instrument SELECT A USE student SELECT B USE music 20

Doğal Birleştirme (Natural Join) işlemi ile iki tablo ortak sütunları kullanılarak birleştirilir. Bu işlem iki tablo arasında ilişki kurmaya benzer. Doğal Birleştirme SELECT a.comcol, a.col1,, b.col2, expr1, expr2 ; FROM table1 a, table2 b ; WHERE a.comcol = b.comcol Öğrencilerin ve kullandıkları müzik aletlerini içeren bir tablo yaratma (Natural join) id 9801 name Student class id 9801 Same id name Product Join class id 9801 type Music type Öğrencilerin ve kullandıkları müzik aletlerini içeren bir tablo yaratma (Natural join) SELECT s.class, s.name, s.id, m.type ; FROM student s, music m ; WHERE s.id=m.id ORDER BY class, name class name id type Aaron 9812 Piano Bobby 9811 Flute Gigi 9824 Recorder Jill 9820 Piano Johnny 9803 Violin Luke 9810 Piano Mary 9802 Flute : : : : 21

Herbir sınıfta piyano öğrenen öğrencilerin sayısını bulma (Natural join) Student Music Üç kısım : (1) Natural Join. (2)Koşul: m.type="piano (3) GROUP BY class Join Product Condition m.type= "Piano" Group By class Herbir sınıfta piyano öğrenen öğrencilerin sayısını bulma (Natural join) SELECT s.class, COUNT(*) ; FROM student s, music m ; WHERE s.id=m.id AND m.type="piano" ; GROUP BY class ORDER BY class class cnt 4 2 1C 1 ÖZET General Structure Comparison Grouping Display Order Logical Operators Output Union SELECT, ALL / DISTINCT, *, AS, FROM, WHERE IN, BETWEEN, LIKE "% _" GROUP BY, HAVING, COUNT( ), SUM( ), AVG( ), MAX( ), MIN( ) ORDER BY, ASC / DESC AND, OR, NOT INTO TABLE / CURSOR TO FILE [ADDITIVE], TO PRINTER, TO SCREEN UNION 22