• Sonuç bulunamadı

Öğr. Gör. Kemal ÖZCAN

N/A
N/A
Protected

Academic year: 2022

Share "Öğr. Gör. Kemal ÖZCAN"

Copied!
24
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Öğr. Gör. Kemal ÖZCAN

(2)

Hafta 11

Veritabanı İşlemleri -1

(3)

Veritabanı Nedir ?

Veritabanı(database) verilerin düzenli bir şekilde saklanmasını sağlayan yazılımlardır.Günümüzde bir çok veritabanı kullanılmaktadır. PHP’de genellikle MySQL kullanılmaktadır. MySQL açık kaynak kodlu ve kişisel kullanımlar için ücretsiz bir yazılımdır.

Web Uygulamaları için veritabanının önemli bir yeri vardır. Örneğin İçerik yönetim sistemleri ile bir sitenin içeriğini rahatça yönetebiliriz.

Yüzlerce,binlercek kişinin ziyaret ettiği sitelerdeki veriler veritabanlarında saklanırlar ve ziyaretçilere sunulurlar.Veritabanlarında milyonlarca bilgi saklayabiliriz. Gerektiğinde kolayca arama yapabilir , bilgileri değiştirebilir , silebilir ya da ekleme yapabiliriz.

Bir veritabanı bir çok tabloyu içerebilir. Her tablonun bir adı vardır. Tablodaki her bir alanın da (sütun) bir adı ve içersine yerleşecek verinin türü gibi

özellikleri vardır. Bütün bu yapının oluşturulmasına veritabanının tasarımı adı verilir. Bu süreç, doğal olarak, boş bir veritabanının

oluşturulması ile başlar. Ardından tablolar ve bu tablolarda yer alacak alanlar ve

bu alanların özelliklerinin atanması, dizin oluşturma işlemleri, anahtarların

belirlenmesi gibi işlemler gelecektir. Bilinen bazı veritabanı yazılımları olarak

Oracle, MySQL, Microsoft SQL Server, PostgreSQL, IBM DB2, dBase ve

Paradox sayılabilir.

(4)

MySQL Veritabanı

 MySQL Veritabanı yazılımın diğerlerinden ayıran en önemli fark, kuşkusuz ki açık kaynak kodlu ve ücretsiz olmasıdır. Diğer

yandan, ücretsiz olarak dağıtılan yazılımların kalitelerinin de düşük olmadığına güzel bir örnek oluşturmaktadır. Şöyle ki

genel olarak düşünülenin aksine, MySQL veritabanı sistemi çok büyük veri yığınlarında oldukça iyi performans sergilemektedir.

 MySQL veritabanına ulaşmak için Xampp yazılımını kurmamız yeterlidir. Xampp’ı kurduktan sonra Apache ve MySQL’i

başlatırız. Veritabanına ait panele ulaşmak için herhangi bir tarayıcının adres satırına http://localhost/phpmyadmin/

yazmamız yeterlidir.

(5)
(6)

Veritabanı Oluşturma İşlemi

MySQL yönetim panelinden Veritabanları sekmesinden veritabanı

oluşturabiliriz.

(7)

1 numaralı alana oluşturmak istediğimiz veritabanının adını yazıyoruz. İsimlendirme yaparken değişken

oluşturma kurallarına göre isim belirlemeliyiz.

2 numaralı alanda ise oluşturacağımız veritabanında yer alacak bilgilere uygun bir karakter kodlama tablosu seçilir. Türkçe için seçebileceğimiz en uygun karakter tablosu “utf8_turkish_ci” olacaktır.

 Oluştur butonuna bastığımızda veritabanımız

oluşturulmuş olacaktır.

(8)

Tablo Oluşturma İşlemi

 MySQL yönetim panelinin sol tarafındaki

menülerden oluşturduğumuz veritabanının içine girerek tablo oluşturuyoruz.

1 numaralı alana oluşturmak istediğimiz tablonun adını yazıyoruz. İsimlendirme yaparken değişken oluşturma kurallarına göre isim belirlemeliyiz.

2 numaralı alanda ise tablomuzda yer alacak alanların sayısını yazıyoruz. Git

butonuna bastığımızda aşağıdaki ekran gelecektir

(9)

1 numaralı alanda oluşturmak istediğimiz alanların adlarını yazıyoruz.

Türkçe karakter kullanılmamalıdır.

2 numaralı alanda oluşturacağımız alanların tipini belirliyoruz.

3 numaralı alanda karakter uzunluklarını belirliyoruz.

 Numara alanının indeks’ini Primary olarak işaretliyoruz ve

