You are on page 1of 132

Veri Bilimi Yetkinlik Geliştirme

Programı

Veritabanı

Dr. Öğr. Üyesi Buket Doğan

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 1


Soyutsal Katmanlar (Levels of
Abstraction
• Fiziksel Katman (Physical level): Bir kayıdın nasıl saklanacağını
tanımlar(Örneğin,müşteri).
• Mantıksal Katman (Logical level): Bir verinin nasıl veritabanında
saklanacağını ve veriler arasındaki ilişkileri tanımlar.
tip (type) musteri = kayıt (record)
musteri_id : string;
musteri_adi : string;
musteri_sokak : string;
musteri_il : integer;
bitiş (end)
• Görüntü Katmanı (View level): Tasarımı kullanıcıdan saklar( Örneğin
veri tipi veya hangi bilgilerin görüntüleneceği)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 2


Nesneler ve Şemalar
• Programlama dillerindeki tip ve değişkenlere benzerler
• Şema (Schema) – Veritabanının mantıksal yapısı
– Örnek: Veritabanı,Müşteri ve hesap bilgileri ile bunlar arasındaki ilişkiyi barındıran
bir kümedir.
– Fiziksel Şema (Physical schema): Fiziksel düzeyde veritabanı tasarımı(Dosyanın
sabit dikteki yeri, büyüklüğü..)
– Mantıksal Şema (Logical schema): Mantıksal düzeyde veritabanı tasarımı (veri
alanları, ilişkiler)
• Nesneler (Instance) – Zamandaki herhangi bir noktadaki veritabanı içersindeki
içerik.
– Bir değişkenin değerine benzemektedir.
• Fiziksel Veri Bağımsızlığı (Physical Data Independence) – Mantıksal şemayı
değiştirmeden fiziksel şemayı değiştirme kabiliyeti
– Uygulamalar mantıksal şemaya bağlıdır.
– Genelde , değişik katmanlar ve bileşenler arasındaki arabirimler öyle
tanımlanmalıdırki bazı bölümlerin değiştirilmesi diğerlerini fazla etkilememeli.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 3


VERİTABANI ÖRNEĞİ
Uygulama Programı
1
ALT ŞEMA
A
Uygulama Programı
2

FİZİKSEL
FİZİKSEL MANTIKSAL Uygulama Programı
ŞEMA
ŞEMA ŞEMA 3
ALT ŞEMA
B

VERİTABANI ŞEMALARI Uygulama Programı


4
FİZİKSEL
VERİTABANI KULLANICILAR

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 4


VERİ MODELLERİ
• Asağıdakilerini tanımlayan araç topluluğu
– Veri (Data)
– Veri İlişkileri (Data relationships)
– Veri Kısıtlamaları (Data constraints)
• İlişkisel Model (Relational model)
• Varlık-ilişki veri modeli (Entity-Relationship
data model) (Coğunlukla veri tabanı dizaynı
için)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 5


İlişki Gösterimi
• İlişkinin o anki değerleri (relation instance) bir tablo tarafından
gösterilir.
• r deki bir t elemanı bir değerdir ve tablodaki bir satır (row) ile gösterilir.
• Değerlerin sırası önemli değildir. (Değerler keyfi sırada olabilir)

Öznitellikler (veya sütunlar)


attributes
Müşteri Adı Cadde Şehir (or columns)

Ahmet İstiklal Cad. İstanbul


Ayşe İstanbul Değerler
Kerim Cad.
Curry Rye (yada satırlar)
North
Lindsay Pittsfield tuples
Park
(or rows)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 6


Veritabanı
• Bir veritabanı birden fazla ilişkiye sahiptir.
• Bir şirketin bilgisi birden fazla parçaya bölünmüştür, her parça bilginin bazı bölgelerini
ilişkilendirir
Hesaplar : hesaplar hakkındaki veriyi tutar.
Mevduatlar : hangi müşterinin hangi hesabı tuttuğunu gösteren bilgiyi
saklar
Muşteriler : müşteri hakkındaki bilgileri tutar

• Bütün bilgilerin tek bir ilişkide saklanması örneğin


bank(Hesa Numarsı, Bakiye, MüşteriAdı, ..)
aşağıdaki sonuçlara yol açabilir
– Bilginin tekrarlanması (repetition of information)
• Örneğin iki müşteri tek hesaba sahip (ne tekrarlar?)
– Boş değerlerin ihtiyaçı
• Örneğin hesabı olmayan müşterinin gösterimi
• Normalizasyon teorisi (Normalization theory) ilişkisel veri tabanının tasarımından
bahsetmektedir
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 7
TEMEL KAVRAMLAR
• Alan(Field) : Veritabanı tabloları içerisinde saklanacak verinin içeriğine göre,
fiziksel tipi belirlenen (Sayı,String vb.) ve isimlendirilen bölümlere
denir.(Örnek : Bir field içerisinde bir iş yerindeki personele ait "isim" bilgisi
saklanacak ise, programın kontrolü açısından alan(field) ismininde içerik ile
ilgili seçilmesi tercih edilir yani "PersonelIsim" veya benzer bir alan(field) ismi
seçilmelidir.

• Tablo(Table) : İçeriklerine göre ayrıştırlımış alan(field) topluluklarına tablo


denir, tablolar veri tabanlarını oluşturan bilgi depolarıdır.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 8


BİRİNCİL VE YABANCI ANAHTAR
• Birincil Anahtar(Primary Key) : Üzerinde işlem yapılan tabloya ait kayıtları benzersiz
olarak tanımlayan alanlardır.
• Örneğin bir okulu ele alalım burda öğrencileri benzersiz biçimde tanımlayabilen en
önemli öge şüphesiz ki ögrenci numarasıdır.Bir okulda,isim,soyisim gibi kimilik bilgilerl
aynı olabilecek bir çok öğrenci mevcut olabilir fakat,hiç bir öğrencinin, o öğrenciyi
tanımlayan, öğrenci numarası aynı olamaz benzer bir mantık ile telefon numaraları da
düşünülebilir.

• Yabancı Anahtarlar(Foreign Keys) : Tablo içerisindeki verilerin birbirleri ile iletişim


kurabilmeleri amacı ile kullanılan benzersiz olması gerekmeyen alanlardır.
• Örneğin içerisinde "Ogrenci_No" birincil anahtarını barındıran "Ogrenciler" isimli
tablonun var olduğunu varsayalım ayrıca "Notlar" isimli bir tablonun içerisinde,
aynı "Ogrenci_No" alanını çesitli defalar yabancı anahtar olarak kullanmamız
gerekebilir (Çünkü, genellikle bir öğrencinin birden fazla dersi ve dolayısıyla "Notlar"
isimli tabloya işlenmesi gereken birden fazla sınav notu olacaktır.)
• Bağımsız tablolarda bu şekilde organize edilmiş veriye "ilişkisel(Relational)" bu veriyi
içeren veritabanına ise "ilişkisel veritabanı" ismi verilir.Veritabanlarındaki verinin
okunması ve yönetilmesi için kullanılan ortak sorgulama diline Yapısal Sorgulama Dili
(Structured Query Language (SQL) ) denir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 9


BİRİNCİL VE YABANCI ANAHTAR
BİRİNCİL ANAHTAR
BÖLÜM
B_no isim
1 muhasebe
2 insan kaynakları
3 IT

YABANCI ANAHTAR
ÇALIŞANLAR
Calısan_no B_no isim
1 2 Nora Edwards
2 3 Ajay Patel
3 2 Ben Smith
4 1 Brian Burnett
5 3 John O'Leary
6 3 Julia Lenin

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 10


Fonksiyonel Bağımlılık
• R’nin ilişkiyi(relation) ;
• A ve B’nin bir nitelik veya nitelik setini temsil
ettiğini düşünelim.
• Eğer R ilişkisinde her bir A değeri , tam olarak
bir B değerine işaret ediyorsa ;
• B, A ya fonksiyonel olarak bağımlıdır diyebiliriz
• A -> B (A fonksiyonel olarak B’yi tanımlar.)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 11


Fonksiyonel Bağımlılık
ID İSİM ŞEHİR
123 Ahmet Ankara
324 Derya Ankara
574 Derya İstanbul
• Kişiler tablosu ile ilgili neler söyleyebiliriz?
• “Eğer ID numarasını biliyorsam, ismini de biliyorum”
• ID numarası ismi belirmektedir.
• İSİM niteliği, ID’ye fonksiyonel bağımlıdır.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 12


Fonksiyonel Bağımlılık

A -> B A fonksiyonel olarak B’yi tanımlar.)

Yukarıdaki ogrenci tablosunu ele aldığımız zaman aşağıdaki


bağımlılıklardan söz edebiliriz.
ogr_no -> ogr_name
ogr_no - > ogr_name , bolum , sinif , kimlik_no
kimlik_no - > ogr_no , ogr_name , bolum , sinif

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 13


İlişkisel Veri Modeli Gösterimi
• ÜRÜNLER(Ürün ID, Ürün Adı, Alış Fiyatı, Satış
Fiyatı, Kategori ID, Firma ID)
• KATEGORİLER(Kategori ID, Kategori Adı, KDV
Oranı)
• MÜŞTERİLER(Müşteri ID, Adı, Soyadı, Adresi,
Telefonu)
• SİPARİŞLER(Sipariş ID, Müşteri ID, Tarih)
• SİPARİŞ_DETAY(Sipariş ID, Ürün ID, Adet)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 14


İlişkilerin Tablolar ile Gösterimi

Telefon

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 15


8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 16
Sütun için veri türü seçilir.
Tür seçilmeden veri girişi
Tablo1 adında "Kimlik" sütununa yapılırsa, Access girilen
tablo otomatik (alanına) veri girilemez. verinin biçimine göre
olarak Bu sütun tablodaki her otomatik olarak türü
oluşturulur satırı (kayıtları) seçebilir. Tür seçildikten
birbirinden ayırmak için sonra o sütun için bir
kullanılan ve otomatik sütun başlığı yazılabilir
olarak artan sayı (yazılmaz ise Alan1,
değerleri içerir. Bu sütun Alan2, Alan3, … olarak
birincil anahtar olarak isimlendirilecektir).
tanımlanmıştır.

Veri girişi yapıldıkça yeni bir satır otomatik olarak tabloya ilave
edilecektir. Eğer en sağdaki sütuna veri girilir yada o sütunun türü
belirlenirse sağ tarafına otomatik olarak sütun ilave edilecektir.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 17
Access'te Veri Türleri
Sayı Tamsayı veya Ondalıklı Sayı
Para Birimi Türk Lirası yada döviz verisi
Kısa Metin En fazla 255 karakterlik metin
Uzun Metin Sınırsız uzunlukta metin
Zengin Metin Yazıtipi, rengi, vs. ayarlanabilen metin
Tarih ve Saat Sadece tarih, sadece saat, veya ikisi beraber
Evet/Hayır Sadece iki farklı değer alabilen veri = Doğru/Yanlış
Ek Kayıta bir yada daha çok dosya eklemek için kullanılır
Köprü Web adresi saklamak için kullanılır
OLE Nesnesi Ses ve resim gibi verileri barındırır

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 18


Access Veri Türleri
• Metin : Alfabetik ve sayısal türde her türlü bilgi girilebilen alan türüdür. En fazla 255 karakter bilgi alır.
• Not : Bir tablo alanı için metin türünün uzunluğu yetmiyorsa Not türü seçilebilir. Bu tür alanlara 65535
karaktere
• kadar bilgi girilebilir.
• Sayı : Tabloda üzerinde işlem yapılabilecek sayısal değerlerin girilebileceği alan türüdür. Sayısal alanların alan
• boyutunu belirlerken aşağıdaki boyut türleri seçilebilir :
• - Bayt : 0 ile 255 arasında değer girilebilir.
• - Tamsayı : -32768 ile 32767 arasında değer girilebilir.
• - Uzun tamsayı : -2.147.483.648 ile 2.147.483.647 arasında değer girilebilir.
• - Tek 32 bit, Çift ise 64 bit büyüklüğündedir.
• -Ondalık alan boyutu seçilirse sayıda yer alacak toplam basamak sayısı Duyarlık değeri ile belirlenir
(varsayılan değer = 18). Ölçek değeri ile bu basamaklardan kaç tanesinin noktanın sağında yer alacağı
belirlenir (varsayılan değer = 0).
• Tarih/Saat : Tarih ve saat türündeki bilgiler için tanımlanır.
• Para birimi : Parasal değerler için tanımlanır. Bu tür alanlara 15 basamak tamsayı, ondalıktan sonra da 4
basamak
• bilgi girilebilir.
• Otomatik sayı : Bu tür alandaki sayı değeri girilen her kayıtta otomatik olarak artar.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 19


Access Veri Türleri
• Evet/Hayır : Mantıksal alan türüdür. İki ihtimalli bilgiler
için kullanılır. Örneğin; Askerliğini yaptı/yapmadı,
• disiplin cezası var/yok gibi.
• Köprü : Internet üzerinden bağlantı kurulacak web
adresleri girilecekse bunun için köprü türü alan
tanımlanır. Bu alandaki bilgiye tıklandığında eğer
internet bağlantısı varsa belirtilen web adresine
gidilebilir.
• OLE nesnesi : Veritabanına resim, ses, film gibi
nesnelerin eklenmesi için kullanılır.
• Alan biçimi

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 20


Örnek: Öğrenciler Tablosu
• Aşağıdaki gibi bir öğrenci bilgileri tablosu yaratın:

• Bu tabloyu "Öğrenciler" ismi ile kaydedin.


• Bu alana sol tıklama ile bir, sol tıklama ve sürükleme ile birden çok
kayıt seçilebilir. Sağ tıklama ile Kes-Kopyala-Yapıştır ve Kayıt Silme
gibi işlemler yapılabilir.
• Seçim yapıldıktan sonra DEL tuşu ile veya GİRİŞ sekmesi Kayıtlar
grubundan Sil seçilerek te kayıtlar silinebilir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 21


Uygulama

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 22


• Arkadaşlar
• ArkadaşID Telefonlar

• Adı Soyadı ArkadaşID TelefonTür


• DoğumTarihi TürID TürId
• E-posta Telefon TürAdı
• Adres

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 23


Liste Kutusu

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 24


GİRİŞ sekmesi Görünümler
• Veri Sayfası Görünümü: Veri girişi yaptığımız önceki
slayttaki görünüm
• Tasarım Görünümü: Tablonun aşağıdaki özelliklerini
değiştirebileceğimiz görünüm
• Alan (sütun) Adı
• Alanların Veri Türü
• Alanlar ile ilgili Açıklamalar
• Veri Türüne göre farklılık gösteren Alan Boyutu, Biçim,
Giriş Maskesi, Varsayılan Değer, Resim Yazısı gibi
özellikler.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 25


Tasarım Görünümü

Eğer tablomuzda ÖğrenciNo gibi


her kayıt için farklı değer alacak
bir alan varsa, o alanı birincil
anahtar yapabiliriz. ÖğrenciNo
alanı Otomatik Sayı türünde
olmadığından her kayıt için bu
alana veri girilmek zorundadır.

Adı ve Soyadı alanlarının 255


karakter olan Alan Boyutu özelliğini
25 karakter yapabilirsiniz.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 26
Tasarım Görünümü – Alan Özellikleri
Biçim
• Veri türüne bağlı olarak alanda görüntülenecek biçim

• Sayı yada Para Birimi için:

• Tarih/Saat için:

• Evet/Hayır için:
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 27
Giriş Maskesi
• Giriş Maskesi
• VERİLERİN BELİRLİ KURALLARA UYMASINI SAĞLAYAN KISITLAMALARDIR.
• ÖRNEĞİN BİR ALANA SADECE SAYISAL DEĞERLERİN GİRİLMESİ
ZORLANABİLİR.
• Bir alana bilgi girişi yaparken kullanıcının bilgi girmesine yardımcı olmak
ve sınırlama getirerek yanlış bilgi girilmesini önlemek için oluşturulan bir
yapıdır. Giriş maskesi tanımlamak için şu karakterler kullanılabilir:
• ?:A-Z ARASI ALFABETİK KARAKTER.
• L: A-Z ARASI ALFABETİK KARAKTER.*
• #:0-9 ARASI RAKAM VEYA BOŞLUK.
• 0:0-9 ARASI RAKAM*
• 9: 0-9 ARASI RAKAM VEYA BOŞLUK.
• *giriş
zorunlu

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 28


Giriş Maskesi
• Alana girilen değerlerin belirli bir maskeye (şablona)
göre girilmesini sağlar
• Örneğin Telefon Numarası maskesi kullanılırsa alan kodu için
parantezler ve numara arasındaki boşluklar otomatik olarak
verilir, kullanıcı sadece sayıları girer (deneyin)
• Sadece metin ve tarih/saat veri türleri için verilir

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 29


Giriş Maskesi
• >?<???????????????????????

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 30


GİRİŞ MASKESİ(input mask)

Maske Örnek1 Örnek2 Örnek3

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 31


Geçerlilik Kuralı ve Geçerlilik
Metni
• Geçerlilik Kuralı: Alana veri girişi yapılırken, belirli
bir kısıtlama dahilinde yapılmasını sağlamak için
kullanılır.
• Örneğin sınav notları ile ilgili bir alana sadece 0 ile 100
arasında değerler kabul edilmesi için Geçerlilik Kuralı
olarak >=0 AND <=100 verilmelidir.
• Geçerlilik Metni: Geçerlilik kuralı ile belirlenen kural
dışında bir veri girildiğinde görüntülenecek mesajı
saklar.
• Örneğin: 0 ile 100 arasında bir değer giriniz

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 32


Örnek Geçerlilik Kuralları
• Sadece a..z arası harf: Is Null OR Not Like "*[!a-z]*“
• Sadece 0..9 arası rakam: Is Null OR Not Like "*[!0-
9]*“
• 8 karakter: Is Null OR Like "????????“
• Is Null OR "M" Or "F"
• Sadece pozitif sayı Is Null OR >= 0
• 1000 ile 9999 sayıları arasında değer:Is Null OR
Between 1000 And 9999

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 33


