Veri Tabanı I.

Slides:



Advertisements
Benzer bir sunumlar
Hazırlayan : Öğr. Gör. Fahri YILMAZ
Advertisements

Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
III.Oturum: SQL ile Verileri İşlemek
Verileri gruplayarak analiz
KARMAŞIK SORGULAR.
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
SQL (Structured Query Language)
KARMAŞIK SORGULAR.
SQL (Structured Query Language)
SQL Structured Query Language (Yapısal sorgulama dili)
Karmaşık (İç içe) SELECT Sorguları
SQL’e Giriş.
SQL KOMUTLARI.
Normalizasyon Kuralları & SQL
SQL Komutlar 2 Sibel SOMYÜREK.
SQL de Değişken Tanımlama
SQL Komutlar 5 Sibel SOMYÜREK.
İndeksler Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
SQL Komutlar 4 Fahri YILMAZ.
Veritabanı Yönetim Sistemleri-I
Alt Sorgular Veritabanı 2.
5 Sorgulama İşlemleri Veritabanı 1.
Veri Tabanı Yönetim Sistemleri
Tek Tablo İçinde Sorgulamalar
SQL Sorgu Örnekleri.
Fonksiyonlar Hafta 4.
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
10 Gruplandırarak Sorgulama
SQL (STRUCTURED QUERY LANGUAGE)
VTYS Öğr. Gör. Engin DUTAR
11 ekim 2011 VTYS –II Dersi. Kalıp İfadelerle Sorgu (Pattern) Eğer bir sözel verinin sadece belli kriterlere uyanlarını seçeceksek sütun_adı LIKE kalıp.
MYSQL 4. HAFTA. mySQL veri türleri INTTamsayı: 'den kadar değişen diziye "signed" (işaretli), 0'dan 'e kadar değişenine.
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
SQL Komutlar 3 Sibel SOMYÜREK.
VTYS Öğr. Gör. Engin DUTAR
VERİTABANI ve YÖNETİMİ
SQL Dili ve MySQL Komutları
SQL’e Giriş ve SELECT Komutu
SQL de Değişken Tanımlama
ÇOKLU TABLOLAR.
MySQL Operatörleri ve Fonksiyonları
SQL SERVER 2008 Yücel YILDIRIM.
VeriTabanı Uygulama.
SQL (Structured Query Language). MySQL de Temel Komutlar : CREATE DATABASE isim; verilen isimde bir veri tabanı oluşturur. SHOW DATABASES; Tüm yaratılan.
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
VTYS Öğr. Gör. Engin DUTAR
SQL’ e Giriş Uzm. Murat YAZICI.
Veritabanı Kavramları
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Yapısal Sorgulama Dili SQL Hafta 7. TEKRARLI SATIRLARI ÖNLEMEK  DISTINCT komutu ile sorgu sonucunda birden fazla kayıt aynı verileri içeriyorsa tekrarlı.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
İNDEKS.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
DML ile veri ekleme, silme ve değiştirme
SQL (STRUCTURED QUERY LANGUAGE)
Sunum transkripti:

Veri Tabanı I

Veri Tabanı Nedir ? Bir kişiye veya ürüne ait detaylı verilerin bir düzen çerçevesinde saklandığı ortamlar “Veri tabanı” olarak adlandırılır. Veri tabanı ile verilerinizi kaydedebilir, silebilir, güncelleyebilir, yeni veriler ekleyip mevcut verileriniz üzerinde sorgulamalar yapabilirsiniz.

Veri Tabanı Tabloları

İlişkisel Veri Tabanı İlişkisel veri tabanı, birbirinden farkı tablolara yerleştirilmiş olan verilerin birbirleri ile belirli alanlara göre ilişkilendirilerek düzenlenen veri tabanlarıdır. İlişkisel veri tabanı günümüzde en yaygın olarak kullanılan veri tabanı türüdür İlişkisel veri tabanları birden fazla tablodan oluşabilir. Tablolar ise satır ve sütunlardan oluşur. Tablolarda satır ve sütunların kesiştiği noktaya ise “hücre” adı verilir. Tablo içerisindeki satırlar tablonun kayıtlarını oluşturur.

Anahtar Kısıtlamaları Bütünlük kısıtlamalarının sağlanmasında anahtar kısıtlamaları önemli bir role sahiptir. Herhangi bir tablodaki her bir satır için kullanılan anahtarın tek olması gerekmektedir. Aksi takdirde kayıtlar arasında tutarsızlıklar meydana gelebilmektedir.