AUTO_INCREMENT seçeneğini seçili hale getiriyoruz. Her tabloda en az 1 tane Primary Key(birincil anahtar) bulunmak zorundadır.

AUTO_INCREMENT otomatik artış yapmak için kullanılır.

(10)

Kod ile Tablo Ekleme

 Tablo’yu kod ile eklemek için Tablo ekleyeceğimiz veritabanına

tıklıyoruz SQL yazısına tıklayıp SQL kodumuzu yazıyoruz.

(11)

CREATE TABLE deyiminin bölümleri şunlardır ;

CREATE TABLE[IF NOT EXISTS] tablo_adı(

sütun_adı veri_tipi[karakter] [özellik][boşluk][varsayılan][ekstra],

….

)[tablo seçenekleri][karakter];

Bölüm Açıklama

Tablo_adı Oluşturulacak tablonun adı.(ogrenci) gibi

Sütun_adı Yeni tabloda oluşturulacak sütun veya sütunların adı, En az bir sütun oluşturmamız gerekir.

Veri_tipi Sütunun veri tipidir.(INT,VARCHAR,TEXT,LONGTEXT) gibi.

Boyut Sütuna eklenecek veri miktarı INT(2) , VARCHAR(255) gibi.

Karakter Veri türünün uluslar arası dil grubuna göre tanımı (CHARACTER SET utf8) gibi.

Özellik Varsayılan değerin alabileceği veri tipi ( UNSIGNED,TIMESTAMP) gibi.

Boşluk Kayıt alanının boş bırakılıp bırakılmayacağı (NULL, NOT NULL) gibi.

Varsayılan Kayıt alanına veri girilmediğinde olması istenen değer

Ekstra İndex bilgilerini tanımlar(AUTO_INCREMENT,PRIMARY KEY) gibi.

(12)

Metin ve İkili(binary) saklayan veri türleri

Bölüm Açıklama

CHAR() 0 ile (255 bayt) karakter uzunluğunda metin veri tutar.

VARCHAR() 0 ile 65528 karakter uzunluğunda metin veri tutar.

TINYTEXT Maximun 255 bayt karakter uzunluğunda metin veri tutar.

TEXT Maximum 65535 (64 kb) karakter uzunluğunda metin veri tutar.

BLOB Maximum 65535(64 kb) karakter uzunluğunda ikilik(binary) veri tutar.

MEDIUMTEXT Maximum 16777215 (16mb) karakter uzunluğunda metin veri tutar.

MEDIUMBLOB Maximum 16777215 (16mb) karakter uzunluğunda ikilik(binary) veri tutar.

LONGTEXT Maximum 4294967295(4gb) karakter uzunluğunda metin veri tutar.

LONGBLOB Maximum 4294967295(4gb) karakter uzunluğunda ikilik(binary)

veri tutar.

(13)

Sayıları Saklayan Veri Türleri

Bölüm Açıklama

TINYINT()

-128 ile 127 değer alır. UNSIGNED seçilmemişse 0 ile 255 pozitif sayıları alır.

SMALLINT()

-32768 ile 32767 değer alır. UNSIGNED seçilmemişse 0 ile 65535 pozitif sayıları alır.

MEDIUMINT()

-8388608 ile 8388607 değer alır. UNSIGNED seçilmemişse 0 ile 16777215 pozitif sayıları değer alır.

INT()

-2147483648 ile 2147483647 değer alır. UNSIGNED seçilmemişse 0 ile 4294967295 pozitif sayıları alır.

BIGINT()

-9223372036854775808 ile 9223372036854775807 değer alır.

UNSIGNED seçilmemişse 0 ile 18446744073709551615 pozitif değer alır.

FLOAT

Küçük sayılarda ondalıklı noktalı sayılar tutar.

DOUBLE(,)

Büyük sayılarda ondakiklı noktalı sayılar tutar.

DECIMAL(,)

Çift basamaklı, sabit ondalıklı noktalı sayılar tutar.

(14)

Tarih ve zaman bilgisini saklayan veri türleri

Bölüm Açıklama

DATE YYYY-MM-DD.

DATETIME YYYY-MM-DD HH:MM:SS.

TIMESTAMP YYYYMMDDHHMMSS.

TIME HH:MM:SS.

Tabloya Veri Ekleme

Bir veya birden fazla sütun ve belirli veri türlerine göre oluşturulmuş bir tabloya SQL ile veri girişi yapabiliriz. Bunun için SQL ekleme sorgusu kullanılır.

Ekleme Sorgusu

Herhangi bir tablodaki sütunlara veri eklemek için ekleme sorgusunu

