0% found this document useful (0 votes)
3 views34 pages

8 dersMySQL

Uploaded by

rabiiayazici
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views34 pages

8 dersMySQL

Uploaded by

rabiiayazici
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

YAZ038 - Web Programlama

Mühendislik ve Doğa Bilimleri Fakültesi


Ya z ı l ı m M ü h e n d i s l i ğ i
D o ç . D r. A m i r S E Y Y E D A B B A S İ
2023-2024 Bahar
#Ders 08
1
Konular
• Veritabanı nedir?
• MySQL açılması ve Veritabanı yapılandırılması
• PHP’de VERİTABANINA
• VERİ EKLEME(insert)
• GÖSTERME(select)
• SİLME(delete)
• Güncelleme(update)

2
Veritabanı Nedir?

Veri tabanları birbirleriyle ilişkili bilgilerin depolandığı alanlardır. Bilgi


artışıyla birlikte bilgisayarda bilgi depolama ve bilgiye erişim konularında yeni
yöntemlere ihtiyaç duyulmuştur. Veri tabanları; büyük miktardaki bilgileri
depolamada geleneksel yöntem olan ‘‘dosya-işlem sistemine’’ alternatif olarak
geliştirilmiştir.

Birbiriyle ilişkisi olan verilerin tutulduğu, kullanım amacına uygun olarak


düzenlenmiş veriler topluluğunun, mantıksal ve fiziksel olarak tanımlarının
bulunduğu belirli bir veri modeline göre çalışan bilgi depolarıdır.
Veritabanı Yönetim Sistemi Nedir?

Yeni bir veritabanı oluşturmak, veritabanını düzenlemek kullanmak,


geliştirmek bakımını yapmak için çeşitli karmaşık işlemlerin gerçekleştirildiği bir
yazılım sistemidir. Belirli bir veri modeline göre çalışırlar. VTYS, birbirleri ile
ilişkili veri ve programlar topluluğundan oluşmaktadır.
Neden VTYS ?

• Gereksiz veri tekrarını önler.


• Veri bütünlüğünü (data integrity) sağlar. Veri bütünlüğü, verinin doğru ve
tutarlı olmasıdır. Veri bütünlüğü için bazı kısıtlamalar tanımlanabilir.
– Örneğin, çalışanların maaş bilgilerinin asgari ücretten az girilememesi
sağlanabilir.
• Verilerin güvenliğini sağlar.
• Veriler üzerinde merkezi denetim sağlar.
Kullanıcılar işletim sistemi komutları ya da genel amaçlı programlama dilleri
ile yazılmış uygulama programlarını kullanarak doğrudan veri tabanındaki
verilere erişemezler ve bu verileri değiştiremezler.
• Veri tabanının bilgisayar belleklerindeki fiziksel yapısı kullanıcılardan gizlenir.
VTYS Çeşitleri

• Oracle, MS SQL, IBM DB2


• MySQL
• Access
Normalizasyon Nedir?

Normalizasyon; veri tabanı tasarım aşamasında veri tekrarını, veri kaybını veya
veri yetersizliğini önlemek için gerçekleştirilen işlemlerdir. Normalizasyon tanım
olarak ise ; (Ayrıştırma), veritabanlarında çok fazla sütun ve satırdan oluşan bir
tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine
ayrıştırma işlemidir.

Normalizasyonun Amacı

1- Veri Bütünlüğünün Sağlanması: Gereksiz veri tekrarını önleyerek verilerdeki


bozulmaları önlemek
2- Uygulamadan Bağımsızlık: Uygulama değişse bile veritabanı tutarlı olarak
çalışmalı
3- Performansı Arttırmak: Veri tekrarı en aza iner ve arama hızlı olur.
Normalizasyon Kuralları

Normalizasyon işlemini gerçekleştirmemizde bize yardımcı olacak kurallar


vardır, bu kurallara normalizasyon kuralları denir. Bu kurallar 1NF (1.
Normalizasyon Formu), 2NF, 3NF, 4NF ve 5NF dir. Normalizasyon formlarından ilk
dördü en çok kullanılanlarıdır. Biz de bu dört kurala uygun şekilde veritabanı
tasarımımızı yapacağız.