Birincil anahtar(Primary key) kısıtlamaları: Bir tablonun birincil anahtarı, tabloda depoladığınız her satırı benzersiz şekilde tanımlayan bir veya daha çok alandan oluşur. Genellikle, birincil anahtar olarak işlev gören bir kimlik numarası, seri numarası, okul no veya kod gibi benzersiz bir tanımlayıcı vardır. Günlük hayatımızda da, TC Kimlik Numaramız, illerin plaka (06-Ankara,34-İstanbul, 35-İzmir gibi), telefon kod numaraları(312-Ankara,242-Antalya gibi) ve posta kod numaraları bağlı bulundukları ülkelerde benzersiz numaralardır birincil anahtarları başlarındaki sayısal ifadelerdir. Birincil anahtarlar hiçbir zaman NULL(boş) veya birbiri ile ayni olan değerleri içeremez.

Yabancı anahtar(Foreign key) kısıtlamaları

Veri Kısıtlamaları

MYSQL MySql’de PHP gibi açık kaynak kodlu olup ücretsiz temin edilebilmektedir. Bu nedenle çokça tercih edilmektedir. MySQL’de herhangi bir komut vermek için, komutu girdikten sonra noktalı virgül (;) konulur. create database veritabanı_adı; komut ile bir veritabanı oluşturulur. Mysql’deki veritabanlarını görüntülemek için SHOW DATABASES; komutu çalıştırılır.

Bir veritabanını silmek için DROP DATABASE veritabanı_adı; kullanılır. Herhangi bir veritabanında işlem yapabilmek için önce o veritabanının içine girmemiz gerekmektedir. Bu işlem için use veritabanı_adı; kullanılır. Bir veritabanında bulunan tabloları görüntülemek için show tables; komutu kullanılır. Tabloları görüntülemek için öncelikle use komutu ile o veritabanın içine girilmelidir. DESCRIBE tabloadı; komutu ile seçilen veritabanındaki alan adlarını ve alan tiplerini görebiliriz.

PHPMyAdmin Bu program ile Mysql ile istenilen tüm işlemleri herhangi bir kod yazmadan yapmak mümkündür.

Yukarıdaki tabloyu SQL sorgusu ile de oluşturabiliriz. Fakat PHPMyAdmin ve benzeri programlarla oluşturmak çok daha kolay.

Temel SQL Sorgulamaları Select Komutu: Tablo içerisinde listelenecek field’leri göstereceğimiz kısımdır. From Komutu: Hangi tabloda listeleme yapacağımızı belirteceğimiz kısımdır. En basit SQL sorgusudur. Tablodaki tüm alanları getirir. Sadece ad,soyad,maas alanlarını getirir.

ORDER BY: Listelenecek bilgilerin belli bir alan adına göre artan ya da azalan olarak listelemesi için bu sözcük kullanılır. Artan sırada listelemek için ORDER BY ile birlikte ASC, azalan sırada listelemek için DESC kullanılır.

KOŞULA BAĞLI OLARAK LİSTELEME (WHERE)

Personel tablomuza 3 tane yeni alan ekliyoruz Personel tablomuza 3 tane yeni alan ekliyoruz. Bunlar bölüm adı, bölüm numarası, cinsiyet.

Bölümü satış ya da muhasebe olan erkek personeli listeleyen SQL sorgusunu yazalım. Maaşı 1500-2000 arasında olan personellerin ad,soyad ve maaşını buldurun.

İşletmede çalışan tüm personelin maaşları toplamı ne kadardır? Muhasebe bölümünde çalışan tüm personelin maaşları toplamı ne kadardır? Tüm personelin ortalama maaşı ne kadardır? İşletmede ödenen en yüksek maaş ne kadardır? Muhasebe bölümünde ödenen en yüksek maaş ne kadardır?

İşletmede toplam kaç çalışan vardır? İşletmede maaşı 1500 ‘den fazla olan toplam kaç çalışan vardır? İşletmede çalışanların ortalama maaşları ne kadardır? Her bölümdeki ortalama maaş ne kadardır?

HAVING SÖZCÜĞÜ HAVING sözcüğü SELECT komutunda GROUP BY sözcükleri olduğu zaman kullanılır. HAVING sözcüğünü izleyen ifade içinde, SUM, COUNT(*), AVG, MAX ya da MIN gibi kümeleme fonksiyonlarından en az biri bulunmalıdır. Where sözcüğü bir tablonun tek tek satırları üzerinde işlem yapan koşullar için geçerli iken, HAVING sözcüğü sadece, gruplanmış veriler üzerindeki işlemlerde geçerlidir. Ortalama maaşı 1500’den fazla olan bölümlerdeki ortalama maaş ne kadardır?