kullanırız. Ekleme sorgusu INSERT INTO ile yapılmaktadır.

(15)

Kullanımı ;

INSERT INTO hedef [(sütun1[,sütun2[,…]])] VALUES (deger1[,deger2[,…]]) Parametre Açıklama

hedef Kayıtların ekleneceği bölüm

Sütun1,sütun2 Verileri ekleneceği tablodaki sütunların adları

Deger1,deger2 Tablodaki ilgili sütunlara eklenecek kayıtlardır. Deger1 adlı kayıt sütun1 alanına , deger2 adlı kayıt sütun2 alanına eklenmektedir.Değerleri

virgülle bir birinden ayırmalı ve her zaman tek tırnak işareti kullanmalısınız.

Örnek

Ogrenci adında bir tablo oluşturalım.

CREATE TABLE ogrenci(

numara INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, adsoyad VARCHAR(100) NOT NULL,

vize VARCHAR(3),

final VARCHAR(3)) DEFAULT CHARSET =utf8;

(16)

 Tablo’ya veri ekleme 2 şekilde yapılabilir.

INSERT INTO ogrenci(adsoyad,vize,final) VALUES (“Gökhan AKDEMİR”,”85”,”80”);

INSERT INTO ogrenci VALUES (null,“Gökhan AKDEMİR”,”85”,”80”);

SQL ile Tablo’dan Kayıt Güncelleme

Herhangi bir tablodaki kayıtları güncellemek veya değiştirmek için güncelleme sorgusu kullanılır. Güncelleme sorgusu UPDATE deyimi ile yapılır.

Kullanımı ;

UPDATE tablo SET yenideger WHERE ölcut;

(17)

Parametre Açıklama

Tablo Değiştirmek istediğiniz verileri içeren tablonun adı.

Yenideger Güncelleştirilen kayıtlardaki belirli bir alana eklenecek değeri belirleyen ifade.

Ölcut Hangi kayıtların güncelleştirileceğini belirlediğimiz ifade. Yanlızca ifadeye uygun olan kayıtlar güncellenir.

Örnek

UPDATE ogrenci SET vize=”90” WHERE numara=2;

(18)

SQL ile Tablo’dan Kayıt Silme

Herhangi bir tablodaki kayıtları silmek için silme sorgusu kullanılır.

Silme sorgusu DELETE FROM deyimi ile yapılır.

Kullanımı ;

DELETE FROM tablo WHERE ölcut;

Parametre Açıklama

Tablo Silmek istediğiniz kayıtları içeren tablonun adı.

Ölcut Hangi kayıtların silineceğini belirlediğimiz ifade. Yanlızca ifadeye uygun olan kayıtlar silinir. İfade belirtilmediğinde tüm kayıtlar silinir.

Örnek

DELETE FROM ogrenci WHERE numara=2;

ogrenci tablosundaki numarası 2 olan kayıtı siler.

(19)

SQL ile Kayıt Sorgulama

Veritabanındaki bilgilerin çeşitli kriterlere göre gösterilme işlemidir.

SELECT Deyimi

Kayıtlı bilgilere ulaşmak için SELECT deyimi kullanılır.

Kullanımı ;

SELECT sütun FROM tablo Yan tümce;

Parametre Açıklama

sütun Kayıtları gösterilecek olan sütun veya sütunların adları.

tablo Kayıtları gösterilecek olan tablo adı.

Yan tümce Kayıtları özel kriterlere göre tanımlayacak SQL ifadeleri.

SELECT * FROM ogrenci;

ogrenci tablosundaki tüm sütunları çeker.

SELECT adsoyad FROM ogrenci;

ogrenci tablosundaki sadece adsoyad sütununu çeker.

(20)

Yan Tümce Yaptığı iş

WHERE Kayıtları belirli bir ölçüye göre filitre eder.

ORDER BY ASC ve DESC ile azalan yada artan sırada kayıtları listeler.

GROUP BY Benzer Kayıtları gruplandırmak için kullanılır.

HAVING Grup kriterleri tanımlanır ve gruplandırılmış sütunlardaki veriler filitreler.

Karşılaştırma Operatörleri ve Fonksiyonları

Operatör Anlamı Örnek Açıklama

= Eşitse Fiyat=2 Fiyat değeri 2 mi diye bakar

> Büyükse Fiyat>2 Fiyat değeri 2’den büyük mü diye bakar.

< Küçükse Fiyat<2 Fiyat değeri 2’den küçük mü diye bakar.

>= Büyük yada

eşitse

