TSQL Create, Drop, Alter Deyimi

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.

 

 

 

The file '/Custom/Widgets/Calendar/widget.cshtml' does not exist.The file '/Custom/Widgets/Category list/widget.cshtml' does not exist.The file '/Custom/Widgets/Tag cloud/widget.cshtml' does not exist.The file '/Custom/Widgets/Page List/widget.cshtml' does not exist.The file '/Custom/Widgets/Month List/widget.cshtml' does not exist.