Tablo Satırlarında Güncelleme Yapma (UPDATE) İşlemi Sene sonunda tüm personelin maaşlarında %15 artış olduğuna göre, tüm personelin maaşlarındaki güncellemeyi tabloya uygulayınız. Sicil numarası 2718 olan personel yılın elemanı seçilmiş olup maaşına %10 oranında zam yapılacak ve çalıştığı bölüm satış olarak değiştirilecek .

Tablo Satırlarından Veri Silme (DELETE) İşlemi Sicil numarası 2742 olan personel işten ayrılmıştır. Bu personeli personel tablosundan Silen SQL komutunu yazınız. Sicil numarası 2718 olan personelin bolumkodunu 2 olarak güncelleyiniz.

dogumyeri ve email olmak üzere 2 yeni alan ekliyoruz dogumyeri ve email olmak üzere 2 yeni alan ekliyoruz.Tablomuzun son hali aşağıda.

Kayıt Arama (LIKE) İşlemi Personel tablosunda adı m harfi ile başlayan personele ait bilgileri listeleyen SQL sorgusunu yazın. Personel tablosunda soyadı a harfi ile biten personele ait bilgileri listeleyen SQL sorgusunu yazın. Personel tablosunda mail adresi içinde hotmail ifadesi geçen personele ait bilgileri listeleyen SQL sorgusunu yazın.

IN Kullanımı Personel tablosunda adı ‘Melih’, ’Ahmet’ veya ‘Berrin’ olan çalışanlara ait bilgileri listeleyen SQL sorgusunu yazın.

Tekrarlayan Kayıtları Engelleme Tablolarda bir sütunda tekrarlayan kayıtlar olabilir. Sorgularda bir sütundaki aynı değere sahip kayıtlardan sadece bir tanesinin gösterilmesini isterseniz DISTINCT deyimini kullanmak yeterlidir.

Sonuç Adedini Belirleme (Limit) Bu işleç sorgu gerçekleştiğinde en fazla kaç tane sonucun döndürüleceğini belirlememizi sağlar. İlk 2 kaydı atla, sonraki 3 kaydı getir anlamındaki sorgu

Rastgele Bir Kayıt Seçme(RAND) Bazı web sayfalarında kullanıcılara rastgele bazı veriler sunulur. Bunun için RAND deyimi kullanılır. Bu deyim ORDER BY işleci ile birlikte kullanılır. Belli miktarda veri çekilebilmesi için RAND( ) deyimi kullanıldığında LIMIT sınırlaması yapılması uygun olacaktır.

sehir alanına memleket takma ismi veriliyor. Takma İsimler (Alias) Eğer bir isime takma isim verilmek istenirse sütun isminden hemen sonra AS deyimi kullanılarak yeni isim verilebilir. Bu işlem sırasında tablo yapısı değiştirilmez. sehir alanına memleket takma ismi veriliyor.

Sql’de matematiksel ifade kullanma Veritabanı programını sadece veri çekmek için değil, bir hesap makinesi olarak da kullanabiliriz. SQL’de herhangi bir argüman yazdırmak için SELECT kalıbı kullanılır.

Join İşlemleri İlişkisel veri tabanlarının gücü veri tabanlarının birden fazla tablodan oluşmasına olanak vermelerinden, böylece hem verilerin sağlığını korumak hem de yazılımcıların işini kolaylaştırmalarından kaynaklanır.

INNER JOIN Inner Join, sadece iki tabloda da var olan verileri esas alır; eğer bir tabloda karşılık yoksa, o kaydı hiç ekrana getirmez. iller Tablosu havadurumuTablosu

Select iller.ilad,havadurumu.durum From iller,havadurumu Where iller.ilno=havadurumu.ilno Veya SELECT iller.ilad, havadurumu.durum FROM iller INNER JOIN havadurumu ON iller.ilno=havadurumu.ilno

Left Join Inner Join'e oldukça benzese de bu bağlama türünün bir farkı vardır. Inner Join sadece iki tabloda da var olan verileri esas alır; eğer bir tabloda karşılık yoksa, o kaydı hiç ekrana getirmez. Ancak LEFT veya RIGHT join 'de istediğiniz yandaki (Left veya Right) tüm veriler ekrana gelir. Eğer bir sorgu da Left JOIN kullanırsanız,( tabloSOL.alan1 = tabloSAG.alan2  ), sol taraftaki tabloda bulunan (tabloSOL) tüm veriler, sağdaki tabloda olup olmadığına bakılmaksınız ekrana yazılacaktır. Karşılığı bulunanlarda gerekli veri ekranda yazacak olmayanlarda ise <NULL> yazacaktır. 

