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

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

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

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

MSSQL. 4. Hafta Uygulama - 1 BPR255 Veritabanı CREATE DATABASE OKUL GO USE OKUL GO

3. Hafta Tablo İşlemler BPR255 Ver tabanı. Bu Der ste Öğr enecekler n z: 1. Tablo İşlemler

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

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

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

SORGULAR VE ÇEŞİTLERİ II

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

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Veri Tabanı Hafta Dersi

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

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

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

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

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

VERİTABANI Veritabanı Yönetimi

Mysql Veritabanı Komutları

Veritabanına Uygulanması

KISITLAMALAR (CONSTRAINT)

Oracle da kullanılan veri tipleri:

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

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

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

Çok tablolu sorgulamalar

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

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

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

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

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

«BM364» Veritabanı Uygulamaları

3 Sql Veri Tipleri ve Örnek Veritabanı Tasarımı. Veritabanı 1

STORED PROCEDURE LER (Saklı Yordamlar)

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

SQL e Giriş. Uzm. Murat YAZICI

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

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

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

3 Sql Veri Tipleri. Veritabanı 1

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XII: Durum Çalışması Çağıltay, N., Tokdemir, G.

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

ACCESS PLATFORMUNDA SQL

SQL Komutları (2) Uzm. Murat YAZICI

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

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

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

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

SQL Kod ile Tablo Oluşturma

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

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

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

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

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

SQL (Structured Query Language)

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

KIRIKKALE ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ EĞİTİMİ ANA BİLİM DALI VERİ TABANI YÖNETİM SİSTEMLERİ DERSİ FİNAL PROJESİ

VERİ TABANI YÖNETİM SİSTEMLERİ-II

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

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

VERİ TABANI ve YÖNETİMİ

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

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Veritabanı Tarihi. 1960s: Bilgisayarlar artan saklama kapasiteleri ile birlikte firmalar tarafından karşılanabilir hale gelmeye başladı

License. Veri Tabanı Sistemleri. Konular. Bağıntı Modeli Dr. E. F. Codd, 1970 veri bağıntılar şeklinde modellenir: α A B C...

VERİTABANI ve YÖNETİMİ

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

BİLİŞİM TEKNOLOJİLERİ

İLİŞKİSEL VERİTABANLARI

YAPISAL SORGULAMA DİLİ (SQL)

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

Laboratuvar 6 TABLOLAR VE KISITLAR

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

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

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

Veritabanı Nedir? Veritabanı

10-Veri Tabanları.

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

VERİTABANI ORGANİZASYONU

VERİTABANI. SQL (Structured Query Language)

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

BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ DERSİ

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

VERİTABANI YÖNETİMİ. İlişkisel Veritabanı 4.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

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

Veri Tabanı Programlamaya Giriş

SQL (Structured Query Language)

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

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Oracle Database 11g: Introduction to SQL

MICROSOFT ACCESS DERS NOTLARI

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Transkript:

Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri 1.1. Tablo Oluşturma 1.2. Tablo Oluşturmada Kısıtlamalar Constraints 1.3. Tablo Silme a. NULL, NOT NULL b. PRIMARY KEY c. UNIQUE d. FOREIGN KEY e. CHECK f. DEFAULT g. IDENTITY veya AUTO_INCREMENT 1. Tablo İşlemleri 1.1. Tablo Oluşturma En basit haliyle CREATE TABLE tablo_adı Alan_adı1 VERI_TİPİ, Alan_adı2 VERİ_TİPİ, Alan_adıN VERİ_TİPİ MSSQL NUMARA INT, ADI VARCHAR50, SOYADI VARCHAR50, [BÖLÜM KODU] CHAR4, CİNSİYET CHAR5, TELEFON CHAR16 MySQL NUMARA INT, ADI VARCHAR50, SOYADI VARCHAR50, `BÖLÜM KODU` CHAR4, CİNSİYET CHAR5, TELEFON CHAR16 Burada Öğrenciler adında bir tablo oluşturulacak. NUMARA alanı tamsayı tipinde olacak, ADI ve SOYADI ile belirtilen alanlar maksimum 50 karakter alabilecek, ancak hafızada kullanılan karakter sayısı kadar yer tutacaktır. BÖLÜM KODU, CİNSİYET ve TELEFON ile belirtilen alanlar maksimum 4, 5 ve 16 karakter alabilen yazılar olabilecek. 1 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi

NOT: SQL de eğer veri tabanı adı, tablo adı, alan adı gibi herhangi bir nesnenin ismi birden fazla kelimeden oluşuyorsa MSSQL de kelimeler köşeli parantezler [ ] arasına, MySQL de kelimeler yatay tırnaklar `` arasına yazılır. Yani BÖLÜM KODU yerine MSSQL de [BÖLÜM KODU], MySQL de `BOLÜM KODU` kullanılır. Alan adları köşeli parantezler [ ] veya yatay tırnaklar `` arasına yazıldıktan sonra alan adlarında istenilen karakter kullanılabilir. [123*adı-soyadı] veya `123*adı-soyadı` geçerli bir alan adı tanımlamasıdır. 1.2. Kısıtlamalar Constraints Bir tablo oluştururken bazı alanlar zorunlu bazı alanların ise isteğe bağlı olması istenir. Bazı alanlar tekrarlanmamalı, bazı alanlar ise istenilen kadar tekrar edilebilmeli. Bazı alanlar tabloya girilmeden önce bazı kurallara uyuyor mu diye kontrol edilmeli. Bazı alanlar ise aslında başka tablodan referans alan alanlar olabiliyor. Bazı alanların ise başlangıçta varsayılan değerlerinin olmasını isteriz. İşte bütün bunları sağlamak için tablo oluştururken bazı kurallar uygulanır. a. NULL, NOT NULL: tablo oluştururken boş bırakılabilecek alanlar NULL ile boş bırakılamayacak yani zorunlu olan alanlar ise NOT NULL ile işaretlenmelidir. NULL ifadesi opsiyoneldir. Her hangi bir şey yazılmazsa NULL geçerlidir. Yani o alan istenirse boş bırakılabilecek. CREATE TABLE BÖLÜMLER BÖLÜM_KODU CHAR4 NOT NULL, BÖLÜM_ADI VARCHAR50 NOT NULL, ADRES VARCHAR50 NULL Burada Bölümler adında bir tablo oluşturulacak. BÖLÜM_KODU ile belirtilen alan maksimum 4 karakter alabilen bir yazı olabilecek ve boş bırakılamayacak. BÖLÜM_ADI ile belirtilen alan ise maksimum 50 karakter alabilecek, ancak hafızada kullanılan karakter sayısı kadar yer tutacaktır. Bu alan da bölüm_kodu gibi boş bırakılamayacak. Çünkü her ikisi de NOT NULL ile işaretlenmişler. ADRES ile belirtilen alan ise maksimum 50 karakter alabilecek ve isterse boş bırakılabilecek. Çünkü NULL ile işaretlenmiş. Adres alanı da bölüm_adı gibi kullanılan karakter sayısı kadar hafızada yer tutacaktır. b. PRIMARY KEY: Yukarıdaki BÖLÜMLER tablosuna dikkat edilirse BÖLÜM_KODU ile belirtilen alan aslında her bölüm için özeldir ve tekrarlanmamalıdır. Veritabanı yönetim sistemleri I dersinden hatırlayacağınız üzere buna birincil anahtar diyorduk. Tabloyu oluştururken aslında bunu belirtebiliriz. Bir alanın birincil anahtar olduğunu belirtmek için o alan için tip belirtecinden sonra PRIMARY KEY anahtar sözcüğü kullanılır. Not: Birincil Anahtar: Tablodaki bir kaydı diğer kayıtlardan ayıran ve tekrara izin vermeyen alandır. CREATE TABLE BÖLÜMLER BÖLÜM_KODU CHAR4 PRIMARY KEY NOT NULL, BÖLÜM_ADI VARCHAR50 NOT NULL, ADRES VARCHAR50 NULL 2 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi

Yukarıda dikkat edilirse BÖLÜM_KODU alanı tanımlanırken veri tipi belirtildikten sonra PRIMARY KEY kullanılmıştır. Bu durum, BÖLÜM_KODU alanının birincil anahtar olduğunu ifade ediyor. Bir tabloda sadece bir tane birincil anahtar bulunabilir. Ama bu bir tane birincil anahtar birden fazla alandan oluşabilir. Böyle bir durumda PRIMARY KEY tanımlaması aşağıdaki gibi yapılır. CREATE TABLE SINAVLAR DERS_KODU CHAR6 NOT NULL, ÖĞRENCİ_NO INT NOT NULL, VİZE TINYINT NULL, FİNAL TINYINT NULL, CONSTRAINT PK_SINAVLAR PRIMARY KEYDERS_KODU, ÖĞRENCİ_NO c. UNIQUE: Her ne kadar birincil anahtarlar ile tekrarı önleyebilsek de aslında birincil anahtar olmayan fakat yine de tekrar etmesini istemediğimiz alanlar olabilir. Böyle durumlar için UNIQUE anahtar sözcüğü kullanılır. Aşağıdaki örneği inceleyiniz. Çalışanlar adında bir tablo tanımlanmıştır. Bu tabloda birincil anahtar olabilecek NUMARA ve TC_NO adında iki alan mevcut. Ancak biz sadece birini birincil anahtar olarak belirliyoruz, fakat diğerinin de tekrarlanmamasını istiyoruz. Çalışanlar tablosunda görüldüğü gibi TC_NO alanı için veri tipi tanımlamasından sonra UNIQUE anahtar sözcüğü yazılmıştır. Bunun anlamı; TC_NO birincil anahtar değil ancak yine de tekrarlanmasına izin verilmeyecektir. Sadece bir defa girilmesine izin verilecektir. CREATE TABLE ÇALIŞANLAR NUMARA INT PRIMARY KEY NOT NULL, TC_NO DECIMAL11 UNIQUE NOT NULL, İSİM VARCHAR25 NOT NULL, SOYİSİM VARCHAR25 NOT NULL, TELEFON CHAR16 NULL Eğer iki alanın aynı anda tekrarlanması önlenmek istenirse bu durumda aşağıdaki gibi yapılır. CREATE TABLE POSTA_KODLARI POSTA_KODU INT PRIMARY KEY NOT NULL, İL VARCHAR25 NOT NULL, İLÇE VARCHAR25 NOT NULL, CONSTRAINT UQ_POSTA_KODLARI UNIQUE İL, İLÇE d. FOREIGN KEY: Şimdi de aşağıdaki öğrenciler tablosunu düşünün. Bu tabloda dikkat edilirse BÖLÜM alanı aslında başka bir tablodan referans alıyor. Veritabanı Yönetim sistemleri I dersinden de hatırlayacağınız üzere buna referans anahtar veya dış anahtar diyorduk. Yani ÖĞRENCİLER tablosundaki BÖLÜM alanı aslında BÖLÜMLER tablosundaki birincil anahtar olan BÖLÜM_KODU alanına referans ediyor. 3 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi

Öğrenciler tablosu için SQL kodunu yazacak olursak aşağıdaki gibi olacaktır. NUMARA INT PRIMARY KEY NOT NULL, İSİM VARCHAR25 NOT NULL, SOYİSİM VARCHAR25 NOT NULL, BÖLÜM CHAR4 FOREIGN KEY REFERENCES BÖLÜMLERBÖLÜM_KODU ON DELETE CASCADE ON UPDATE CASCADE NOT NULL, TELEFON CHAR16 NULL Yukarıdaki örnekte referans verilirken FOREIGN KEY kısmı isteğe bağlıdır. Yazılmazsa da olur. Önemli olan REFERENCES anahtar sözcüğünün yazılmış olmasıdır. Bir tabloda sadece bir tane birincil anahtar bulunabilir, fakat birden fazla yabancı anahtar bulunabilir. Bu durumda her referans için ayrı referans verilir. Yukarıdaki örnekte BÖLÜM alanının referansı belirtildikten sonra ON DELETE CASCADE ve ON UPDATE CASCADE ifadeleri kullanılmış. Bunun anlamı: Eğer referans edilen kayıt silinirse veya güncellenirse bu tabloda da aynı değişikliği yap demektir. Örneğin bölümler tablosundaki bölüm kodu BPR1 olan bölüm silinirse BPR1 bölümüne kayıtlı bütün öğrencilerde silinecektir. Eğer BPR1 olan bölüm kodu BBP1 olarak değiştirilirse öğrenciler tablosunda bölüm kodu BPR1 olan bütün öğrenciler için bölüm BBP1 olarak güncellenecektir. Eğer böyle bir durum istemiyorsak, yani bölümler tablosundan bir bölüm sildiğimizde öğrenciler tablosundaki o bölüme ait öğrencilerin silinmesini istemiyorsak ON DELETE CASCADE yerine ON DELETE NO ACTION yazmalıyız. Aynı durum güncelleme için de geçerlidir. Yani bölümler tablosundan bir bölüm kodu güncellenince, öğrenciler tablosundaki o bölüme kayıtlı öğrencilerin bölüm kodu güncellenmesin istiyorsak ON UPDATE CASCADE yerine ON UPDATE NO ACTION yazmamız gerekecektir. Eğer bölümler tablosundaki bir kayıt silinince öğrenciler tablosunda o bölüme kayıtlı öğrenciler silinmesin fakat bölüm kodu güncellenince öğrenciler tablosundaki o bölümün kodları güncellensin istiyorsak bu durumda ON DELETE NO ACTION ON UPDATE CASCADE şeklinde yamalıyız. Aynı mantık tersi için de geçerlidir. Referans anahtar tanımlanırken aşağıdaki kural göz önüne alınır. ALAN_ADI VERİ_TİPİ [FOREIGN KEY] REFERENCES REFERANS_TABLO_ADIREFERANS_ALAN_ADI ON DELETE { CASCADE NO ACTION} ON UPDATE { CASCADE NO ACTION} Foreign Key Yabancı anahtar tanımlanırken alan tanımından sonra yazılabildiği gibi daha sonrada aşağıdaki gibi de yazılabilirdi. CONSTRAINT FK_BÖLÜM FOREIGN KEY BÖLÜM REFERENCES BÖLÜMLERBÖLÜM_KODU ON DELETE CASCADE ON UPDATE CASCADE 4 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi

Yani yukarıdaki tablo aşağıdaki gibi de tanımlanabilirdi. NUMARA INT PRIMARY KEY NOT NULL, İSİM VARCHAR25 NOT NULL, SOYİSİM VARCHAR25 NOT NULL, BÖLÜM CHAR4 NOT NULL, TELEFON CHAR16 NULL, CONSTRAINT FK_BÖLÜM FOREIGN KEY BÖLÜM REFERENCES BÖLÜMLERBÖLÜM_KODU ON DELETE CASCADE ON UPDATE CASCADE e. CHECK: sadece MSSQL de çalışır Öğrenciler tablosunda TELEFON alanına dikkat edin. Telefon numarası için 16 karakter yer ayrılmış. Telefon yazılırken maksimum 16 karakterlik yer kullanıldıktan sonra istenildiği şekilde girilebilir. Aslında bu istenen bir durum değildir. Örneğin kimisi numaralar arasına nokta, kimisi tire veya bir başkası boşluk bırakabilir. Dahası, kimisi şehir kodlarını parantezler arasına alırken kimisi almaz, kimisi başına sıfır eklerken kimisi de eklemez. Bütün bunlar aslında istenmeyen durumlardır. Sıralamaların veya aramaların doğru şekilde yapılabilmesi için kayıtların aynı tipte olması gerekmektedir. Böyle durumları kontrol etmek için CHECK anahtar sözcüğü kullanılmaktadır. Aşağıda telefon için örnek bir kontrol yazılmıştır. TELEFON CHAR16 CHECK TELEFON LIKE '[0][0-9][0-9][0-9] [0-9][0-9][0-9] [0-9][0-9] [0-9][0-9]' Bir başka örnek olarak kan gruplarını verebiliriz. Bilindiği gibi bir insanın kan grubu A, B, 0 veya AB olabilir. Bir diğer örnek olarak ta cinsiyet olabilir. Cinsiyet sadece bay, bayan şeklinde yazılsın istiyorsak bunları veritabanına girmeden önce bunlar haricinde bir şeyin yazılmış olup olmadığını aşağıdaki gibi kontrol edebiliriz. KANGRUBU CHAR2 CHECKKANGRUBU IN 'A','B','0','AB' NOT NULL CİNSİYET CHAR5 CHECKCİNSİYET IN 'BAY', 'BAYAN' NOT NULL Bir alan kontrollü oluşturulmak istenince aşağıdaki kural göz önüne alınmalıdır. ALAN_ADI VERİ_TİPİ CHECK{KOŞUL İFADESİ} UYARI: Koşul ifadeleri daha sonra ayrıntılı bir şekilde işlenecektir. CHECK anahtar sözcüğü alan tanımlanırken yazılabildiği gibi aşağıdaki şekilde de tanımlanabilir. Görüldüğü gibi koşul ifadesi maaş alanı tanımladıktan sonra başka bir satırda yazılmış. CREATE TABLE KİŞİLER NUMARA INT PRIMARY KEY, ADI VARCHAR25 NOT NULL, SOYADI VARCHAR25 NOT NULL, MAAŞ SMALLMONEY NOT NULL, TELEFON CHAR16 NULL, CINSIYET BIT NULL, CONSTRAINT CHK_MAAŞ CHECKMAAŞ BETWEEN 1000 AND 2000 5 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi

f. DEFAULT: bazen bazı alanların varsayılan değerlerinin olmasını isteriz. Yani eğer farklı bir şey belirtmiyorsak varsayılan değer otomatik olarak kayıt için girsin isteriz. CREATE TABLE KİŞİLER NUMARA INT PRIMARY KEY, ADI VARCHAR25 NOT NULL, SOYADI VARCHAR25 NOT NULL, BÖLÜM CHAR4 DEFAULT 'BPR1' NOT NULL Bu örnekte bölüm için bir veri belirtmiyorsak bölüm alanına varsayılanda BPR1 girilecektir. MSSQL de DEFAULT anahtar sözcüğü alan tanımlanırken yazılabildiği gibi aşağıdaki şekilde CONSTRAINT ile beraber de tanımlanabilir. CREATE TABLE KİŞİLER NUMARA INT PRIMARY KEY, ADI VARCHAR25 NOT NULL, SOYADI VARCHAR25 NOT NULL, BÖLÜM CHAR4 NOT NULL, CONSTRAINT DEF_BOLUM DEFAULT 'BPR1' FOR BÖLÜM g. IDENTITY veya AUTO_INCREMENT: Sipariş numarası gibi bazı numaraların otomatik olarak üretilmesini isteyebiliriz. Access teki otomatik sayı alanını hatırlayınız. Böyle durumlar için MSSQL de IDENTITY, MySQL de AUTO_INCREMENT anahtar sözcüğü kullanılır. IDENTITY kullanılırken yanına parantez içerisinde başlama ve artış miktarı belirtilebiliyor. Eğer bir şey belirtilmezse 1 den başlayıp birer birer arttıracaktır. MSSQL CREATE TABLE SİPARİŞLER SİPARİŞ_NO INT PRIMARY KEY IDENTITY100,1, ÜRÜN_ADI VARCHAR25 NOT NULL, SİPARİŞ_TARİHİ DATETIME NOT NULL Yukarıdaki örnekte sipariş numarası 100 den başlayacak ve her kayıt için birer birer arttırılacaktır. MySQL CREATE TABLE SİPARİŞLER SİPARİŞ_NO INT PRIMARY KEY AUTO_INCREMENT, ÜRÜN_ADI VARCHAR25 NOT NULL, SİPARİŞ_TARİHİ DATETIME NOT NULL MySQL de AUTO_INCREMENT in varsayılan başlangıç değeri 1 dir. Değiştirmek için örneğin 100 yapmak için aşağıdaki şekilde kod yazılır. ALTER TABLE tablename AUTO_INCREMENT = 100 NOT: Herhangi bir tabloda sadece bir IDENTITY veya AUTO_INCREMENT alan tanımlanabilir. NOT-2: MySQL de AUTO_INCREMENT olan bir alan birincil anahtar olmak zorundadır. 6 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi

1.3. Tablo Silme Tablo silmek çok basittir. DROP TABLE tablo_adı komutu yazılarak çalıştırılır. İsmi yazılan Tablo tüm kayıtlarıyla yok edilir. Örnek: DROP TABLE ÖĞRENCİLER Burada öğrenciler tablosu tüm kayıtlarıyla yok edilecektir. 7 Bartın MYO Bilgisayar Programcılığı Öğr. Gör. Bayram AKGÜL 2017-2018 Güz Dönemi