Veritabanı Tasarımı. Düzenli İfadeler

Benzer belgeler
Veritabanı Tasarımı. SQL Deyimi Anatomisi

Veritabanı Tasarımı. Dönüşüm Fonksiyonları

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Veritabanı. SQL (Structured Query Language)

Veritabanı Tasarımı. Çoklu Satır Alt Sorgular

Laboratuvar 2 Tek Kayıt Fonksiyonları

Veri Tabanı Tasarım ve Yönetimi

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

Veritabanı Tasarımı. Alt Sorgu Temelleri

KISITLAMALAR (CONSTRAINT)

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

SQL Komutları (2) Uzm. Murat YAZICI

VERİ TABANI YÖNETİM SİSTEMLERİ I

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Microsoft Excel 4.BÖLÜM

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

{ } Benzer yol ismi veya komşu bölge eşleşmesi. Parentezlerin anlamı çevrelediği coğrafi veya beşeri bileşenlere göre değişir.

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

EXCEL FORMÜLLER, FONKSİYONLAR

Veritabanı Tasarımı COUNT, DISTINCT, NVL

Oracle da kullanılan veri tipleri:

Excel Formuller ve Kullanımı

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Regular Expressions ve grep, awk, sed ile Kullanımı

VERİTABANI. SQL (Structured Query Language)

FORMÜLLER VE FONKSİYONLAR

Veritabanı Tasarımı. Veri Türleri Kullanma

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Like Joker Karakterler, Order By, Group By

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Veri Tabanı Programlamaya Giriş

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

ÜNİTE 9 ÜNİTE 9 MICROSOFT EXCEL - II TEMEL BİLGİ TEKNOLOJİLERİ İÇİNDEKİLER HEDEFLER

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

SQL Kod ile Tablo Oluşturma

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

VERİ TABANI YÖNETİM SİSTEMLERİ I

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

Temel Excel Kullanım Bilgisi

SQL e Giriş. Uzm. Murat YAZICI

Veritabanı Tasarımı. İndeksler ve Eşanlamlar

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

SQL Query and Table Application

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

BİLGİSAYAR PROGRAMLAMA

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

Veritabanı Tasarımı. Tablo Değiştirme

Oracle Database 11g: Introduction to SQL

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

Bölüm 4: DDL Veri Tanımlama Dili

YAPISAL SORGULAMA DİLİ (SQL)

Veri Tabanı Hafta Dersi

Daha önce bu işlemin iki tane dosya oluşturduğunu gördük. GecDenTest.aspx dosyasının source kısmında içeriğini inceleyecek olursanız en başta

Veritabanı Tasarımı. İlişkisel Veritabanı Kavramlarına Giriş

BÖLÜM13 3- EXCEL DE VERİ İŞLEMLERİ

Regular Expressions Version 0.1

=A3*15..A3 hücresindeki sayı ile 15 in çarpımı ) =a3-b2..a3 hücresindeki sayıdan b2 hücresindeki sayıyı çıkar.

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

Veri Tabanı Yönetim Sistemleri Bölüm - 6

SORGULAR. Öğr.Gör.Volkan Altıntaş

API v1.0

Yrd. Doç. Dr. A. Burak İNNER

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

ALP OĞUZ ANADOLU LİSESİ EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI

Dr. Fatih AY Tel: fatihay@fatihay.net


BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

VERİTABANI Veritabanı Sorgulama

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

Chomsky Hiyerarşisi. Düzenli Diller ve Đfadeler 03/09/2014. Doç.Dr.Banu Diri

Dış Veri Alma ÜNİTE 6. Bu üniteyi çalıştıktan sonra; Veri Menüsü Dış Veri Al Bağlantılar Sırala ve Filtre Uygula Veri Araçları Anahat

Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

$ rm dosya1 dosya2 dosya3 dosya4 dosya5 dosya6 dosya7 dosya8

ALGORİTMA VE PROGRAMLAMA I

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.

Göstericiler (Pointers)

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Transkript:

Veritabanı Tasarımı Düzenli İfadeler

Konular Düzenli ifadeleri tanımlama SQL ifadelerinde düzenli ifadeleri arama, eşleme ve yer değiştirme katarlarında kullanma Düzenli ifadeleri ve kontrol kısıtlamalarını oluşturma ve çalıştırma 2