Geçerlik kuralı (Validation Rule)
• “E" Or “K"
• >= 0
• 1000 ile 9999 sayıları arasında değer: Between 1000 And 9999

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 34


Varsayılan Değer & Resim Yazısı
• Varsayılan Değer: Yeni öğeler için alana otomatik
olarak girilen değerdir.
• Örneğin Şehir değeri için varsayılan değer İSTANBUL
olabilir

• Resim Yazısı: Alanın Veri Sayfası Görünümündeki


etiketidir. Bu alan boş bırakılırsa, alan adı etiket
olarak kullanılır.
• Örneğin ID alan adının Resim Yazısı özelliğine Öğrenci
Numarası yazarsanız veri sayfası görünümünde bu etiket
görüntülenir.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 35
Gerekli & Sıralı
• Gerekli özelliği Evet veya Hayır olabilir.
• Evet ise seçili ise o alan her satırda veri içermelidir (boş
geçilemez),
• Hayır ise boş geçilebilir.
• Birincil Anahtar olan bir alan boş geçilemez (Gerekli: Evet)
• Sıralı özelliği o alan üzerinde arama ve sıralama
yapılırken işlemi hızlandırmak için Dizin (Index)
oluşturma amacıyla kullanılır (Dizin oluşturmak tablo
üzerinde güncelleştirme ve eklemeleri yavaşlatabilir).
• Evet (Yineleme Var) seçilirse o alanda aynı veri başka bir kayıt
için tekrar edebilir, Evet (Yineleme Yok) seçilirse tekrar
edemez.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 36