Normalizasyonun her bir kuralı yani seviyeleri normal form olarak adlandırılır.
Bu seviyeler gereksiz veri tekrarlarını ne derecede engellediği ve tutarlılığı ne
kadar sağladığına bağlı olarak derecelendirilir. Seviye yükseldikçe veri tutarlılığı
artar, veri tekrarı düşer.
MySQL açılması
ve
Veritabanı yapılandırılması
Apache web server ve MySQL
Veritabanı başlatıldıktan sonra
Admin düğmesi ile MySQL arayüzüne
ulaşılır.
Yeni bir veritabanı oluşturmak için
Database düğmesi tıklanır.
Bu alanda Database name alanına
Veritabanımızın ismi, hemen yan kutuya da
Kullanacağımız dil ayarlarını girmeliyiz.
Create diyerek veritabanı oluştururlur.
Daha sonra veritabanı
Tabloları oluşturulur.
Tablomuzun ismi ve tablonun
kaç değerden oluşturulacağı
belirtilir. Alt taraftaki Go tıklanarak
tablo oluşturulmuş olur
Oluşturulan tablonun özellikleri girilerek
save denir.
Tablonun alan isimleri, ve bu alanlara girilecek bilginin tipini
belirtmemiz gerekir. Ayrıca bu alanlara girilecek bilgi miktarınıda
belirtmemizde fayda vardır. Bu tabloda benzersiz anahtar
autoincrement özellikli bir alanımız olmalıdır.
** Oluşturulan veritabanının güvenlik
özellikleri privileges bölümünden oluşturulur.
Kitap tablosu üzerine tıklanarak tabloya girilir. Insert seçeneği ile tabloya
veri girişi yapılabilir.
Tabloya eklene veriler go(git) seçeneği
ile kayıt edilir.
Çeşitli SQL komutları

SELECT * FROM `kitap` WHERE ksayfa > "300" Sayfa sayısı 300 den fazla olan kitaplar

SELECT * FROM `kitap` WHERE kyazar='İskender PALA’ İskender PALA yazarının kitaplarının bulunması

SELECT * FROM `kitap` WHERE ktur='Roman’ Roman türü kitapların bulunması

SELECT kadi,kyazar FROM `kitap` WHERE ktur='Roman'

SELECT * FROM `kitap` WHERE ksayfa>=100 and ksayfa<=200;


SELECT * FROM `kitap` where ksayfa between 200 and 300 and ktur='Roman’ Sayfa sayısı 200 ile 300 arasında olan
Roman türü kitaplar

SELECT * FROM `kitap` where kadi like 'K%’; İsmi K ile başlayan kitaplar

SELECT * FROM `kitap` limit 0,5; Tablodaki ilk 5 kayıt

SELECT * FROM `kitap` LIMIT 4,3; Tablodaki kayıtlardan 4. kayıttan başla 3 tane göster ([Link]ıt dahil değil)
Veritabanının yedeğinin alınması

Veritabanı tablolarının dışarı aktarılması Dışa aktar ile yapılmaktadır.

Herhangi bir veritabanı tablolarının içeri aktarılması İçe aktar ile


Yapılmaktadır. Burada unutulmaması gereken en önemli olay
Veritabanı oluşturulduktan sonra içeri aktarma işlemi yapılmalıdır.
PHP’de VERİTABANINA
- VERİ EKLEME
- GÖSTERME
- SİLME
- GÜNCELLEME
VERİ GÖSTERME :

MySQL veritabanına başarılı biçimde bağlamak için aşağıdaki


önemli bilgilerin doğruluğundan emin olmalıyız.

•Host adınız (Ana bilgisayar adı)


•MySQL kullanıcı adı.
•MySQL şifresi.

Sisteminizde (web sunucusu değil) XAMPP’ı kurulduktan sonra, ana bilgisayar adı
default olarak “localhost” olur.
Varsayılan olarak MySQL kullanıcı adı “root” ve şifre boştur (“”).

$baglan=mysqli_connect("localhost","root","","kutuphane");
"makine adı","[Link]ı","şifre","hangi vt"
$baglan = mysqli_connect($servername, $username, $password, $database);

Bu script’de kullanılan ana yöntem mysqli_connect() metodudur. Bu, bir MySQL


