CREATE (NESNE OLUŞTURMAK)
Create deyimini biz server nesnesi eklemek için kullanırız. Bu nesne bir user,veritabanı, kullanıcı adı, rule, sp(stroed procedure gibi nesnesler olabilir.
Yazımı
FileName : Oluşturulacak veritabanı dosyasının kaydedileceği yer ve yolu.
Size : Veritabanı dosyasının boyutu.
MaxSize : Dosyanın maksimum alacağı değer.
FileGrowth : Dosyasnın artma boyutu .
CREATE DATABASE Veritabanı_Adi
[ ON
<FILENAME> ,
<SIZE>,
<MAXSIZE>,
<FILEGROWTH>]
[ LOG
<FILENAME>,
<SIZE>,
<MAXSIZE>,
<FILEGROWTH > ]
Şeklindedir.
Kısa Bir örnek verisek
create database erkan2013
go
Create Table : Veritabanı üzerinde tablo oluşturma ve tablo ile ilgili özelliklerinin tanımlanması için kullanılır.
CREATE TABLE Tablo_Adi (
Alan_Isimleri Veri_Tipleri [Default ifade] [Alan Kısıtlaması]
[Tablo_Kısıtlamalar ]
) Alan Ismi : Oluşturulacak kolona verilecek isim . Veri_Tipler : Oluşturduğumuz alanın veri tipi char, varchar, nvarchar, integer, decimal, double, datetime, text , vb. Bazı veri tipleri veritabanından veritabanına değişmektedir. Eğer veri karakter ise char , varchar(karakter uzunluğu) vb, çok uzun karakterler için text , sayı ise int , küsuratlı sayı ise decimal yada double , tarih alanı için datetime gibi tipler kullanabilirsiniz.
Alan Kısıtlaması : İlgili alanın boş geçilip geçilemeyeceği durumu. NULL boş geçilebilir, NOT NULL boş geçilemez ilgili alana kayıt girmek zorundasınız.
Tablo_Kısıtlamaları : Tabloda yapacağımız kısıtlamalardır. Primary Key, Foreing Key, Check lerdir.
create table kategori
(KategoriNo int not null identity(1,1),
ustkategori int not null,
ad varchar(30)not null,
aciklama text,
CONSTRAINT [PK_KategoriNo] PRIMARY KEY CLUSTERED
(
KategoriNo
)
)
Örnek 2)
CREATE TABLE Personel (
PersonelId int NOT NULL ,
TCKimlikNo char (11) NOT NULL ,
Adi varchar (30) NOT NULL ,
Soyadi varchar (50) NOT NULL ,
Maas decimal(18, 2) NOT NULL DEFAULT (0), // Bu alana değer atanmaması durumunda ilk değer verme ile 0 değerini atanmış oldu
PDepartmanId int NOT NULL ,
Cinsiyet char (1) NULL ,
CONSTRAINT PK_Personel PRIMARY KEY CLUSTERED(PersonelId), //Primary Key tanımı
CONSTRAINT IX_Personel UNIQUE CLUSTERED ( TCKimlikNo ) , //TC Kimlik numarasını istemiyoruz.
CONSTRAINT FK_Personel_Departman FOREIGN KEY (PDepartmanId) REFERENCES Departman (DepartmanID), //Başka bir tablodaki bir alanı referans vererek ikincil anahtar (foreing key) tanımlama
CONSTRAINT CK_Personel CHECK (Cinsiyet = ’K’ or Cinsiyet = ’E’) //Cinsiyet alanına ’E’ ve ’K’ değerleri dışında değer atanmaması
)
Aynı şekilde View, Index gibi nesnelerde oluşturablirsiniz.
Örnek : Personel tablosundaki bir personele ait mal bilgilerinin tutulacağı bir tablo oluşturalım.
Bu örnekte dikkat edilecek kısımlar : Personel tablosunda bir personelin silinmesi durumunda PersonelMal tablosunda o personele ait bilgilerin silinmesi için uygun ikincil anahtar (foreing key) tanımlayalım. Bunlar
ON DELETE CASCADE : Referans edilen tablodaki kayıt yada kayıtların silinmesi durumunda referans alan tabloda ilişkili kayıtların da silinmesi .
ON UPDATE CASCADE : Referans edilen tablodaki kayıt yada kayıtların guncellenmesi durumunda referans alan tabloda ilişkili kayıtların da güncellenmesi.
Bunun için gerekli kodları yazalım..
CREATE TABLE PersonelMal (
MalId int NOT NULL ,
PPersonelId int NOT NULL ,
Adi nvarchar (50) NOT NULL ,
Bedeli decimal(18, 2) NOT NULL ,
CONSTRAINT PK_PersonelMal PRIMARY KEY CLUSTERED (MalIdMalId, PPersonelId ), // Birincil anahtarı (Primaty key) tanımlarken sadece tek alan olması gerekmez.Bu iki veya daha fazla alanda olabilir.
CONSTRAINT FK_PersonelMal_Personel FOREIGN KEY(PPersonelId) REFERENCES Personel (PersonelId) ON DELETE CASCADE //Personel tablosundaki ilgili kayıt silinmesi durumunda ona ait kayıtıların da silinmesi için gerekli tanımlama.
)
Create deyimi ile aynı zaman login veya user, veya her ikisini aynı satırda oluşturabilir. Bir user Doman User, Domin Group veya etki alanındaki başka rollerle login olabilir. Bu login ile birde fazla user olabilmektedir. Mesala Bir web sitesinin veritabanı login olabilmek iiçin genel bir misafir tanımlanabilir.
use master
go
CREATE LOGIN weblogin WITH PASSWORD='1234'
go
--weblogin için için bir user oluşturalım..
Use deneme
Create USER webUSER FOR LOGIN weblogin
go
Eğer kullanıcı adı ve login aynı ise for login deyimine gerek kalmaz.
--erkan2014 tabanı için bir dene isimli login ve user oluşturalım..
Use erkan2013
go
Create USER dene
go
ALTER (Nesnelerde Değişiklik Yapmak)
Daha önceden oluşturulmuş bir nesne özelliğinin değiştirilmesini sağlar.
Genel Yazımı
ALTER nesne nesne_adi değişim_cümlesi
Örnek:
ALTER TABLE PERSONEL
ADD BABA_AD varchar(20) NOT NULL
Bu şekildeki bir yazımla PERSONEL tablosuna BABA_AD sütunu eklenmiştir. NOT
NULL ile de bu sütuna veri girişi zorunlu hâle getirilmiştir.
Örnek
ALTER TABLE PERSONEL
ALTER COLUMN AD varchar(15) NOT NULL
Bu yazım ile de varolan AD sütununun alabileceği karakter sayısı 15 olarak
değiştirilmiş ve veri girişi zorunlu hâle getirilmiştir.
DROP (Nesne Silmek)
Bir nesnenin silinmesini sağlayan komuttur. DROP komutu tüm nesneler için
kullanılır.
Genel Yazımı
DROP nesne nesne_adi
Örnek:
DROP TABLE PERSONEL
Bu şekilde bir yazımla PERSONEL tablosu silinmiş olur.
Örnek 2
DROP DATABASE ERKAN2013
erkan2013 isimli veritabını siler
Bir sonraki yazımızda görüşmek üzere.