SQL (Structured Query Language)
• SQL çok yüksek seviyeli bir dildir.
• İngilizce bilen herkes bu dili kolayca öğrenebilir.
Programlama dillerine göre öğrenilmesi çok daha
kolaydır.
• Çünkü programlama dillerindeki gibi işlemin “nasıl
yapılacağı” değil, işlemde “ne yapılacağı” yazılır.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 37


SQL
• SQL Yapısal sorgulama dili (SQL - Structured Query
Language) ilişkisel veri tabanı dilidir. SQL veri tabanında
yeni tablo oluşturma, veri ekleme, silme, düzeltme,
güncelleme, sorgulama ve koruma ve daha çok sayıda
işlemin bir anda yapılmasını sağlar.
• DDL (Data Definition Language): Veri tanımlama
deyimleri. (veritabanı üzerinde nesne yaratmak için
kullanılırlar, CREATE ALTER,DROP)
)
• DML (Data Manuplation Language) : Veri düzenleme dili.
(Veritabanı içindeki verileri elde etmek ve değiştirmekle
ilgili SQL deyimleridir,SELECT,INSERT, UPDATE) )
• DCL (Data Control Language): Veri kontrol dili.
(Veritabanındaki kullanıcı haklarını düzenlemek için
kullanılan deyimlerdir, GRANT, DENY, REVOKE )
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 38
SQL

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 39


Access Veri Türleri

40
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı
Access Veri Türleri