sunucusuna yeni bir bağlantı kurmak için dahili bir PHP fonksiyonudur.
Kodumuzun hemen en başında birkaç değişken deklarasyonu görüyoruz ve
değerler bu değişkenlere atanmış.
Genellikle düzgün bir bağlantı oluşturabilmek için dört değişkene ihtiyacımız
var: $servername, $database, $username, ve $password. Kodumuzda veritabanı
detaylarını eksiksiz olarak bu değişkenlere değer olarak belirledik.

Ayrıca;

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
mysqli_close($conn);
Burada bir die() fonksiyonu çalıştırıldı ve bunun anlamı scriptimizi sonlandırma
ve girdiğimiz mesajı bize göstermek oluyor. Yani varsayılan olarak Connection
Failed: ve hata mesajı bize sorunu belirlememizde yardımcı olacak.
Öte yandan eğer bağlantı başarılıysa, kod bize Connected
successfully sonucunu verecektir.
Kodun son bölümü ise mysqli_close‘dur. Bu kod veritabanına kurulan
bağlantıyı elle sonlandıracaktır. Eğer belirlenmemişse, bağlantı script
tamamlandığında kendi kendini kapatacaktır.
<?php
$baglan=mysqli_connect("localhost","root","","kutuphane");
if (!$baglan) {
die("Bağlantı sağlanamadı SEBEBİ : ".mysqli_connect_error());
}
echo "TEBRİKLER VERİTABANINA BAĞLANILDI <p>";
$sonuc=mysqli_query($baglan,"select * from kitap");
mysqli_set_charset($baglan, "utf8");
while($satir=mysqli_fetch_array($sonuc))
{
echo '<table border="0" width="1000">';
echo '<tr>';
echo '<td width="200">'.$satir['kadi'].'</td>';
echo '<td width="200">'.$satir['kyazar'].'</td>';
echo '<td width="100">'.$satir['ktur'].'</td>';
echo '<td width="200">'.$satir['kyayin'].'</td>';
echo '<td width="100">'.$satir['ksayfa'].'</td>';
echo '<td width="200">'.$satir['kraf'].'</td>';
echo '</tr>';
echo '</table>';
}
mysqli_close($baglan);
mysqli_connect_error() : Bağlantıda hata varsa sebebini bilgi olarak döndürür.

mysqli_query() : Veritabanı üzerindeki verilerin çekimi için kullanılacak sorular bu


fonksiyon ile yapılır. SORGU
mysqli_set_charset () : Veriler çekilirken kullanılacak dil kodlaması bu bölümde
tanımlanır.
mysqli_fetch_array () : Eğer veritabanından fazla veri çekilecekse bu komut
kullanılır. Çekilen veriler dizi mantığı ile alınır ve listelenir.
mysqli_close() : Bu komutumuz açılan veritabanını kapatır.
VERİ GİRİLMESİ :
<?php
$kadi=$_POST['kadi'] ;
$kyazar=$_POST['kyazar'] ;
$kturu=$_POST['kturu'] ;
$kyayin=$_POST['kyayin'] ;
$ksay=$_POST['ksay'] ;

$kraf=$kkat=$_POST['kkat']." " .$kkon=$_POST['kkon'] ;


$baglan=mysqli_connect("localhost","root","","kutuphane");
if (!$baglan) {
die("Bağlantı sağlanamadı SEBEBİ : ".mysqli_connect_error());
}
echo "TEBRİKLER VERİTABANINA BAĞLANILDI <p>";
mysqli_set_charset($baglan, "utf8");
$girisyap="INSERT INTO kitap( kadi, kyazar, ktur, kyayin, ksayfa, kraf) VALUES ('$kadi','$kyazar','$kturu','$kyayin','$ksay','$kraf')";
$sonuc=mysqli_query($baglan, $girisyap);
if ($sonuc==0){
echo "Eklenemedi, kontrol ediniz";
}
else{
echo "Başarıyla eklendi";
}
?>
$girisyap="INSERT INTO kitap(kadi, kyazar, ktur, kyayin, ksayfa, kraf)
VALUES ('$kadi','$kyazar','$kturu','$kyayin','$ksay','$kraf')";