Amaç Bazen bir sütundaki, metin katarı veya belgedeki belirli bir metni aramak ya da değiştirmek zorunda olabilirsiniz. Zaten LIKE ve joker karakter kullanarak basit desen eşleştirme gerçekleştirmeyi biliyorsunuz. Bazen belirtilen metinde Winchester kelimesini bulmak ya da bir metin parçasından tüm URL'leri ayıklamak gibi çok karmaşık metin dizelerine bakmanız gerekebilir. Diğer zamanlarda her ikinci karakteri sesli olan tüm kelimeleri bulmanız gibi daha karmaşık aramalar yapmanız istenebilir. 3

Amaç Düzenli ifadeler arama ve değiştirme için hem basit hem de karmaşık modellerdir. Bilgi işleme endüstrisinde sıklıkla kullanılır ve Oracle ile sınırılı değildir. Oracle düzenli ifadeler uygulaması POSIX in uzantısıdır ve IEEE tarafından kontrol edilen bu standart ile tamamen uyumludur. 4

Düzenli İfadeler Düzenli ifadelerin kullanılması meta karakterlerin kullanımına dayanmaktadır. Meta karakterler, joker bir karakter, yinelenen bir karakter, eşleşmeyen bir karakter ya da bir karakter aralığı olarak özel bir anlama sahip özel karakterlerdir. Desen eşleştirmede önceden tanımlanmış bir meta karakter sembolü kullanabilirsiniz. Bir sonraki sayfalarda meta karakterler listelenmekte ve her biri için kısa açıklama verilmektedir. 5

META Karakterler Sembol Açıklama * Sıfır veya daha fazla örnekle eşleşir Alternatif eşleşmeleri belirtmek için kullanılan eşleşme operatörü ^/$ Satır-başlangıcı / Satır-sonu eşleşmesi [ ] Listede verilen ifadelerin herhangi biri ile eşleşen, eşleşme listesi köşeli parantez arasında belirtilir {m} {m,n} m kere tam eşleşme En m kere fakat en fazla n kere eşleşme [: : ] Bir karakter sınıfını belirtir ve bu sınıfta herhangi bir karakterle eşleşme 6

META Karakterler Sembol Açıklama \ 4 farklı anlama sahip olabilir: 1. Kendisi için duran 2. Bir sonraki karakteri tırnaklar 3. Bir operatörü tanıtır 4. Hiçbir şey yapmaz + Bir ya da daha çok tekrarı eşler? Sıfır yada bir tekrarı eşler. Desteklenen karakter setinde NULL hariç herhangi bir karakteri eşler ( ) Tek bir alt-ifade olarak kullanılan gruplama ifadesi [==] Eşitlik sınıflarını belirtir \n Geri-referans ifadesi [..] Çok karakterli bir eleman olarak bir harmanlama elemanı belirtir 7

Düzenli İfade Örnekleri Basit bir düzenli ifade aşina olduğunuz joker aramalarına çok benzerdir. Bir örneğe bir göz atalım: Nokta operatörü kullanarak a ile c arasında bulunan herhangi bir karakteri arayalım. Düzenli bir ifade olarak bu a.c şeklinde olmalıdır. Aynı ifade SQL standart joker araması olarak şu şekildedir: WHERE sütun LIKE a_c. 8

Düzenli İfade Örnekleri Aşağıdaki ifadelerden hangileri a.c ile eşleşmektedir? ABC, abc, aqx, axc, abc, abc, Amc, amrc 9

Düzenli İfade Örnekleri Kırmızı işaretli olan katarlar a.c arama katarı ile eşleşmektedir. ABC, abc, aqx, axc, abc, abc, Amc, amrc Diğer örnekler ya harfin yanlış yerde olması ya da büyük/küçük harf ifadesinin yanlış olmasından kaynaklanmaktadır. 10

Düzenli İfade Örnekleri Adı Stephen veya Steven olan tüm çalışanların listelenmesinin istendiğini varsayalım. Şayet standart Oracle joker aramasını kullanırsanız bu başarmak için zor olacaktır fakat düzenli ifadelerle bunu şu şekilde ifade edebiliriz: ^Ste(v ph)en$ ^ aranan katarın başlangıcını ifade eder S büyük harf t küçük harf e küçük harf 11

