Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: alanin arasinda database departman durumunda ilgili kayitlarin olmasi personel primary referans server silinmesi tablodaki veritabani ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 10.2.2005
Okunma Sayısı : 77915
Yorum Sayısı : 3     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 29.3.2024
Turhal Temizer
Mac OS/X Removing CUDA 29.3.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 29.3.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 29.3.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
SQL Diline Giriş ve Create Komutu
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Yapılandırılmış sorgulama dili SQL(Structured Query Language). Bilgisayarda tutulan verilerin kontrol edilmesi, erişilmesi, kullanılması vb işlemlerin gerçekleşmesi için zaman içinde standartlarının oluşturulduğu veritabanı sorgulama dili. Veritabanı mantığı olmadan önce veriler çok farklı şekillerde dosyalarda tutuluyordu. Dosyalarda tutulmasının avantajları olduğu gibi dezavantajları da vardı. Özellikle:

-Verilerin tutarsızlığı ve tekrarlanmasının önlenememesi

-Veriye erişme ve veriyi paylaştırmada yaşanan güçlükler

-Veriyi saklama , yedeklemede yaşanan zorluklar ve güvenliğinin tam olarak sağlanamaması

Veritabanının avantajları

-Verilerin merkezi denemetimde tutulabilmesi

-Veri tutarlılığı ve veri tekrarının minimum orana indilmesi

-Veriye erişimde kolaylık sağlaması

-Veri depolama, saklama ve yedeklemenin kolaylıkla yapılabilmesi

-Verinin güvenli bir şekilde paylaşılabilmesi

-Standarlarının olması

-Tasarımın çok kolay olması .

SQL ’in kullanıcılar arasında rağbet görmesiyle pazar payında yeri artı. Bundan dolayı firmalar kullanıcının sql’i daha rahat kullanabilmesi için var olan standart SQL ’e  kendilerine göre standart olmayan fonksiyon ve özellikler eklediler. Ve bir nevi kendi sql araçlarını oluşturdular. Örneğin Oracle PL-SQL, Ms SQL Server T-SQL , Borlanda InterBase ... Projenizdeki sql cümlelerinin bütün veritabanlarında çalışmasını istiyorsanız daha yalın olan ANSII SQL ’ i kullanmalısınız.Bu makalede kullanılacak bütün sql cümleleri Microsof SQL Server ’da kullanacak ve daha çok  Transact SQL üzerine yoğunlaşacağız. Makalede Transact SQL’i  t-sql olarak kullanacağım.

SQL komutları işlevlerini göre gruplandırırsak:

DDL (Data Definition Language)   Veri tanımlama komutları

  • Create
  • Alter
  • Drop
DML (Data Manuplation Language)  Veri düzenleme komutları

  • Select
  • Insert
  • Update
  • Delete
DCL (Data Control Language) Veri kontrol komutları

  • Grant
  • Revoke
  • ....
Create Database : Veritabanı oluşturmak için kullanılır.

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 > ]

Örnek: Yeni bir veritabanı ve onun log dosyasının yaratılması.

CREATE DATABASE cSharpNedir

ON (

NAME = cSharpNedir_dat,

FILENAME = ’f:\program files\microsoft sql server\mssql\data\cSharpNedirdat.mdf’,   

SIZE = 10MB,            

MAXSIZE = 50MB,      

FILEGROWTH = 5MB ) 

      LOG ON (

NAME = ’cSharpNedir_log’,

FILENAME = ’f:\program files\microsoft sql server\mssql\data\cSharpNedirLog.ldf’, 

SIZE = 5MB, MAXSIZE = 25MB,

FILEGROWTH = 5MB )

Kod 1- Create database

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.

Örnek : Departman isimli bir tablonun oluşturulması.

Bu örnekte dikkat edilecek kısımlar : Bir alanın otomatik olarak artmasını istiyorsak ilgili alan tanımlanırken alan kısıtlamasına IDENTITY (Başlangıç değeri , Kaçar kaçar artacağı)  ifadesinin eklenmesi gerek. Diğer bir husus alana ilk değer verme; DEFAULT () ifadesi ile alana ilk değer verilir.Eğer ilgli alan boş geçilirse yani değer atanmazsa ilk değeri atanacaktır. 

CREATE TABLE Departman

( DepartmanID int IDENTITY (1, 1) NOT NULL ,    //DepartmanId birden başlayıp birer birer otomatik olarak artacaktır.

DAdi nvarchar (20) DEFAULT(’’) ,                       //DAdi alanına değer atanmaması durumunda NULL değeri yerine ’’ (boşluk) atanması

KurulusTarihi smalldatetime NULL ,                   //smalldatetime t-sql özgu bir veri titpidir.Standarı DateTime 

CONSTRAINT PK_Departman PRIMARY KEY CLUSTERED ( DepartmanID )  //İlgili primary key tanımı

)