41
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı
Access ve SQL
• Access de Oluştur/Sorgu Tasarımı/SQL Göster
seçeneği ile SQL deyimleri yazılabilir.
• Çalıştır seçeneği ile Sorgu çalıştırılabilir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 42


• Tablo oluşturmak için:
CREATE TABLE TabloADI
(
Alan_Adı Veri_türü(Boyutu), [NULL | NOT NULL]
[isteğe bağlı kısıtlar]
);

43
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı
• CREATE TABLE Ürünler
•(
• ID INTEGER,
• Ürün_Adı char(30),
• Fiyat MONEY,
• Tanım CHAR (40)
• );

44
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı
• CREATE TABLE Ürünler3
•(
• ID COUNTER(10) PRIMARY KEY,
• Ürün_Adı char(30),
• Fiyat MONEY,
• Tanım CHAR (40)
• );

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 45


• CREATE TABLE Urunler
•(
• UrunID COUNTER (4),
• UrunAdı char(50),
• Fiyatı MONEY);

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 46


Kısıt Kullanımı
• CREATE TABLE Oyuncaklar
(
OyuncakID INTEGER CONSTRAINT OyuncakPK PRIMARY
KEY,
OyuncakAdi CHAR (30) NOT NULL,
Fiyat MONEY NOT NULL,
Tanim CHAR (40) NULL
);

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 47


• CREATE TABLE Ureticiler
• (
• UreticiID INTEGER CONSTRAINT UreticiID PRIMARY KEY,
• OID INTEGER NOT NULL,
• SirketAdi CHAR (50) NOT NULL,
• Adres CHAR (50) NOT NULL,
• Telefon CHAR (8) NOT NULL UNIQUE,
• CONSTRAINT OyuncakYA FOREIGN KEY (OID ) REFERENCES
Oyuncaklar (OyuncakID ))

• );

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 48


• UNIQUE : Girilen değerlerin her kayıt için farklı
olmasını sağlar. Birincil anahtar gibidir fakat bir
tabloda, birden fazla alana bu özellik verilebilir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 49


• CREATE TABLE Ogrenciler2
• (
• ÖğrenciNo INTEGER,
• Adı char(30),
• Soyadı char(30),
• Cinsiyet char(10),
• [Doğum Tarihi] DateTime,
• [Doğum Yeri] char(30),
• Adres CHAR (40)
• );

50
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı
• ALTER TABLE Ogrenciler2 ADD PRIMARY KEY
(ÖğrenciNo)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 51


• CREATE TABLE Notlar3(
• ÖğrenciNo INTEGER,
• DersKodu CHAR(6),
• DersYılı CHAR(6),
• Ortalama INTEGER,
• PRIMARY KEY(ÖğrenciNo, DersKodu,DersYılı)
• );

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 52


Tablo Tasarımında Güncelleme
• ALTER TABLE Tablename:
• ALTER TABLE komut ile var olan bir tabloya alan
ekleyebilir, alan silebilir, var olan alanların türünü ve
adlarını düzenleyebilir.
• ADD COLUMN ColumnName ColumnType (Size)
ColumnConstraint |
• DROP COLUMN ColumnName |
• ADD CONSTRAINT ColumnConstraint |
• DROP CONSTRAINT ColumnConstraint;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 53


• Tabloya Alan Ekleme:
Var olan bir tabloya alan eklemek için
kullanacağımız ALTER TABLE komutu aşağıdaki
gibidir.
ALTER TABLE tablo_adi ADD alan_adi alan_turu;
ALTER TABLE Uyeler ADD Yer CHAR(50);
• ALTER TABLE Oyuncakar ADD Renk char(15)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 54


• ALTER TABLE Toys
• ADD COLUMN Age Char(15), Country Char(25)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 55


• ALTER TABLE Ürünler
• ADD COLUMN Kdv_Oranı Integer, Üretim_Yeri
Char(25)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 56


• Tablodaki Alanları Düzenleme
Tablodaki varolan alanları düzenlemek için
kullanacağımız ALTER TABLE komutu aşağıdaki gibidir.
ALTER TABLE tablo_adi MODIFY alan_adi alan_turu;
Örneğin, Uyeler tablosunda, uzunluğu 50 karakter olan
Yer alanını 100 karaktere çıkaralım.
ALTER TABLE Uyeler MODIFY Yer VARCHAR(100);

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 57


Alan Silme
• Alan Silme

Tablodaki varolan bir alanı silmek için


kullanacağımız ALTER TABLE komutu aşağıdaki
gibidir.
ALTER TABLE tablo_adi DROP COLUMN alan_adi;
• ALTER TABLE Toys DROP COLUMN Renk
• ALTER TABLE Ürünler DROP COLUMN Tanım

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 58


Kısıt Eklemek
Kısıt Eklemek
• ALTER TABLE Urunler
• ADD CONSTRAINT Kısıt2 UNIQUE (Üretim_Yeri);
• ALTER TABLE Urunler
• ADD CONSTRAINT Kısıt1 UNIQUE (UrunAdı);

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 59


Kısıt Eklemek ve Silmek
• ALTER TABLE Urunler
• ADD CONSTRAINT anahtar PRIMARY KEY (UrunID);

• Kısıt Silmek
• ALTER TABLE Urunler DROP CONSTRAINT anahtar

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 60


Uygulama ÖDEVİ

1. Normalizasyonda Çok değerli bağımlılık sorununu açıklayan ve


çözümünü içeren bir örnek veriniz.
2. ACCESS dekullanılabilecek veri türlerini açıklayınız.
3. CREATE Table deyimi ile Kitap bilgilerini ve Yazar bilgilerini içeren bir
veritabanı oluşturunuz
• Kitaplar ile ilgili: Kitabın ISDN numarası, Adı, yayınevi, sayfa sayısı, Yazarı
bilgileri tutulacaktır. Tablolar arası ilişki de SQL deyimleri ile
sağlanacaktır.
• Yazarlar ile ilgili, Yazarın ID bilgisi, Adı Soyadı, DoğumTarihi, Doğum Yeri,
EkBilgiler alanları olacaktır.
• Bu tablolar, alanlar ve tablolalar arası ilişkiler SQL DDL deyimleri le
oluşturulacaktır.
• CREATE TABLE; CONSTRAINT ,FOREIGN KEY, NOT NULL, PRIMARY KEY
deyimleri kullanılarak bu tabloları oluşturunuz.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 61


Veri Sayfası Görünümünde
ALANLAR Sekmesi

• Tasarım Görünümüne geçmeden, seçili alanın bazı


özellikleri ve veri türü ile "sayılar için biçim", "metinler
için ise alan boyutu" değerleri bu sekme altından
değiştirilebilir.
• Ekle ve Sil grubu ile istenen türde yeni bir alan
eklenebilir veya seçili alan silinebilir.
• Alan Doğrulaması grubu ise (Gerekli, Benzersiz =
Yineleme Yok, Dizini Oluşturulmuş = Sıralı) seçeneklerini
içerir.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 62
Filtre Uygulama ve Sıralama
• Veri sayfası görünümünde
bir alan seçili iken Filtre
simgesi tıklandığında, veya
bir alanın başlığındaki küçük
üçgene tıklandığında
yandaki gibi bir pencere
belirir.
• Bu pencerede o alanda yer
alan tüm farklı veriler seçili
olarak gelir. Bu verilerden
görüntülenmesi istenmeyen
veriler varsa seçimleri
kaldırılabilir.
• Artan ve azalan sıralama
seçenekleri bu pencerede
de yer almaktadır.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 63
Seçim (Hızlı Filtre)

• Bir hücre seçili iken "Seçim" simgesine


tıklandığında o hücredeki veriye eşit olan
yada olmayana göre filtre
uygulanabileceği gibi, o veriyi içeren yada
Filtreyi Değiştir simgesi içermeyen filtresi de uygulanabilir.
tıklandığında en son seçilmiş • Yandaki örnekte «Ahmet» içeriyor
olan filtre uygulanır yada seçilirse, sadece içinde Ahmet olan
filtreleme kaldırılır. kayıtlar listelenecektir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 64


Kayıtlar Grubu
• Yeni tıklanırsa kayıt eklemek için son satıra eklenir.
• Kaydet tıklanırsa yapılan değişiklik yada yeni eklenen
kayıt kaydedilir (başka bir satıra geçildiğinde Access
zaten otomatik olarak kaydeder).
• Sil tıklanırsa, seçili kayıt yada kayıtlar silinir (silmeden
önce emin misiniz? sorusu sorulur). Silmek için
alternatif olarak DEL tuşu kullanılabilir yada sağ tıklama
ile çıkan menüden Kaydı Sil seçilebilir.
• Yazım Denetimi tıklanırsa, seçili olan dil (Türkçe) için
yazım denetimi yapılır.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 65


Topla
seçilmiş

Toplamlar simgesi tıklandığında en altta yeni bir satır belirir. Bu


satırdaki hücrelerde ilgili sütunun veri türüne göre farklı sayıda
seçenek gelir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 66


GİRİŞ Sekmesindeki Diğer Gruplar

• Pano, Bul ve Metin Biçimlendirmesi Satır


gruplarındaki simgeler ve kullanım Rengini
amaçları Word, Excel ve Powerpoint gibi Değiştir
diğer Office uygulamaları ile aynıdır.
• Metin Biçimlendirmesi grubunda en sağda
yer alan iki simgeden Klavuz Çizgileri ile
yatay, dikey veya her iki yönde çizgiler
çizilmesi / kaldırılması sağlanırken, Satır
Rengini Değiştir simgesi ile çift numaralı
satırların rengi ayarlanabilir.

NOT: Tablolar ile çalışırken yazıtipi ayarları değiştirilirse seçili alan için değil tablonun
tamamı için geçerli olur. Veri Bilimi Yetkinlik Geliştirme Programı
8.11.2020 67
OLUŞTUR Sekmesi
• OLUŞTUR Sekmesi ile Tablo, Sorgu, Form ve Rapor
oluşturulabilir.
• Hazır Şablonlara ve Makrolara da bu sekmeden
ulaşılmaktadır.
• Yeni bir tablo oluşturmaya;
• Tablo simgesi ile Veri Sayfası Görünümünde,
• Tablo Tasarımı simgesi ile Tasarım Görünümünde
başlanabilir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 68


Örnek: Dersler Tablosu

Kısa M. Kısa Metin Sayı Sayı Kısa Metin


6 100 Bayt Bayt 255

Veri Türü Genellikle Birincil Anahtar alanlar sayı türünde belirlenir. Fakat bu tabloda
Alan Boyutu harfleri de içermesi gerektiği için Kısa Metin (6 karakter) türündedir.

Ders içeriklerinin 255 karakterden uzun girilmesi istenirse Uzun Metin veri türü
seçilmelidir. 0 ile 255 arasında 256 farklı değer alabilen Bayt, Teorik ve Uygulama
saatleri haftada en fazla 5 veya 6 saat olacağından bu alanlar için yeterli bir veri
türüdür. Kısa Metin türündeki alanlar için alan boyutu ALANLAR sekmesinden
ayarlanabilir, ama Sayı türündeki alanlar için alan boyutu sadece tasarım
görünümünden
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı
ayarlanabilmektedir. 69
Örnek: Notlar Tablosu
Not değerleri için Bayt uygundur.

• Eğer tasarım görünümünde ÖğrenciNo ve DersKodu alanlarının ikisi birden


seçilerek Birincil Anahtar yapılırsa, bir öğrenci ile bir ders kodu iki defa eşlenemez
(tek değil iki alanın birleşimi üzerinde benzersizlik sağlanır).
• Dersler tablosunda olmayan bir ders kodunu veya Öğrenciler tablosunda olmayan
bir öğrenci numarasını Notlar tablosuna girdiğinizde hata vermediğini
gözlemleyebilirsiniz. Bu durum bilgi tutarsızlığına neden olmaktadır.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 70
Bilgi tutarlılığı
• VERİTABANI ARAÇLARI
İlişkiler simgesini tıklayın.
• Açılan pencerede tüm
tabloları seçerek Ekle tıklayın
(yada tabloların üzerine çift
tıklayın). Hepsi eklendikten
sonra pencereyi
kapatabilirsiniz.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 71


İlişki Kurma
• Dersler tablosunun Ders Kodu
alanına fare ile tıklayarak Notlar
tablosunun DersKodu alanına
sürükleyip bırakın.

• Bilgi Tutarlılığına Zorla :Birincil tablonun birincil anahtarında bulunmayan bir değeri ilişkili
tablonun yabancı anahtar
• alanına bir değer olarak giremezsiniz
• Notlar tablosuna Dersler tablosunda olmayan bir Ders Kodu değeri girilemeyecektir.
İlişkili Alanları Art Arda Güncelleştir : Birincil tablonun birincil anahtarında değişiklik yapıldığında bu
değer ilişkili tabloda da değişir.
Dersler tablosunda bir Ders Kodu değiştirildiğinde, Notlar tablosunun DersKodu alanında da
güncelleme yapılır.
İlişkili Kayıtları Art Arda Sil : : Birincil tabloda silinen kayıtlara ait değerler ilişkili tablodan silinir.
. Dersler tablosundan bir ders silindiğinde, Notlar tablosunda o ders kodunu içeren tüm kayıtlar silinir
(geri alınamaz, riskli bir seçimdir).
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 72
• Benzer işlemi Öğrenciler tablosundaki ÖğrenciNo ile
Notlar tablosundaki ÖğrenciNo ile de yapın.
• Bu ilişkilerin türü Bir-Çok (1-) dur. 1 olan tarafta
alanın verileri tekrar edemezken (birincil anahtar),
sonsuz olan tarafta ise tekrar edebilir.
• İlişki kuracağınız alanlar aynı veri türüne ve alan
boyutuna sahip olmalıdır, ama isimleri farklı olabilir

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 73


Bilgi Tutarlılığına Zorla :
• Notlar tablosuna, Öğrenciler tablosunda olmayan bir Öğrenci numarası
girmeye çalıştığınızda hata alırsınız:
• Benzer durum, Dersler tablosunda olmayan bir ders kodu girilmeye
çalışıldığında da yaşanacaktır.
• Eğer ilişki kurulurken İlişkili Kayıtları Art Arda Güncelleştir (yada Sil)
seçmediyseniz,