Right Join Eğer bir sorgu da Right JOIN kullanırsanız,( tabloSOL.alan1 = tabloSAG.alan2  ), sağ taraftaki tabloda bulunan (tabloSAG) tüm veriler, soldaki tabloda olup olmadığına bakılmaksınız ekrana yazılacaktır. RIGHT joinde sağdaki tablodaki tüm değerler listelenirken soldaki tablodaki değerlerden karşılığı olanlar yazılır, karşılığı olmayanlar yerine NULL yazılır.

kitap tablosu kitap_bilgi tablosu

500 sayfanın üzerinde kaç kitap olduğunu bulan sorguyu yazın. Kaç farklı yayınevi olduğunu bulan sorguyu yazın. Seçkin isimli yayınevi tarafından çıkan kitapların adını ve yazarını gösteren SQL sorgusunu yazın.

Yayınevlerinin isimlerini listeleyen SQL sorgusunu yazalım. Kitapların adını, yazarını ve basım yılını; basım yılına göre artan sırada listeleyen SQL sorgusunu yazalım. Kitabın adının içinde ’p’ harfi geçen kitapları listeleyen SQL sorgusunu yazalım.

kitap tablosunda rastgele 3 kaydı getiren SQL sorgusunu yazalım. 2012 yılında basılan kitapların isimlerini ve basım yılını listeleyen SQL sorgusunu yazın.

personel tablosu bolum tablosu

118 sicil numaralı Ayşen Taşçı isimli 20. 04 118 sicil numaralı Ayşen Taşçı isimli 20.04.1970 Sivas doğumlu bir kişi 1800 TL maaşla 1 numaralı bölümde işe başlamıştır. Bu kişiyi personel tablosuna ekleyen sorguyu yazın. Insert into personel (sicil,ad,soyad,dog_tar,dog_yer,cinsiyet,maas,bol_no) Values (118,'Ayşen','Taşçı','1970-04-20','Sivas','K',1800,1) Doğum yeri Gaziantep olan erkek personeli sicil numarasına göre azalan sırada listeleyen sorguyu yazın. Select * From personel Where dog_yer='Gaziantep' And cinsiyet='E' Order By sicil DESC

2000 TL’den daha fazla maaş alan personelin adını,soyadını, bölüm adını ve maaşını listeleyen SQL sorgusunu yazın. Select ad,soyad,maas,bolum_ad From personel Inner Join bolum ON personel.bol_no=bolum.bolum_no Where maas>2000 Herbir bölümdeki ortalama maaşı tek sql kullanarak bulan sorguyu yazın. Select bol_no,AVG(maas) From personel Group By bol_no

Gaziantep ya da Edirne doğumlu kaç kişi olduğunu bulan SQL sorgusunu yazın. SELECT Count(*) From personel Where dog_yer='Gaziantep' OR dog_yer='Edirne'; 2 numaralı bölümde çalışanların maaşına 150 TL zam yapan SQL sorgusunu yazın. Update personel SET maas=maas+150 Where bol_no=2

Bu işyerinde 3 numaralı bölümde çalışanlara toplam ne kadar maaş ödenmektedir? Select SUM(maas) From personel Where bol_no=3 İşyerinde çalışan 1 tane kadın personeli rastgele seçen sorguyu yazın. SELECT * FROM personel WHERE cinsiyet = 'K' ORDER BY Rand( ) LIMIT 1

Satış bölümünde çalışan Erkek personeli maaşa göre artan sırada listeleyen sorguyu yazın. SELECT * FROM bolum INNER JOIN personel ON bolum.bolum_no = personel.bol_no WHERE cinsiyet = 'E' AND bolum_ad = 'Satış' ORDER BY maas

personel tablosu bolum tablosu

Null olan kayıtları bulmak Mail adresi olmayan personeli listeleyen SQL sorgusunu yazın. Mail adresi olmayan kaç personel olduğunu listeleyen SQL sorgusunu yazın. İşveren çalışanlarına %15 ikramiye vereceğine göre işverenin ikramiye için ödeyeceği toplam paranın ne kadar olduğunu bulan SQL sorgusunu yazın.

Her bir gruptaki maksimum ücret ne kadardır?

Karakter Katarı Fonksiyonları