Kod 2- En yalın bicimde create tablo ifadesi

Örnek: Tabloda çeşitli kısıtlamalar (Constrains) oluştururulması.  Ve iki tablo arasında ikincil anahtarlar(foreing key) tanımlaması.

Bu örnekte dikkat edilecek kısımlar : Tekrarlanması istenmeyen alanların tekil (unique) tanımlanması. Bir alana belli değerler dışında değer girilmesi istenmiyorsa kısıtlama  CHECK (Alan=’Deger1’ , Alan=’Deger2’, ...,Alana=2Deger2’)  olarak tanımlanmalıdır.

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ı

 )

Kod 3- Tabloda kısıtlamaların tanımlanması ve iki tablo arasında ilişki kurulması

Ö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.

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.

)

Kod 4- Master detay tablolarda iki tablo arasındaki foreing key in on delete cascade olarak tanımlanması.

Oluşturduğumuz tabloların MS SQL Server Enterprice Menegerda diyagramların görüntüsü.

Create View(Görünüm) :Fiziksel olarak olmayan fakat çeşitli sorgular sonucunda elde edilen verilerin sanal bir tablo olarak gösterilmesini sağlayan yapılar. Bu yapıların avantajı; veriye erişimi daha rahat kılmak ve kullanıcının asıl tablolarda değişiklik yapmasını engellemek. 

CREATE VIEW View_Adi AS Sorgu Cümlesi [View_Kısıtlaması]

View_Adı : View yapısına vereceğimiz isim

Sorgu_Cümlesi : View oluştururken kullanacağımız sorgu cümlesi

View_Kısıtlaması :View işleminde hata oluşması durumundaki davranış şekilleri .Bunlar [WITH CHECK OPTION CONSTRAINT] view yapısında hata olmasını engeller bir diğeri [WITH READ ONLY] View yapısınde sadece okuma yapılabileceğini belirtir. Bunun dışındaki durumlarda hata vermesini sağlar.

Örnek: Belli bir departmanda maaşı 1200 den küçük olan personelin maaşını 25 ile toplayıp yeni bir maaş hesaplayan bir view oluşturma. Burda kullanmış  olduğumuz select ve  inner join terimlerini daha sonra ayrıntılı olarak inceleyeceğiz.

CREATE VIEW YeniMaas  AS

SELECT TCKimlikNo, Adi, Soyadi, (Maas + 25) as Y_Maas  //as Yardımcı terimi ile (Maas+ 25) de oluşacak sonuca yeni isim veriyoruz

FROM Personel

INNER JOIN Departman ON DepartmanId = PDepartmanId  // Departman ve Personel tabloları arasındaki birleştirme işlemi

WHERE Maas < 1200 AND PDepartmanId= 1

WITH CHECK OPTION CONSTRAINT ck_YeniMaas  //  View de hata olmasını engelleyen ilgili kısıtlama

Kod 5- Create View

Create Index : Tabloda bulunan belirli sutunlardaki değerlere hızlı erişim için kullanılan sıralama tekniği .Ayrıca indexin tekil (unique) özelliği verilerek sutundaki verinin tekrarlanmasını önler.  Örneğin birincil anahtarlar (primary key) da aslında bir indextirler. Tanımlama işlemi yapılırken otomatik olarak indexlenirler.

CREATE INDEX Index_Adi ON Tablo_Adi(Alanlar)

Tablo_Adi : Indexi tanımlayacağımız tablo adı.

Alanlar : İlgili tablodaki indexleyeceğimiz alan isimleri

CREATE INDEX Ix_Personel_AdSoyad ON Personle(Adi, Soyadi); // Indek oluştururur. Erişimde kolaylık sağlar.

CREATE INDEX Ix_Personel_TCKimlik ON PERSONLE (TCKimlikNo ) UNIQUE // Unique .İlgili alanın tekrarlanmasını önler

 Şekil 6- Create Index.

Bu makalemizde create komutunun genel kullanımına örnekler verdik. Bir sonraki makalemizde Alter ifadesini inceleyeceğiz.

Makale:
SQL Diline Giriş ve Create Komutu ADO.NET ve SQL Feryat Olcay
  • Yazılan Yorumlar
  • Yorum Yaz
KAS
12
2009
Bunu c# ile birlikte nasıl kullanabilirim yardımcı olursanız sevinirim..
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor