Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Derinlemesine SQL
Derinlemesine SQL
Derinlemesine SQL
Ebook855 pages3 hours

Derinlemesine SQL

Rating: 0 out of 5 stars

()

Read preview

About this ebook

Bu kitapta SQL dilinin hem temel hem de ileri özellikleri anlatılmaktadır. Açık kaynaklı veritabanlarından MySQL/MariaDB & ticari ürünlerden Oracle için kurulum ve kullanım açıklanmaktadır. Standart SQL dilinin ötesinde PL/SQL ile geliştirme kitapta yer almakadır. SQL dili dışında, ilişkisel veritabanlarının temel mantığı anlatılmakta ve veritabanı tasarımı araçları, uygulamalı olarak gösterilmektedir

LanguageTürkçe
PublisherOnder Teker
Release dateJan 11, 2019
ISBN9786058252356
Derinlemesine SQL

Read more from Onder Teker

Related to Derinlemesine SQL

Related ebooks

Reviews for Derinlemesine SQL

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Derinlemesine SQL - Onder Teker

    Derinlemesine

    SQL

    Relational Databases

    MySQL / MariaDB

    Oracle PL/SQL

    Database Design

    Önder Teker

    Godoro Yayıncılık

    GODORO YAYINCILIK

    Yayıncı Sertifikası No: 18531

    Kitabın Adı:

    Derinlemesine SQL

    Copyright © 2018 Godoro Yayıncılık

    Kitabın Yazarı:

    Önder Teker

    Birinci Basım, Nisan 2018, İstanbul

    ISBN:

    978-605-82523-5-6

    Kapak Tasarımı ve Mizanpaj:

    Önder Teker

    Baskı ve Ciltleme:

    NET COPY CENTER

    Özel Baskı Çözümleri

    İnönü Cd. Beytülmalcı Sk. No:23/A

    Gümüşsuyu, Taksim 34427 İstanbul TR.

    GODORO YAYINCILIK

    Çiğdem 2 Sokak No:7 D:8

    Kaptan H. Rıfat Çırak İş Merkezi Mecidiyeköy

    Şişli / İstanbul

    Telefon/Fax : (212) 213-0275

    http://www.godoro.com

    Derinlemesine

    SQL

    Relational Databases

    MySQL / MariaDB

    Oracle PL/SQL

    Database Design

    Önder Teker

    Godoro Yayıncılık

    Veritabanı Kavramları

    Temel Konular

    Saklatım (Storage)

    Bellek (Memory)

    Herhangi bir yazılımın üzerinde çalıştığı, düzenleme yaptığı bilgilere veri (data) adı verilir. Bu verilerden bir kesimi geçici (transient) bir kesimi de kalıcı (persistent) olarak işlenir. Kalıcı olan veriler, uygulama kapandıktan sonra, ya da uygulamayı çalıştıran bilgisayar kapandıktan sonra da erişilebilir durumda olur. Verilerin tutulduğu birime bellek (memory) adı verilir. Veriler genellikle adına sert teker (hard disk) adı verilen, manyetik özellik taşıyan aygıtlarda saklanır. Ancak bunun dışında da saklama birimleri bulunmaktadır.

    Dosya (File)

    Bir uygulamanın üzerinde çalıştığı kalıcı verilere veritabanı (database) adı verilir. Bir çok uygulama, kullanıcının girdiği verileri veritabanına yazar ve gerektiğinde veritabanından getirip kullanıcıya gösterir. Bilgisayarların ilk kullanıldığı zamanlarda uygulamalarda veriler bir dosya (file) adı verilen birimlere yazılmakta ve oradan okunmaktaydı. Bu yöntemi hâlâ kullanan uygulamalar bulunur ve bu yönteme düz dosya veritabanı (flat file database) adı verilir.

    Tablo (Table)

    Geliştirici dosyalarda verileri dilediği gibi saklayabilir. Ancak bunun için hemen herkesin kullandığı ortak yöntemler ve gelenekler vardır. Buna bağlı olarak belli kavramlar bulunmaktadır. Belli bir konuyla ilgili bilgiler tablo (table) olarak düşünülür. Örneğin ürünleri saklamak için kullanılan yapıda ürünlerle ilgili bilgiler tek bir tabloda tutulur. Verinin her bir öğesi de satır (row) olarak düşünülür. Örneğin ürünler tablosunda her ürün bir satırdır. Her üründe olan ürün kimliği, ürün adı ve satış ederi gibi veriler de bu tablonun sütun (column) bilgisini oluşturur.

    Satır yerine kayıt (record) sözcüğü de kullanılabilir. Çünkü her satır bir kayda karşılık gelir. Sütun yerine tarla (field) dendiği de olur. Bu durumda denmek istenen, bir kaydın bir sütunun değeridir.

    Veritabanı (Database)

    Yazılımla ilgili bir çok konuda olduğu gibi veritabanlarında da işlenen temel birime veri (data) adı verilir. Veriler tablolarda saklanır. Tablolardan oluşan bütüne de veritabanı (database) adı verilir. Başka bir deyişle, veritabanı tablolardan, tablo da sütunlardan oluşur.

    Veri (Data)

    Type (Tür)

    Sütunlarda sayı (number), yazı (text) veya günay (date) gibi veriler saklanır. Bir verinin niteliğini gösteren bu bilgilere tür (type) adı verilir. Genellikle veri türleri burada sayılanlardan daha ayrıntılı olarak verilir. Örneğin sayının bütün (integer) yoksa gerçek (real) mi olduğu, büyük mü küçük mü olduğu gibi konuların da bildirilmesi gerekir. Verinin büyüklüğüne uzunluk (length) adı verilir. Sayılarda seçilen veri türü hem türü hem de uzunluğu bildirebilir. Örneğin integer (bütün) türü 4 baytlık sayıya karşılık gelirken yine bütün sayı olan smallint (küçük bütün) türünde 2 baytlık küçük sayılar; bigint (büyük bütün) türünde de 8 baytlık büyük sayılar saklanır.

    Açar (Key)

    Bir tablodaki satırları birbirinden ayırmak için açar (key) adı verilen bilgiler tutulur. Bir ürünün numarası, adı gibi bilgiler açar olarak kullanılabilir. Ancak genelde her tablo için belli bir sütun temel olarak alınır. Örneğin her ürünün kendisine özgü bir kimlik (identity) değeri olabilir. Bu durumda bu değer başlıca açar (primary key) adı verilir. Bunun anlamı, belli bir kayda erişmek kullanılan en önemli açarın bu olduğudur.

    İlişki (Relation)

    Bir veritabanında birden çok tablo bulunur. Bunların arasında ilişki (relation) adı verilen bağlantılar bulunur. Örneğin iller ve ülkeler diye iki tablo olsun. Bir ilin hangi ülkede olduğunu bildiren bir bilgi, o ilin satırında bulunur. Başka bir deyişle, il tablosu ülke tablosuyla ilişkilidir. Bir tabloda başka bir tablo ile ilişki kuran açara yadırgı açar (foreign key) adı verilir. Bir tabloda açarlar dışındaki ana verilere genelde varlık (entity) adı verilir ve çoğu yerde tablo anlamında kullanılır. Ancak bir tabloda varlıkla ilgili veriler dışında birincil açar ve yadırgı açar gibi sütunlar da bulunur. Kimi kez varlık kavramı gerçekte saklanacak bilgi, tablo kavramı da bilgiyi tutan fiziksel birim gibi düşünülür.

    Sorgulama

    Dört İşlem

    Bir tablo üzerinde dört temel işlem yapılır: yaratma (create), güncelleme (update), okuma (read) ve silme (delete). Bunların tümü için İngilizce sözcüklerin baş harflerinden oluşan CRUD sözcüğü kullanılabilir. Bir ürün önce yaratılır, sonra gerekiyorsa güncellenir, gerektiğinde okunur ve gereksinim duyulmadığında silinir. Tüm veritabanı işlemleri bunlar veya bunların biraz geliştirilmiş biçimlerinden oluşur. Örneğin bir ürün veritabanında yaratılır. Sonra satış ederi güncellenebilir. Herhangi bir arayüzde gösterilebilir. Satıştan kalktıktan sonra silinebilir.

    Sorgu (Query)

    Veritabanından herhangi bir işlem yapmasını istemeye sorgu (query) adı verilir. Bu sözcük hem yazma hem de okuma işlemi anlamına geldiği gibi kimi kez yalnızca okuma anlamına da gelebilmektedir.

    Ölçütler (Criteria)

    Okuma durumunda ölçütler (criteria) adı verilen, süzme için kullanılan bilgiler verilebilir. Örneğin tüm ürünlerin dizilmesi yerine yalnızca satış ederin belli bir değerin altında olanların gösterilmesi istenirse gereken ölçüt belirtilir. Ölçütleri oluşturan her birime ölçüt (criteron) denir ancak tekil olarak seyrekçe kullanılır.

    Sıra (Order)

    Veritabanındaki kayıtlar sorgulanırken varsayılan davranış eklendiği sırada getirmektir. Ancak kimi kez, belli bir sütunun değerine göre sıralı getirilmesi gerekebilir. Sorgulamalarda sıra (order) belirterek bu işlem gerçekleştirilebilir. Küçükten büyüğe sıralamaya yükselen (ascending), büyükten küçüğe sıralamaya da alçalan (descending) adı verilir.

    Dizin (Index)

    Bir tabloda çok sayıda satır bulunması durumunda belli bir ölçüte göre ve belli bir sırada kayıtları getirme işlemi uzun sürebilmektedir. Örneğin ürünlerin satış ederlerine göre, satış ederi aynı olanların da adlarına göre yükselen bir biçimde getirilmesi oldukça uzun bir süre alabilir. Bu süreyi kısaltmak için, dizin (index) adı verilen bir yapı kullanılır. Buna göre belli bir sıralama düzeni belirlenir ve veritabanı kayıtların bu düzene göre yapılması durumunda hangi satırların geleceğini önceden bulur. Sorgu yapıldığında da tek tek aramaz ve önceden belirlediği dizine göre getirir. Dizinler aramayı kolaylaştırsa da gerçek veri dışında ayrıca bir güncelemeyi gerekli kıldığı için yazma işlemlerinde belli bir yavaşlığa yol açabilir. Bu nedenler her sütun için dizin oluşturma yoluna gidilmez. Yalnızca sık arama yapılan tarlalar için dizinleme yapılır.

    SQL

    SQL Dili Üzerine

    İlişkisel Veritabanı (Relational Database)

    Tüm verileri tablolarda tutan, varlık (entity) ve ilişki (relation) biçiminde tutan veritabanlarına ilişkisel veritabanı (relational database) adı verilir. İlişkisel olmayan bir çok veritabanı türü de bulunmaktadır. İlişkisel veritabanlarında belli bir uygulamayla ilgili tüm bilgileri varlıklar ve bunlar arasında ilişkiler olarak kurgulamak gerekir.

    SQL

    Veritabanlarında işlem yapmak için geliştirilen dillerden en yaygın olanına SQL (Structured Query Language - Yapılı Sorgu Dili) adı verilir. Bu dille veritabanında bir çok işlemi bir kaç buyrukla yapmak olanaklıdır. SQL dili veritabanına erişim araçlarıyla doğrudan kullanılabildiği gibi, bir yazılım geliştirme dilinin içinde dolaylı olarak kullanılabilir. İkinci durumda kullanıcıdan veriyi uygulama geliştirme dili alır, SQL buyruğu oluşturur ve sunucuya gönderir. Dönen sonucu da kullanıcının anlayacağı bir biçime dönüştürerek gösterir.

    Uygulama (Application)

    Veritabanı Sunucu (Database Server)

    Çoğu kez geliştiriciler veritabanı işlemlerini kendisi yapmaz; bunun için uzmanlaşmış bir uygulama kullanır. Buna veritabanı sunucusu (database server) adı verilir. Veritabanı sunucularının yaptığı, geliştiricinin bellekte veri saklaması ve bellekten geri edinmesi için çeşitli araçları sunmaktır. Bu biçimde geliştiriciden veri saklama işlemleri yükü alınmış olmaktadır. Veritabanı sunucusu olarak en bilinen ürünler arasında DB2, Oracle, MySQL/MariaDB, PosgreSQL ve SQL Server programları sayılabilir.

    Yönetim (Management)

    Bir veritabanı sunucu kurulduktan sonra ona erişim sağlanması gerekir. Bunun için buyruk çizgisi (command line) araçları kullanılabilir. Her sunucu yazı tabanlı (text-based) bir arayüzle SQL buyruklarını sunucuya gönderip sonuçlarını gösteren bir uygulama içerir. Öte yandan, çizimli kullanıcı arayüzü (graphical user interface - GUI) içeren araçlar da veritabanına erişim için kullanılabilir. Bunlar görsel bileşenler içerdikleri için daha kolay bir kullanım sağlarlar. Ancak uzmanlar buyruk dizesi araçlarla da çalışmayı bilmelidir. Üretimdeki sunucularda görsel erişim araçları üretimde kurulu olmayabilir.

    Konakçı (Host)

    Sunucular belli bir bilgisayarda çalışırlar. Genelağda (internet) o bilgisayara konakçı (host) olarak erişilir. Her konakçı bilgisayar için konakçı adı (host name) ya da IP Numarası (IP number) bulunur. Örneğin

    database.godoro.com

    bir konakçı adıyken

    193.23.12.71

    aynı konakçıya ilişkin bir IP numarası olabilir.

    Kullanıcı (User)

    Bir sunucuya bağlanıp belli bir işlem yapan kişi ya da uygulamaya kullanıcı (user) adı verilir. Veritabanında çok sayıda kullanıcı bulunabilir. Genellikle tüm kullanıcıların üstünde bir yetkiye sahip kök (root) veya yönetici (administrator) gibi adlar alan kullanıcılar alabilir. Çoğu kez, daha az yetkili kullanıcıları bu üstün yetkili kullanıcılar yaratır.

    Parola (Password)

    Bir kullanıcının bir veritabanına bağlanması sırasında belli bir parola (password) girmesi gerekir. O yüzden her kullanıcıya bir parola verilir. Kullanıcı adı ile birlikte parola en küçük güvenlik sağlamak için kullanılmaktadır.

    Authentication (Doğrulama)

    Bağlanma sırasında verilen kullanıcı adı ile parolanın doğruluğu denetlenir. Buna doğrulama (authentication) adı verilir. Her kullanımda kullanıcı adının veritabanında tanımlı olmadığı, tanımlıysa parolanın doğru girilip girilmediği denetlenir.

    Yetkilendirme (Authorization)

    Tanımlı bir kullanıcı bir sunucuya girdikten son yapabileceklerinin denetlenmesi için yetkilendirme (authorization) işlemi yapılır. Örneğin bir kullanıcı bir sunucuda tanımlı olsa da yalnızca bir veritabanına eriştirilebilir ötekilerine eriştirilmeyebilir. Bir veritabanı içerisinde de belli tablolara eriştirilip ötekilerine erişim engellenebilir.

    Dil (Language)

    Her veritabanında yazıların saklanması için bir dil (language) bilgisi gereklidir. Bunun nedeni belli bir dile özgü karakterleri saklanabilmesidir. Örneğin Türkçe dilindeki ö, ü, ı, ş, ç, ğ gibi İngilizce dilinde olmayan karakterlerin doğru olarak saklanabilmesi için dilin atanması gerekir.

    Düzgüleme (Encoding)

    Kullanılabilecek karakterlerden oluşan kümeye özyapı kümesi (character set) adı verilir. Hangi sayıların hangi karakterlere karşılık geldiği bilgisine de düzgüleme (encoding) adı verilir. Türkçe karakterlerin kullanılabilmesi için bir kaç olasılık bulunmaktadır. Bunlardan bir tanesi LATIN 5 ya da ISO-8859-9 gibi adlarıyla belirtilen, yalnızca Türkçeye özgü karakter kümelerin kullanılmasını sağlayan damga kümeleri kullanılmasıdır. Ancak temel olarak İngilizce karakterleri alan, ancak Türkçe karakterleri de özel bir yöntemle destekleyen bir düzgüleme biçimi olan UTF-8 de bulunmaktadır. Bu biçimde, evren düzgüsü (unicode) adı verilen kodlardan ilk 256 tanesi temel alınıp, ötekilerin özel yöntemlerle gösterilmektedir.

    Duyum Duyarlılığı (Case Sensitivity)

    Veritabanında tablo, sütun gibi nesnelerin adlarının durum duyarlılığı (case sensitivity) özelliği bulunmaktadır. Eğer büyük harflerle küçük harfler aynı alınacaksa duruma duyarsız (case insensitive) ya da kısaca ci, ayrı alınacaksa duruma duyarlı (case sensitive ) ya da kısaca cs adı verilir.

    Karşılaştırma (Collation)

    Karakterlerin nasıl eşleştirileceği bilgisine karşılaştırma (collation) adı verilir. Genellikle birbirine yakın harflerin aynı alınıp alınmayacağı anlamını taşır. Örneğin Türkçe de 'a' harfi ile 'â' harfinin aynı sayılıp sayılmaması gibi. Çoğu kez karşılaştırma adları karakter kodlaması, dil ve durum duyarlılığı biçiminde yapılır. Örneğin utf8_turkish_ci deyimi UTF-8 turkish case-insensitive (UTF-8 türkçe duruma duyarsız) anlamına gelir.

    Düzgü (Code)

    SQL dilinde oluşturulmuş yazılara düzgü (code) adı verilebilir. Çoğunlukla SQL düzgüsü (SQL code) dışavurumu, geliştirilen yazı anlamına gelir.

    Ölçün (Standard)

    Aşağıdaki örneklerde MySQL ya da MariaDB diye bilinen veritabanına göre SQL deyimleri yazılmaktadır. Yazılanların olabildiğince veritabanında çalışabilecek biçime olması için çaba gösterilmiştir. Ancak yine de kimi veritabanı ürünlerinden ufak tefek farklar olabilir.

    Durum Duyarlılığı (Case-Sensitivity)

    Örneklerde SQL deyimleri küçük imceler kullanılarak yazılmıştır. Ancak SQL dili duruma duyarsız (case insensitive) bir dildir ve harfler istendiği gibi kullanılabilir. Örneğin create yeğlenmiştir ancak geliştirici isterse CREATE ya da Create yazabilir. Her ne ölçüde cReATe biçiminde yazılış yasal olsa da anlaşılırlığı azaltacağı için önerilmez.

    Demeç (Statement)

    SQL de her buyruk bir demeç (statement) olarak algılanır. Bunlar sunucuya söylenen bir söz olarak düşünülebilir. Bir kezde birden çok demeç olabilir. Bunları noktalı virgül (comma) imi ';' ile ayırmak gereklidir. Birden çok demeçten oluşan deyimler tek bir kezde sunucuya gönderildiğinde istek (request) adı verilir. Örnek:

    Demeç 1;

    Demeç 2;

    Demeç 3;

    Yeni Çizgi (New Line)

    SQL dili yeni çizgi (new line) özyapılarını göz önüne almaz. Başka bir deyişle, aynı kod parçası tek bir satırda da yazılsa çalıştırılır, her bir demeç ayrı dizelerde olsa da. Dahası, bir demeç birden çok satıra bölünebilir. Örneğin

    Bu Demeçtir Bir; Bu Demeçtir İki; Bu Demeçtir Üç

    biçimindeki yazım da geçerlidir,

    Bu Demeçtir Bir;

    Bu Demeçtir İki;

    Bu Demeçtir Üç

    biçimindeki yazım da. Her bir demeci ayrı dizelere bölen

    Bu Demeçtir

    Bir;

    Bu

    Demeçtir İki;

    Bu

    Demeçtir

    Üç

    biçimindeki yazım da geçerlidir.

    Boşluk (Space)

    SQL dilinde tablo veya sütun gibi nesnelerin adlarında boşluk (space) kullanmak sorunlara yol açar. O yüzden boşluk kullanmaktan kaçınılır. Gerekiyorsa nesne adları tek tırnak (single quote) imi (') içine alınır. Örneğin

    'Tablo Adı'

    geçerli bir nesne adı olabilir. Kimi SQL düzenleyiciler, adlarda boşluk bulunabileceği için, tek parçadan oluşsa da tırnak içinde kullanım yoluna gidebilirler. Örneğin

    'Tablom'

    biçiminde yazılması da olanaklıdır. Gerekmese de tek tırnak koymak kişisel bir yeğlemedir.

    Yorum (Comment)

    SQL kodu içine anlaşılırlığı arttırmak için yazılan; SQL ile ilgisi olmayan; yalnızca kodu okuyan kişileri bilgilendirme bölümlerine yorum (comment) denir. Düzgü içerisinde tek dizelik yorum (single-line comment) yazmak için dizenin başına iki kısa çizgi (two dash) imleri '--' koyulur. Örneğin

    -- Bu bir yorum

    Bu Demeçtir Bir;

    Bu Demeçtir İki;

    -- Bu da başka bir yorum

    Bu Demeçtir Üç

    biçimindeki kod parçasında '--' ile başlayan bölümler yorumdur ve SQL tarafından işlenmez.

    SQL dilinde çok çizgili yorum (multiple-line comment), başta bölü ve yıldız (slash and asterisk) imleri '/*' ve sonda yıldız ve bölü (asterisk and slash) imleri '*/' arasında gösterilir. Örneğin

    Bu Demeçtir Bir;

    Bu Demeçtir İki;

    /*

    Burası çık satırlık yorumdur.

    Aşağıda da sürer gider.

    */

    Bu Demeçtir Üç

    Kimi durumlarda geliştirici bir SQL kod parçasını geçici olarak devre dışı bırakmak için yorumlama yoluna gider. Genellikle bu durum bir konuyu sınamak için yapılır. Buna dışa yorumlama (comment out) adı verilir. Örneğin

    Bu Demeçtir Bir;

    -- Bu Demeçtir İki;

    Bu Demeçtir Üç

    biçimindeki kod parçasında ikinci dizedeki kod parçası dışa yorumlanmıştır ve çalıştırılmaz.

    İkilik (Binary)

    Bilgisayarlar sayamaklı (digital) aygıtlardır ve tüm değerler ikilik (binary) tabanda tutulur. O yüzden bir çok büyüklük ikinin katları olarak işlem görür. İnsanlar için anlamsız görünebilecek değerler, hem ikinin katıdır hem de ikinin iki üzeri olan bir sayı katıdır. Örneğin 256 sayısı 2 sayısının 8 üzeridir ki buradaki 8'de ikinin bir katıdır.

    256 sayı varsa 0 ile 255 arasında değerler bulunuyor demektir. Bunun anlamı 2^8 -1 (2 üzeri 8 eksi 1) değer olmasıdır. Başka çok kullanılan sayı 2^16-1 (2 üzeri 16 eksi 1) yani 65,535 sayısıdır. Burada 65,536 sayı vardır ve ilki 0, sonuncusu 65,535.

    8 bit (8 Bit) sayı 1 bayt (1 byte), 16 bit (16 bit) sayı 2 bayt (2 byte) denmesi gibi 8, 16, 24, 32 biçiminde giden büyüklükler de önemlidir. Örneğin bütün sayılar 32 bit olarak saklanır. Bu yüzden de bir çok büyüklük 8 bitlik saklanacak biçimde 0 ile 255 arasında değer tutabilir. 32 bitlik sayı 4294967296 sayı tutabilir. İlki 0 ve sonuncusu 4294967295.

    İkilik sayıları göstermek için K (Kilo), M (Mega), G (Giga), T (Tera) gibi büyüklükler kullanılabilir. Bunlar binlerin katlarına yakın, ancak ikinin katları olan sayıdır. Örneğin K imcesi 1024 (2^10 - 2 üzeri 10) anlamına gelir. M, 1024^2; G, 1024^3; T, 1024^4 olarak değer alırlar.

    Burada anımsamayı kolaylaştırmak için K, M, G ve T sayılarını kullanılacaktır. Bilgisayar dünyasında genelde uzunluklar bu türden verilir. Örneğin 65,536 yerine 64 K; 4194304 yerine 4 M, 8589934592 yerine 8 G demek daha kolaydır.

    SQL Temel Konular

    Şema İşlemleri

    Bir veritabanı sunucusunda işlem yapmak için öncelikle bir veritabanı oluşturmak gerekir. MySQL sunucusunda veritabanı yerine şema (schema) adı kullanılır. Ancak çoğu geliştirici şemaya veritabanı diyebilmektedir. Kuramsal olarak bir veritabanında birden çok şema olabilir. Ama bir veritabanında tek bir şema olması durumunda veritabanı ile şema aynı nesne olarak düşünülebilir.

    Şema Yaratma

    Başka bir deyişle, herhangi bir tablo yaratmadan önce şema yaratılmalıdır. Bunun için create schema (şema yarat) buyruğu kullanılır. Örneğin

    create schema mydb

    biçiminde bir kod parçası yazılırsa mydb adında bir şema yaratılmış olur.

    Özyapı Kümesi (Character Set)

    Tersi söylenmedikçe, yaratılan şemanın dili veritabanının varsayılan dil ayarları neyse ona göre belirlenir. Belli bir dilde oluşturmak için default character set (varsayılan özyapı kümesi) sözcükleri kullanılır. Buna göre

    create schema mydb

    default character set latin5

    girilirse Latin 5 adı verilen, Türkçeye karşılık gelen özyapı kümesi kullanılmış olur.

    Türkçeyi de destekleyen evren düzgüsü (unicode) ile belirtilen UTF-8 atanmak istenirse

    create schema mydb

    default character set utf-8

    biçiminde bir kod parçası yazılır.

    Karşılaştırma (Collation)

    Türkçe için karşılaştırma (collation) bilgisini durum duyarsız (case-insensitive) girmek için collate (karşılaştır) sözcüğü utf8_turkish_ci ile kullanılabilir. Bu durumda şema yaratma kodu

    create schema mydb

    default character set utf-8

    collate utf8_turkish_ci;

    Şema Düşürme (Drop Schema)

    Yaratılmış bir şemayı silmek için drop schema (şemayı düşür) buyruğu kullanılır. Örneğin

    drop schema mydb

    biçimindeki demeç mydb adlı şemayı düşürür.

    Veri Türü (Data Type)

    SQL veritabanlarında verileri saklamak için onların tür (type) bilgisini baştan bildirmek gerekir. Burada tür kavramı değerlerin yazı (text) mı, sayı (number) mı, günay (date) mi olduğunu gösterir. Kimi veri türleri için ayrıca bir uzunluk (length) bilgisi gerekir. Örneğin yazı türünde verinin uzunluğun ne olacağına göre bir saklama yapılır.

    Özyapı (Character)

    Yazı türü veriler char ya da varchar türleriyle belirtilebilir. Bunlardan char (character - özyapı) türünde verilen uzunluk kadar yer ayrılır. Girilen veri o uzunlukta olmasa da ayrılan yere dokunulmaz. Örneğin ürün adı diye bir alanda 100 özyapılık bir tarla açılsın. Ürünün adı Bilgisayar olması durumunda yalnızca küçük bir bölümü dolar. Geri kalan yerler boşa ayrılmış olur. Öte yandan, varchar (variable character - değişken özyapı) türünde verilere yine uzunluk verilese de değerin kendisi kadar yer ayrılır. Verilen uzunluk yalnızca denetim amaçlı kullanılır. Burada varchar türü daha esnek gibi görünse de kullanımı biraz daha yavaştır. Çünkü veritabanı değişken özyapılı değerlerde değerleri başka bir yere saklar, tablonun değerlerinin bulunduğu yere yalnızca bir başvuru koyar. Bu durumda değeri almak için biraz daha çok işlem yapılır.

    Yalın (Literal)

    Karakter türü verilerin yalın (literal) değerleri iki tane tek tırnak (single quote) imi (') arasında alınır.

    Enjoying the preview?
    Page 1 of 1