Fiyat>=2 Fiyat değeri 2’den büyük yada eşit mi diye bakar.

<= Küçük yada

eşitse

Fiyat<=2 Fiyat değeri 2’den küçük yada eşit mi diye bakar.

!= veyaz <> Eşit değilse Ad!=”Gökhan” Ad değeri Gökhan’a eşit değilse diye bakar.

(21)

Karşılaştırma Operatörleri ve Fonksiyonları

Operatör Anlamı Örnek Açıklama

IS NOT NULL Boş değilse Ad IS NOT NULL Ad değeri boş değilse diye bakar.

IS NULL Boş ise Ad IS NULL Ad değeri boşmu diye bakar.

BETWEEN Arasında ise Fiyat BETWEEN

1 AND 10 1 ile 10 arasındaki fiyat değerlerini alır.

IN İçinde ise Ad IN(“Gök”) Ad içerisinde Gök var mı diye bakar.

NOT IN İçinde değilse Ad NOT IN(“Gök”) Ad içerisinde Gök yoksa diye bakar.

LIKE Eşleniyorsa Ad

LIKE (“%Gökhan%”) Ad içinde Gökhan ile başlayan ve devam eden herhangi bir değer var mı diye bakar.

NOT LIKE Eşlenmiyorsa Ad NOT

LIKE (“%Gökhan%”) Ad içinde Gökhan ile başlayan ve devam etmeyen bir değer var mı diye bakar.

(22)

Örnek

 SELECT * FROM ogrenci WHERE vize BETWEEN 60 and 80 ogrenci tablosunda vize notu 60 ile 80 arasındakileri gösterir.

 SELECT * FROM ogrenci WHERE ad LIKE ‘g%’

ogrenci tablosunda adı g ile başlayanları gösterir.

LIKE ile eşleştirme işlemleri

Kayıtlarda arama ve eşleştirme gibi işlemlerde iki joker işareti vardır.

%(Yüzde işareti) sıfır veya birden fazla karakteri temsil eder.

_(Altçizgi) bir karakteri temsil eder.

(23)

 Aşağıdaki Tabloda Örnekler verilmiştir.

Örnek Açıklama

‘A_Z’ A ile Z arasında herhangi bir karakteri araştırır.Örnek = ‘ABZ’

‘ABC%’ ABC ile başlayan her şeyi bulur.

‘%XYZ’ ‘XYZ ’ ile biten her şeyi bulur.

‘%AN%’ İçinde ‘AN’ geçen her şeyi bulur.

‘_AN%’ Başında herhangi bir karakter olan ve ‘AN’ ile başlayan ve sonu herhangi bir şey olan bilgileri bulur.

ORDER BY

Kayıtları büyükten küçüğe yada küçükten büyüğe doğru sıralamak için kullanılır.

SELECT * FROM ogrenci ORDER BY adsoyad DESC

ogrenci tablosundaki adsoyad alanını büyükten küçüğe doğru sıralar.

(24)

Ders Sonu

Haftaya

Veritabanı İşlemleri - 2

Referanslar

Benzer Belgeler

(2004) sağlıklı yenidoğanlarda küvet banyosu sırasında silme banyoya göre daha az sıcaklık kaybı olduğunu, küvet banyosu yaptırılan yenidoğanlarda ortalama sıcaklık

Kısaca serbest enerji bir sistemin iç enerjisi ile atom veya moleküllerinin rastgeleliği veya düzensizliğinin (entropi) bir fonksiyonudur.. • Faz dengesi deyimi sıklıkla

Temel Eğitim Bölümü Okul Öncesi Öğretmenliği Lisans Programı (Birinci Öğretim) 2018-2019 Eğitim-Öğretim Yılı Güz Dönemi. “Okul Deneyimi” A Şubesi

Alanyazındaki çalışmalar incelendiğinde; okul öncesi dönemdeki çocuklar için geliştirilmiş değerler eğitimi programının.. çocukların sosyal ve duygusal

Buna göre, 5510 sayılı Kanunun 81 inci maddesinin birinci fıkrasının (ı) bendi uyarınca beş puanlık indirim uygulamasında işverenin Kuruma olan yasal ödeme

Öğrenciler; değerleri ve değerleri arasındaki ilişkinin farkına varıp tanımlama, kişisel değer çatışmalarını ortaya koyup çözme, diğer insanlarla değerlerini paylaşma

[r]

Gizli anahtar şifreleme yöntemleri hem şifreleme hem de şifre çözme için tek bir anahtar kullanır. Şekil 5A'da gösterildiği gibi, gönderici, düz metni şifrelemek