Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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.

Benzer bir sunumlar


... konulu sunumlar: "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."— Sunum transkripti:

1 Veri Tabanı I

2 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.

3 Veri Tabanı Tabloları

4

5 İ 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.

6

7 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.

8 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.

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

10 Veri Kısıtlamaları

11 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.

12 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.

13

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

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

16

17

18

19

20

21 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.

22 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.

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

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

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

26 İ ş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?

27 İ ş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?

28 HAVING SÖZCÜ Ğ Ü Ortalama maaşı 1500’den fazla olan bölümlerdeki ortalama maaş ne kadardır? 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.

29 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.

30 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.

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

32 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.

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

34 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.

35

36 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

37 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.

38 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.

39 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.

40 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.

41 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

42 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

43 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 yazacaktır.

44

45 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.

46

47 kitap tablosu kitap_bilgi tablosu

48 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.

49 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.

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

51 personel tablosu bolum tablosu

52 118 sicil numaralı Ayşen Taşçı isimli 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şçı',' ','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

53 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

54 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

55 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

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

57 personel tablosu bolum tablosu

58 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.

59 Her bir gruptaki maksimum ücret ne kadardır?

60 Karakter Katarı Fonksiyonları


"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." indir ppt

Benzer bir sunumlar


Google Reklamları