Düzenli İfade Örnekleri ^Ste(v ph)en$ ( bir grup başlatır v küçük harf VEYA ifadesi p küçük harf h küçük harf ) seçilen grubu bitirir e küçük harf n küçük harf $ aranan katarın sonunu belirtir 12

Düzenli İfade Fonksiyonları Oracle, düzenli ifadeler kullanarak katarlarda arama ve değişiklik için bir SQL fonksiyonları kümesi sağlar. Bu fonksiyonları CHAR, CLOB ve VARCHAR2 gibi karakter verileri tutan herhangi bir veri türünde kullanabilirsiniz. Bir düzenli ifade tek tırnak işareti içinde verilmelidir. 13

Düzenli İfade Fonksiyonları Ad REGEXP_LIKE REGEXP_REPLACE REGEXP_INSTR REGEXP_SUBSTR REGEXP_COUNT Açıklama LIKE operatörüne benzer fakat basit model eşleme yerine düzenli ifade eşlemesi gerçekleştirir. Düzenli bir ifade modeli için arama yapar ve onu değiştirme katarı ile değiştirir. Verilen bir katar için verilen bir düzenli ifade modeli arar ve eşleşmenin bulunduğu pozisyonu geri döndürür. Verilen katar için düzenli bir ifade modeli arar ve eşleşen alt katarı geri döndürür. Bir katarda bir modelin tekrar edilme sayısını geri döndürür. Katarı ve modeli belirtmelisiniz. Ayrıca başlangıç pozisyonunu ve eşleme seçeneklerini belirtebilirsiniz. 14

Düzenli İfade Fonksiyonu Örnekleri REGEXP_LIKE düzenli ifadesinin kullanımı Steven veya Stephen listeleme probleminin çözümü için kullanılabilir: 15

Düzenli İfade Fonksiyonu Örnekleri Sayı ile başlamayan adreslerin aranması ve bu adresteki ilk alfa olmayan karakterin pozisyonunun listelenmesi şu şekilde yapılabilir: Açıklama ve sonuçlar bir sonraki sayfada bulunabilir. 16

Düzenli İfade Fonksiyonu Örnekleri [ ifadenin başlangıcını belirtir ^ parantez içinde belirtildiği zaman NOT anlamına gelir [:alpha:] numaralar gibi alfa karakter sınıfını belirtir ] ifade sonunu belirtir 17

Düzenli İfade Fonksiyonu Örnekleri Sokak adresinde, ilk alfabetik olmayan karakter 9. karakter pozisyonundaki boşluk karakteridir. Bu sokak adresleri 123 F gibi numara ile başlar. Sokak, alfabetik olmayan ilk karakterine 1. karakter pozisyonunda sahiptir ve WHERE deyimi kullanarak arama dışına alınır. 18

Düzenli İfade Fonksiyonu Örnekleri Bir cümle içeren bir sütundaki sadece ikinci kelimeyi geri döndürmek için aşağıdaki ifadeyi çalıştırabilirsiniz: Herhangi bir boşluk olmayan [^ ]+ karakterin bir ya da daha fazla tekrarını bulur. Bu da ayrıca tek bir boşlukla ve devamında yine tek bir boşlukla [^ ]+ takip eder. 19

Düzenli İfade Fonksiyonu Örnekleri [ ifade başlangıcını belirtir ^ NOT ifadesini belirtir bir boşluk belirtir ] ifadenin bitimini belirtir + bir ya da daha fazla olayı belirtir bir boşluğu belirtir 20

Düzenli İfade Fonksiyonu Örnekleri Düzenli ifadeler, veritabanında sadece tutarlı verilerin saklanmasını sağlamak için uygulama kodlarının bir parçası olarak da kullanılabilir. Örneğin bir CHECK kısıtlaması gibi bir düzenli ifade fonksiyonu çağırmak için içermesi mümkündür. 21

Düzenli İfade Fonksiyonu Örnekleri Veritabanınızdaki bir tabloda @ sembolü olmayan bir mail adresi olmamasını istediğinizde aşağıdaki basit kontrol kısıtlamasını ekleyebilirsiniz: Bu tüm mail adreslerinin @ işareti içermesini sağlayacaktır. 22

Kontrol Kısıtlamalarında Düzenli İfadeler Diğer örnek telefon numaralarını formatlarının kontrolü olabilir: Bu kısıtlama tüm telefon numaralarının (XXX) XXX-XXXX formatında olmasını sağlar. 23