• Notlar tablosunda notları bulunan bir öğrencinin numarasını Öğrenciler


tablosunda değiştirmek istediğinizde (yada Öğrenciler tablosundan o
kaydı silmek istediğinizde) 'Notlar' tablosunda ilişkili kayıtlar olduğundan
kayıt silinemiyor veya değiştirilemiyor uyarısı görüntülenir
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 74
Eğer bir tablo başka bir tablo ile Bir-Çok türünde ilişkide ise Bir
olan tarafa ait tabloda her kaydın solunda bir + işareti görünür.
Bu işarete tıklandığında ilgili kayıtla ilişkili olan Çok tarafın
tablosundaki tüm kayıtlar görüntülenir:

GİRİŞ sekmesi Kayıtlar grubu Diğer simgesi altındaki Alt


Veri Sayfası seçeneği tıklanınca gelen yandaki menü +
ile açılan bu kayıtlar (alt veri sayfaları) ile ilgilidir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 75


Northwind Veritabanı
• Örneklerimizi Northwind veritabanı
deneyebilirsiniz.
• Dosya/Yeni seçeneğini kullanarak, aşağıdaki gibi
açabilirsiniz.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 76


SELECT
• SELECT deyimi veritabanındaki bir veya birden fazla
tablodan veri almak için kullanılır.
• SELECT [alanlar] FROM [tablo adı]
• Bu formata göre alanlar kısmına veritabanındaki
hangi alanları elde etmek isteniyorsa onların
isimlerini virgülle ayırarak yazılır.
• FROM'dan sonra ise tablonun adı yazılır
• SELECT'ten sonra yazdığımız * ifadesi tabloda
bulunan bütün alanların seçilmesini sağlar.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 77


SELECT…
• SELECT [DISTINCT][ALL] FROM Tablo_Adi
• [WHERE Kosul]
• [GROUP BY Kosul]
• [HAVING Kosul]
• [UNION Kosul]
• [ ORDER BY Alanlar [ASC] [DESC]]

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 78


SELECT
SELECT * FROM Müşteriler;

SELECT Ad, Soyadı FROM Müşteriler;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 79