INSERT INTO seçeneği ile tablo üzerindeki alanlara, giriş sayfasındaki değerlerin
girilmesi sağlanır.
<?php
VERİ SİLİNMESİ : $silme= $_POST['silme'];
$baglan=mysqli_connect("localhost","root","","kutuphane");
mysqli_set_charset($baglan, "utf8");
$sonuc=mysqli_query($baglan, "DELETE from kitap where kadi='$silme' ");
if($sonuc>0){
echo "<b>KİTAP SİLİNDİ";
}
else
echo "<b>OLUŞAN SORUNLARDAN DOLAYI KİTAP SİLİNEMEDİ";
?>
<?php
$baglan=mysqli_connect("localhost","root","","kutuphane");
$sonuc=mysqli_query($baglan,"select * from kitap");
mysqli_set_charset($baglan, "utf8");
while($satir=mysqli_fetch_array($sonuc))
{
echo '<table border="0" width="1000">';
echo '<tr>';
echo '<td width="200">'.$satir['kadi'].'</td>';
echo '<td width="200">'.$satir['kyazar'].'</td>';
echo '<td width="100">'.$satir['ktur'].'</td>';
echo '<td width="200">'.$satir['kyayin'].'</td>';
echo '<td width="100">'.$satir['ksayfa'].'</td>';
echo '<td width="200">'.$satir['kraf'].'</td>';
echo '</table>';
}
mysqli_close($baglan);
$sonuc=mysqli_query($baglan, "DELETE from kitap where kadi='$silme' ");

Silme işlemi DELETE ile yapılır. Burada en önemli işlem silmenin hangi unsura göre silineceğini
sorguya düzgün bir şekilde verilmesidir.
<?php

VERİ $guncel=$_POST['guncel'] ;
$kadi=$_POST['kadi'] ;

GÜNCELNEMSİ : $kyazar=$_POST['kyazar'] ;
$kturu=$_POST['kturu'] ;
$kyayin=$_POST['kyayin'] ;
$ksay=$_POST['ksay'] ;
$kraf=$kkat=$_POST['kkat']." " .$kkon=$_POST['kkon'] ;
$baglan=mysqli_connect("localhost","root","","kutuphane");
if (!$baglan) {
die("Bağlantı sağlanamadı SEBEBİ : ".mysqli_connect_error());
}
echo "<b>TEBRİKLER VERİTABANINA BAĞLANILDI</b> <p>";
mysqli_set_charset($baglan, "utf8");
$sql = "UPDATE kitap SET kadi='$kadi', kyazar='$kyazar', ktur='$kturu', kyayin='$kyayin', ksayfa='$ksay', kraf='$kraf' WHERE kid='$guncel'";
$sonuc= mysqli_query($baglan,$sql);
if($sonuc>0)
{
echo '<b> Kayıtlarınız Başarıyla güncellendi;';
echo "<br>";
}
else
echo "Bir problem oluştu, Kayıt güncellenemedi";
$sonuc=mysqli_query($baglan,"select * from kitap");
mysqli_set_charset($baglan, "utf8");
while($satir=mysqli_fetch_array($sonuc))
{
echo '<table border="0" width="1000">';
echo '<tr>';
echo '<td width="200">'.$satir['kadi'].'</td>';
echo '<td width="200">'.$satir['kyazar'].'</td>';
echo '<td width="100">'.$satir['ktur'].'</td>';
echo '<td width="200">'.$satir['kyayin'].'</td>';
echo '<td width="100">'.$satir['ksayfa'].'</td>';
echo '<td width="200">'.$satir['kraf'].'</td>';
echo '</table>';
}
"UPDATE kitap SET kadi='$kadi', kyazar='$kyazar', ktur='$kturu',
kyayin='$kyayin', ksayfa='$ksay', kraf='$kraf' WHERE kid='$guncel'";

Güncelleme işlemi UPDATE ile yapılır. Burada en önemli işlem güncellemenin hangi
unsura göre güncelleme yapacağını sorguya düzgün bir şekilde verilmesidir.
KAYNAKLAR

Yrd. Doç. Dr. Altan MESUT [Link]


Öğr. Gör. Dr. Sibel SOMYÜREK [Link]
İnternet üzerinden çeşitli web siteleri

You might also like