Kontrol Kısıtlamalarında Düzenli İfadeler ^ katar başlangıcı \( ters bölüde (\) bir sol parantez, sol parantezi izleyen gruplama ifadesi yerine bir dizgiyi belirten bir çıkış karakteri olarak kullanılır. \d{3} Tam üç basamaklı \) Sağ parantez. Ters bölü (\) işareti önce gelen bir çıkış karakteridir. (space character) Boşluk karakteridir. 24

Kontrol Kısıtlamalarında Düzenli İfadeler \d{3} Tam üç basamaklı - Tire \d{4} Tam dört basamaklı $ Katarın bitimi. 25

Kontrol Kısıtlamalarında Düzenli İfadeler Aşağıdaki satır çalışmalı: Aşağıdaki satır çalışmamalı: 26

Kontrol Kısıtlamalarında Düzenli İfadeler Kontrol kısıtlamasında düzenli ifadelerin bir başka kullanımı VARCHAR2 veya CHAR sütununun numara almasına izin vermediğinden emin olmak olabilir: [[:digit:]] ifadesi rakam veya sayısal değerleri tespit eden son ek ifadesidir. REGEXP_INSTR herhangi bir rakamın pozisyonunu geri döndürür ve şayet dönen değer 0 değilse kısıtlama başarısız olur. 27

Kontrol Kısıtlamalarında Düzenli İfadeler Natacha Hansen iletişim ismi veritabanı tarafından kabul edilmelidir çünkü regexp_instr tarafından geri döndürülen sayı 0 olmalıdır. regexp_instr( Natacha Hansen,'[[:digit:]] ) ifadesi 0 döndürür bu nedenle ekleme çalışmaz. 28

Kontrol Kısıtlamalarında Düzenli İfadeler Örneğin Natacha Hansen 1 gibi bir isme numara eklemek istersek ekleme hata verir. regexp_instr( Natacha Hansen 1,'[[:digit:]] ) ifadesi 16 değerini geri döndürür. 16=0 doğru olmadığı için ekleme başarısız olur. 29

Alt İfadeler Oracle 11g de düzenli ifadeleri kullanırken ayrıca alt ifadeleri kullanabiliriz. Parantezler ifade içerisinde alt ifadelerin belirlenmesi için kullanılır ve REGEXP_INSTR ve REGEXP_SUBSTR fonksiyonlarında desteklenir. 30

Alt İfadeler Aşağıdaki ifadeye bakın: (1 2 3) (4 (5 6) (7 8) ) Buradaki alt ifadeler: A. 1 2 3 B. 4 5 6 7 8 C. 5 6 D. 7 8 31

Alt İfadeler Alt ifadeler özellikle gerçek kelimelerde kullanışlıdır: örneğin DNA zincirlemesi ile çalışırken. Bir fare DNA zincirleri kısmi örneğine bakalım: ccacctttccctccactcagttctcacctgtaaagcgtccctccctcatccccatgcccccttaccg cagggtagagtaggctagaaaccagagagctccaagctccatctgtggagaggtgccatcctt gggctgcgagagaggagaatttgcccaaagctgcctgtttgaacgatggagacatgattgccg taaagggtcctgaatgcatgagatgtctttcgagagtaccggttacgggttaaaaggtcatgaga cttcgatcattacgatcgtggttaacacacatatgagtatagagacacattggccaagagttgag attgagag 32

Alt İfadeler DNA zincirlemesi ile çalıştığınızı ve gtc ile başlayan tcac ve daha sonra aaag ile devam eden belirli bir sıralamanın başlangıç pozisyonunu bulmak zorunda olduğunuzu hayal edin. Bu, eşleşmenin bulunduğu pozisyonu geri döndüren REGEXP_INSTR fonksiyonu ile kolay bir şekilde gerçekleştirilir. 33

Alt İfadeler 34

Alt İfadeler 35

REGEXP_COUNT Oracle 11g ayrıca yeni bir düzenli ifade fonksiyonuna sahiptir: REGEXP_COUNT. Bu fonksiyon bir katar içerisinde bir desenin kaç kez tekrar göründüğünü harika bir şekilde belirtir. 36

REGEXP_COUNT Fare DNA örneğini kullanarak, şayet DNA örneğinde gtc deseninin kaç defa sunulduğunu hesaplamak istersek, basitçe onları sayarız. 37