SELECT
• SELECT [Sağlayıcı No'ları], [Ürün Adı], [Liste Fiyatı]
FROM Ürünler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 80


SELECT…ORDER BY
• Tablodan listelenecek bilgilerin, belirli bir sütun adına
göre (ad’a göre v.b.) sıralanmış olarak görüntülenmesi
için, SELECT komutuna ORDER BY sözcüğü ilave edilir.
• ASC: Artan sıralama (Varsayılan değer)
• DESC: Azalan sıralama

• ASC sözcüğü ascending (artan) anlamındadır.


• Veriler azalan sırada (büyükten küçüğe ya da alfabetik
olarak Z’den A’ya doğru) sıralamak için ASC yerine DESC
(descending) sözcüğü kullanılmalıdır

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 81


SELECT…ORDER BY
• SELECT * FROM Ürünler ORDER BY ADI;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 82


• SELECT Ad, Soyadı,Şirket,[İş Unvanı] FROM
Müşteriler ORDER BY 4

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 83


SELECT…AS
• AS: Sorguda yer alan alanların takma isim vermek
için kullanılır.

• SELECT Ad AS [Müşterinin Adı], Soyadı AS


[Müşterinin Soyadı],Şirket,[İş Unvanı] FROM
Müşteriler ORDER BY 1

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 84


SELECT..AS
• SELECT [Sağlayıcı No'ları], [Ürün Adı], [Liste Fiyatı],
[Standart Maliyet],
• ([Liste Fiyatı]-[Standart Maliyet]) as KAR FROM
Ürünler ORDER BY [Liste Fiyatı]

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 85


SELECT…AS
• SELECT [Sağlayıcı No'ları], [Ürün Adı], [Liste Fiyatı],
[Standart Maliyet], ROUND(100*([Liste Fiyatı]-
[Standart Maliyet])/[Standart Maliyet])AS
KAR_ORANI FROM Ürünler ORDER BY 5

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 86


SELECT…AS
• SELECT Adres +" "+ Şehir +" " + [Eyalet/İl] AS
Müşteri_Adres FROM Müşteriler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 87


TOP ve TOP PERCENT

• TOP
• Sorgu sonucunda ilk kaç kaydın görüntüleneceğini belirtir.
SIRALAMA KRİTERİNİZ SONUCU BELİRLER

• SELECT TOP 10 * FROM Ürünler ORDER BY [Liste Fiyatı]


• TOP PERCENT
• Satırların belli bir yüzdesini veren Top n PERCENT yan tümcesi de
kullanılabilir.
• SELECT TOP 50 PERCENT * FROM Ürünler ORDER BY [Liste
Fiyatı]
• ifadesi, Urunler tablosundaki bütün satırların ilk yüzde ellisini
görüntüler.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 88


SELECT….WHERE
• WHERE yantümcesi görüntülemek istediğimiz
verileri belirli bir kritere göre seçebilmemizi sağlar.
• Where yantümcesinin kullanımı zorunlu değildir.
Fakat bir koşula bağlı veri seçmek istediğimizde
FROM yantümcesinden sonra eklenebilir.
• SELECT <sütun adı> FROM <tablo adı> WHERE
<koşul(lar)>

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 89


SELECT….WHERE
• SELECT komutu ile bir tablonun satırları içinde sadece verilen bir koşulu
sağlayanlar da listelenebilir. Örneğin, Liste Fiyatı aşı 40 ‘dan fazla olan
Ürünler listelenmek istenirse, SELECT komutu aşağıdaki gibi yazılmalıdır:
• SELECT *FROM Ürünler WHERE [Liste Fiyatı]>40

• Burada WHERE sözcüğünü izleyen kısımda koşul belirtilmektedir.


• Koşul belirtilirken iki veri birbiri ile karşılaştırılmaktadır.

• Karşılaştırma ifadesinde karşılaştırılan verilerin türü aynı olmalıdır. Yani,


bir karakter türü veri ile ancak karakter türünde başka bir veri, bir
nümerik veri ile ancak nümerik olan başka bir veri karşılaştırılabilir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 90


OPERATÖRLER
• Mantıksal Operatörler: İki ya da daha fazla ifade arasında mantıksal
sorgu yapmak için kullanılır.
• () işlemleri gruplandırma işleminde ve öncelik belirlemek için kullanılır
• AND (VE) her iki ifadenin doğru olması durumunda yapılacak işlem.
• OR (VEYA) ifadelerden biri doğrunun doğru olması yeterlidir anlamına
gelir.
• NOT (DEĞİL) ifadenin yanlış olması durumunda yapılması beklenen
işlem gerçekleşir.
• Karşılaştırma Operatörleri:
• >= Büyük veya eşit
• <= Küçük veya eşit
• = Eşit
• <> Eşit degil
• != Eşit değil (ISO standart)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 91


WHERE
• SELECT [Sağlayıcı No'ları], [Ürün Adı], [Liste Fiyatı],
[Standart Maliyet] FROM Ürünler WHERE [Liste
Fiyatı]<>40 ORDER BY 3

• SELECT [Sağlayıcı No'ları], [Ürün Adı], [Liste Fiyatı],


[Standart Maliyet] FROM Ürünler WHERE [Liste
Fiyatı]<40 ORDER BY 3

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 92


AND OR NOT
• SELECT sütun1, sütun2…. FROM TabloAdı
WHERE Şart1 AND Şart2 AND Şart3 ...;
• AND operatörü verilen koşulların tümü doğru ise
kayıt görüntüler


SELECT sütun1, sütun2…. FROM TabloAdı
WHERE Şart1 OR Şart2 OR Şart3 ...;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 93


AND OR NOT
• AND ve OR Mantıksal operatörlerini birden fazla
koşulu birleştirmek için kullanırız.
• AND operatörü kullanarak, birleştirilen koşulların
tümüne uyan satırlar listelenir.
• OR operatörü kullanılarak, birleştirilen koşullardan
en az birine uyan satırlar listelenir.
• NOT operatörü kendisinden sonra gelen koşulu
sağlamayan kayıtları listeler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 94


AND.. OR
• SELECT * FROM Müşteriler WHERE
Şehir="İstanbul" OR Şehir="İzmir"

• SELECT*
• FROM Müşteriler WHERE [iş Unvanı]="Satınalma
Müdürü" OR Şehir='İzmir'

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 95


Operatör –Tarih Sorgulama

• SELECT Siparişler.[Sipariş No], [Müşteri No],[Sipariş


Tarihi]
• FROM Siparişler
• WHERE [Sipariş Tarihi]>#11/2/2005#;

• SELECT Siparişler.[Sipariş No], [Müşteri No],[Sipariş


Tarihi]
• FROM Siparişler
• WHERE [Sipariş Tarihi] >#15/01/2006# ORDER BY 3

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 96


DISTINCT

• DISTINCT :çok aynı satırdan varsa veriler tekrar


ediyorsa ve yalnızca bir tanesi listelenmesi
isteniliyorsa SELECT deyimi DISTINCT anahtar
kelimesi ile kullanılır.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 97


ÖRNEK

• SELECT DISTINCT [Şehir] FROM Müşteriler ORDER


BY 1
• SELECT DISTINCT [İş Unvanı] FROM [Müşteriler]
• SELECT DISTINCT [Şehir], [İş Unvanı] FROM
Müşteriler ORDER BY 1

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 98


Between And
• Between-And Operatörü
• İki değer arasında kalanları seçme işleminde
kullanılır.
• SELECT * FROM Ürünler WHERE [Liste Fiyatı]
BETWEEN 20 and 50 ORDER BY [Liste Fiyatı]

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 99


Between And
• SELECT Siparişler.[Sipariş No], [Müşteri No],[Sipariş
Tarihi]
• FROM SiparişlER
• WHERE [Sipariş Tarihi] BETWEEN #01/01/2006#
AND #31/01/2006# ORDER BY 3

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 100


• SELECT *, FORMAT([Sipariş
tarihi],'dddd/mmmm/yyyy') as tarihi FROM
Siparişler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 101


• YEAR…Yıl
• MONTH…Ay
• DAY…..Gün
• SELECT *, Year([Sipariş Tarihi]) FROM Siparişler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 102


• SELECT *,DAY([Sipariş Tarihi]), MONTH([Sipariş
Tarihi]), YEAR([Sipariş Tarihi]) FROM Siparişler

• SELECT Ad, Date() AS Tarihi


• FROM Müşteriler;

• Daha fazla bilgi için:


https://www.w3schools.com/sql/sql_ref_msaccess.
asp
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 103
LIKE
• LIKE işleci (operatörü) belirtilen özelliklere uygun
metinlerin bulunması için kullanılan, oldukça faydalı
ve sık kullanılan bir işleçtir.

SELECT kolon_adı(ları) FROM tablo_adı WHERE KOLON_adı


LIKE desen (pattern)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 104


LIKE
• LIKE Operatörü
• Bir veri kümesi içerisinde belirtiğimiz değere benzeyen verilerin olup olmadığını kontrol etmek için kullanılır.
Metin alanlarda kullanılır.
• Joker Karakterler Anlamı
• Sql Server
• % Birden fazla harf ya da rakamın yerini tutar.
• _ Bir tek harf veya rakamın yerini tutar.
• [^HARF] Herhangi bir harf yerine gelemeyecek harfleri belirtir.

• Access
• * Birden fazla harf ya da rakamın yerini tutar.
• ? Bir tek harf veya rakamın yerini tutar.
• [!HARF] Herhangi bir harf yerine gelemeyecek harfleri belirtir.

• [HARF] Herhangi bir harf yerine gelebilecek harfleri belirtir.


• [A-Z] A ile Z arasındaki harfleri belirtir.

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 105


SELECT LIKE
• SELECT * FROM Urunler WHERE [UrunAdi] LIKE 'A%‘
• EŞİTTİR YOK, TEK TIRNAKLA KULLANILIR
• SELECT * FROM Urunler WHERE [UrunAdi] LIKE
'%DE%‘
• SELECT * FROM Musteriler WHERE MusteriAdi LIKE
'[a-d]%’
• SELECT * FROM Musteriler WHERE MusteriAdi LIKE
'_an%‘
• SELECT * FROM Musteriler WHERE MusteriAdi LIKE
'[^a-r]%'
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 106
SELECT LIKE
• SELECT * FROM Müşteriler WHERE ad LIKE 'T*'
• SELECT * FROM Müşteriler WHERE ad ='T*‘

• SELECT * FROM Müşteriler WHERE ad


• LIKE '*ER*'

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 107


SELECT LIKE
• SELECT * FROM Müşteriler WHERE ad LIKE '[A-C]*'
ORDER BY AD

• SELECT * FROM Müşteriler WHERE ad LIKE '[!A-F]*'


ORDER BY AD

• SELECT * FROM Müşteriler WHERE şirket LIKE '*[a-


k]' ORDER BY şirket

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 108


SELECT LIKE
• SELECT * FROM Müşteriler WHERE ad NOT LIKE '[A-
K]*' ORDER BY AD

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 109


• SELECT * FROM Müşteriler WHERE ad LIKE '?er*'
ORDER BY ad

• SELECT * FROM Müşteriler WHERE ad LIKE '??rk*'


ORDER BY ad

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 110


SELECT IN
• IN Operatörü
• Tüm liste içindeki değerlerden belirli kriterlere uyan
verileri karşılaştırma yapmak için kullanılır.
• Zincirleme değer arama için kullanılır (birden fazla OR
kullanmak yerine IN kullanılmalıdır)

• SELECT * FROM [Müşteriler] WHERE Şehir IN


('İzmir','İstanbul','Nevşehir')
• Ayrıca alt sorgu birden fazla sonuç döndürüyor ise IN
deyimi sorguları birbirine bağlar.
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 111
• SELECT * FROM Müşteriler WHERE şehir NOT IN
('istanbul','izmir')

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 112


SORULAR
• 1.Northwind veritabanında Ürünler tablosunda Ürün Kodunun
son hanesi 1-5 aralığında olan ve liste fiyatı 25 den büyük olan
kayıtları listeleyiniz, liste fiyatına göre artan sıralayınız.
• Siparişler tablosunda Sevk tarihi boş olmayan ve Sipariş tarihi
Mayıs 2006 ayı içerisinde olan kayıtları listeleyiniz.
• Müşteriler tablosunda İŞ ÜNVANI alanı için DISTINCT deyimi ile
müşterilerin iş ünvanlarını tekrarsız olarak listeleyiniz

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 113


• SELECT * from Ürünler WHERE [Ürün kodu] LIKE '*[1-
5]' AND [Liste Fiyatı]>=25;

• SELECT * FROM Siparişler WHERE MONTH([Sipariş


tarihi])=5 AND YEAR([Sipariş tarihi])=2006 and [sevk
tarihi] IS NOT NULL
• SELECT DISTINCT [İş Unvanı] FROM Müşteriler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 114


INSERT

• Tabloya veri eklemek için kullanılır


• INSERT INTO Tablo ([Alan İsimleri]) VALUES(Değerler)

• INSERT INTO Ürünler ([Ürün Adı], [Liste Fiyatı])


VALUES ('Reçel', 45)
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 115
INSERT…SELECT
• Başka bir tablodan select ifadesi ile bilgi alıp
tablomuza eklemek de mümkündür.

• INSERT INTO Çalışanlar (Ad, Şehir) SELECT Ad,Şehir


FROM Müşteriler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 116


SELECT * INTO
• Bir tabloyu içindeki veriler ile birlikte kopyalar

• SELECT *
INTO YeniTablo
FROM table1(varolan tablo);
• SELECT * INTO Deneme FROM Ogretmenler

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 117


UNION
• Tabloları birleştirme için kullanılır.
• Birleştirilen tabloların alan sayıları ve türlerinin aynı
olması gerekir.

SELECT *FROM TblMüşteriler


UNION
SELECT *FROM TblÇalışanlar;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 118


UNION
SELECT 'Müşteri' as kim,*FROM TblMüşteriler
UNION
SELECT "Çalışan" as kim, *FROM tBLÇalışanlar;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 119


• (SELECT 'Çalışan' as kim,Çalışanlar.No,soyadı,ad
FROM Çalışanlar
• UNION
• SELECT 'Müşteri' as kim,Müşteriler.No,soyadı,ad
FROM Müşteriler)

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 120


UNION
SELECT 'Musteriler den' as kim,*FROM Musteriler
UNION
SELECT 'Customers dan' as kim,*FROM Customers;

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 121


DELETE
• Bir tablonun satırlarını silmek için gerekli komut
DELETE komutudur. Satır silme koşullu ya da koşulsuz
olarak gerçekleştirilebilir.

DELETE FROM TabloAdi [WHERE Koşul ]


• DELETE FROM Ürünler2 WHERE [Liste Fiyatı]<10
• DELETE FROM Urunler2

• DELETE FROM Ürünler2 WHERE [Birimdeki Miktar] IS NULL

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 122


UPDATE
• Tabloda bulunan kayıt yada kayıtların değiştirilmesi
için kullanılır. Değiştirilmesi istenen kolonların teker
teker yazılıp değerlerin atanması gerekmekte.
• UPDATE TabloAdi SET (Kolonlar = Değerleri
,...) [WHERE Kosul ]

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 123


UPDATE
• UPDATE komutunu da koşullu ya da koşulsuz olarak
kullanmak mümkündür

• UPDATE Ürünler2 SET [Liste Fiyatı] = [Liste Fiyatı]*1.2

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 124


UPDATE

• UPDATE komutunu da koşullu ya da koşulsuz olarak


kullanmak mümkündür

• UPDATE Ürünler2 SET [Liste Fiyatı] = [Liste


Fiyatı]*1.2 WHERE Kategori='İçecekler'

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 125


GRUPLAMA FONKSİYONLARI
• Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde
hesaplama yaparlar ve bir sonuç değer döndürürler. Toplama
ya da gruplama fonksiyonları olarak adlandırabileceğimiz bu
fonksiyonlar genellikle GROUP BY deyimi ile kullanılırlar.
• Gruplama fonksiyonları aşağıdaki ifadeler içinde
kullanılabilirler.
• SQL programlama dilinde şu aggregate fonksiyonları kullanılır:
• AVG: ortalama değer
• COUNT: kayıt sayısı
• MAX: en büyük değer
• MIN:en küçük değer
• SUM:toplam değer
• STDEV:standart sapma
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 126
GRUPLAMA
FONKSİYONLAR…HAVING
• Kümeleme fonksiyonlarını kullanırken kısıt girilmesi
gerektiğinde WHERE yantümcesini kullanamayız.
• HAVING yantümcesi, GROUP BY ile elde edilecek
satırları kısıtlamak için kullanılır.
• İşlev olarak WHERE yantümcesi gibi çalışır fakat
WHERE yantümcesi gruplama işlemlerinden önce,
HAVING yantümcesi ise GROUP BY'dan sonra
uygulanır

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 127


COUNT
• COUNT fonksiyonu (*) ile kullanıldığında FROM ile belirtilen
tablodaki toplam satır sayısını verir.

• yıldız işareti (*) joker karakteri yerine bir sütun adı olursa, o sütun
için null alanları olan kayıtları saymaz.

• SELECT count(*) FROM Ürünler

• SELECT count([Birimdeki Miktar]) FROM Ürünler

• SELECT COUNT(*) FROM Müşteriler WHERE Şehir='İstanbul'

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 128


COUNT
• SELECT Şehir,COUNT(*) FROM Müşteriler GROUP
BY Şehir

• SELECT Kategori, COUNT(*) FROM Ürünler GROUP


BY Kategori ORDER BY COUNT(*) DESC

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 129


MAX
• SELECT Kategori, MAX([Liste Fiyatı]) FROM Ürünler
GROUP BY Kategori
• SELECT Kategori, MAX([Liste Fiyatı]) AS BUYUK
FROM Ürünler GROUP BY Kategori ORDER BY 2

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 130


GROUP BY
• GROUP BY ile bir sütuna göre gruplama yapılabildiği
gibi, birden fazla sütun için de gruplama yapılabilir.

• Her kategorideki ürün sayısını bulan sorgu

• SELECT Kategori, COUNT(*) FROM Ürünler GROUP BY


Kategori
• Her şehirde farklı iş ünvanlara sahip kaçar müşterimiz
olduğunu bulan sorgu
• SELECT [Şehir], [İş Unvanı], COUNT(*) FROM
Müşteriler GROUP BY [Şehir], [İş Unvanı]
8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 131
HAVING
• SELECT Kategori, COUNT(*) FROM Ürünler GROUP BY
Kategori HAVING Kategori= "İçecekler«

• SELECT Kategori, COUNT(*) FROM Ürünler GROUP BY


Kategori HAVING COUNT(*)>=5

• SELECT Kategori , COUNT(*) AS KayıtSayısı FROM


Ürünler GROUP BY Kategori HAVING [Kategori] IS NULL

8.11.2020 Veri Bilimi Yetkinlik Geliştirme Programı 132

You might also like