PRIMARY KEY etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PRIMARY KEY etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Aralık 2016 Pazar

68. SQL AUTO INCREMENT Kullanımı

  • Bazı veritabanı işlemlerimizde her bir kaydın eşssiz(unique) bir değeri olmasını isteyebilir, ilerideki işlemlerde bu değer üzerinden datalarımıza erişmek isteyebiliriz. Bu gibi durumlarda tablolarımızda bir kolonu sayı tipinde yapıp bir kural çerçevesinde (örneğin her yeni kayıt ekleme işleminde 1 arttır gibi) değiştirerek bunu sağlayabiliriz.
  • Sadece sayılarda kullanılan bu Auto-Increment özelliği ile değerimizin otomatik artmasını sağlayarak benzersiz bir değere atamış oluruz.
Örnek;

CREATE TABLE  Meyveler
(
id int IDENTITY(1,1) PRIMARY KEY,
adi varchar(20),
renk varchar(10),
tur varchar(20)
)

  • MsSQL de otomatik sayı arttırım IDENTITY(value1,value2) özelliği ile yapılmaktadır.
  • value1 başlangıç değerini belirtir.
  • value2 ise artış miktarını göstermektedir.
  • Yukardaki örneğimizde tablodaki id alanı 1 den başlayacak ve birer birer artacak şekilde insert edecek. Örneğin id alanımız 1000den başlasın ve sadece çift sayılar tutsun istiyorsak şu şekilde tanımlamalıyız: IDENTITY(1000,2)

28 Aralık 2013 Cumartesi

60- SQL Primary Key Kullanımı

  • Primary Key tablomuzdaki kayıtları sütün aracılığıyla eşşiz kayıt haline getirmemizi sağlar.
  • Primary Key(Birincil Anahtar) 
  • Primary Key olan alanlar Null değerler olamaz ve bu bölüme aynı değerler girilemez.  
  • Genelde otomatik artan değerler olarak kullanılır. Bu otomatik artmayı da identity komutu ile gerçekleştirilir.  
  • Identity komutundan sonra işlemin kaçtan başayacağı ve kaçar kaçar artacağı belirtilir. Identity(1,1) 1'den başlayacağını ve 1'er 1'er artacağını gösterir.
  • Primary Key tanımlamak aslında bir nevi Constraint‘tir yani bir nevi kısıtlama yapmaktır.

Tabloyu Create ederken;
 
BirdId int identity(1,1) NOT NULL,

Tabloyu Alter ederken,

ALTER TABLE Animals ADD PRIMARY KEY (BirdId)

bu şekilde primary key kullanabiliriz.

Primary Keyi tablomuzdan kaldırmak için ise;

ALTER TABLE Animals
DROP CONSTRAINT pk_BirdId








 

20 Nisan 2013 Cumartesi

59- SQL UNIQUE Kullanımı

Bazı durumlarda tablomuzda bir sütünün eşsiz yani tekrarlanmayan olmasını isteriz.
Bunun için bu tür alanlar tanımlanırken Unique Key contsraint tanımı yapılır.

Primary key den farkı ise Unique key bir tabloda birden fazla olmasıdır,
primary key ise tabloda sadece 1 adet olabilir.

Ayrıca Unique Key Contstraint olarak tanımlanmış bir alan NULL olabilir,
fakat değeri null dan farklı olursa kesinlikle daha önce girilen değerlerden farklı olmak zorundadır.

Not: Primary Key alanı tanımlandığında otomatik olarak Unique olarak oluşur.

ÖRNEK: Yeni oluştururken kullanımı,

CREATE TABLE Personel
(
No int NOT NULL UNIQUE,
Soyad varchar(255) NOT NULL,
Ad varchar(255),
Adres varchar(255),
Sehir varchar(255)
)

ÖRNEK: Var olan tabloda sonradan ekleme yaparken,

ALTER TABLE Personel
ADD UNIQUE (No)

20 Ocak 2013 Pazar

SQL Server da Temp(Geçici) ve Değişken(Variable) Tabloların Kullanılması

  • SQL Serverda Geçici tablo oluştururken iki seçeneğimiz bulunmakta. Bunlar kullanım şeklinize göre farklılık gösterebilir.
  • Birinci kullanım şeklimiz geçici tabloları (Temporary tables).
  • İkinci kullanım şeklimiz değişken tablolar (Table variables). 
  • Bu iki yönteminden birbirlerine karşı avantaj ve dezavantajları bulunmaktadır.
1-) Geçici Tablolar (Temporary Tables)
  • Temp Tabloların normal tablolardan başlıca farklı system database lerden olan tempdb içinde tutuluyor olmalarıdır.
  • Oluşturduğumuz tablonun temp table olduğunu SQL Servera bildirmek için başına '#' işareti koyarız.
  • SQL Serverda geçici tablolara sadece bulundukları ortamlardan erişilebilir. Eğer temp table a global olarak diğer ortamlardan da erişilmesini istiyorsak o zaman global temp table kullanmamız gerekmektedir.
  • Global temporary tables (Genel geçici tablolar) tanımlamak için temp table dan farklı olarak CREATE TABLE dediktenden sonra tablomuzun ismini vermeden önce '##' (2 adet) koyarız.
  • Global temporary tables ın bütün özellikleri temp table ile aynıdır.
  • Ayrıca oluşturduğumuz tabloyu kullanıdıktan sonra silmeyi unutmayalım. Unutsak dahi oturum kapandığında SQL Server otomatik bütün temp table ları silecektir. 
SÖZ DİZİMİ:

CREATE TABLE #TemporaryTable(
     number INT PRIMARY KEY,
     name NVARCHAR(50),
     surname NVARCHAR(50)
)





--Direk sorgu sonucu gelen listeyi temp tabloya eklemek için;

SELECT * INTO #TemporaryTable FROM Person


--Tablomuzu silmek için;
DROP TABLE #TemporaryTable  

NOT: SQL Serverda '#' ile başlayan tablolar SQL Server durduğu ana kadar saklanır. Fakat tablolarımızı tempdb.. altına kendimiz normal tablo ekler gibi eklersek tablolarımız SQL Server kapatılana kadar orda saklanır. SQL Server kapatıldığında temp tablolarımızın silinmesini istiyorsak bu yapıyı kullanabiliriz.


  1-) Değişken Tablolar (Table Variables)

  •  Değişken tablolarda aslında geçici tablolara benzemektedir. Fakat fark olarak oluşturduğumuz tablonun bir kısmı tempdb de bir kısmında Sunucu olarak kullanıdığımız SQL Server belleğinde tutulmaktadır.
  • Değişken tablolarda da geçici tablo gibi bir yapı vardır. Değişken tablo oluşturduğumuz zaman tablo isminin başına '@' işareti koyarız.
  • Değişken tablolara erişim geçici tablolara göre daha hızlı olmaktadır. Fakat değişken tablolara fazla veri yüklemek belleği dolduracağından performans kaybına da yol açabilir.
  • Değişken tablolar, kullanıcı tanımlı fonksiyonlar (User Defined Functions) içinde kullanılabilirken, geçici tabloların UDF içinde kullanımı mümkün değildir. 
  • Stored Procedure ler içinde 2 tablo yapımızıda kullanabiliriz.
  • Değişken tablolar üzerinde index tanımı yapamayız fakat geçici tablolar üzerinde yapabiliriz.
  • Değişken tablolar tanımlandıktan sonra (declare) alter table ile değiştiremeyiz.
 SÖZ DİZİMİ:

DECLARE @TemporaryTable TABLE (
     number INT PRIMARY KEY,
     name NVARCHAR(50),
     surname NVARCHAR(50)
)

3 Temmuz 2012 Salı

41.SQL INSERT.. VALUES Kullanımı

  • INSERT ifadesini VALUES ile birlikte kullanarak istediğimiz tabloya yeni kayıt atabiliriz. 
  • Dikkat etmemiz gereken eklediğimiz verilerin eklediğimiz tablodaki sütün tanımlamalarına uyumlu olması yani VARCHAR tipinideki bir sütuna INTEGER değeri yazmamalıyız.
ÖRNEK: Sorgumuzda Nakliyatçı firma listemize yeni bir firma ekleyelim. ShipperID değerini girmedik. Çünkü ShipperID sütunu Primary Key olarak tanımlanmış. Yani default olarak 1 arttırım ile otomatik kayıt atmaktadır.

SORGU:SELECT * FROM Shippers
INSERT Shippers(CompanyName,Phone)
VALUES('IstanbulKargo','(0232) 456-89-89')
SELECT * FROM Shippers


Ders 42'ye geçebilirsiniz.

12 Mayıs 2012 Cumartesi

26. SQL JOIN İşlemleri

  • Bundan önceki derslerimizde hep tek tablo üzerinde çalıştık. 
  • Bazı durumlarda daha anlamlı ve geniş sonuç kümeleri elde edebilmek için birden fazla tablonun verilerine ihtiyacımız olabilir. 
  • Bunun için sorgularımızda iki farklı anahtar kelime daha kullanırız. 
  • Bu anahtar kelimeler JOIN ve ON ifadeleridir. 
  • JOIN ifadesi ile hangi tabloları ve nasıl birleştireceğimizi belirtiriz. 
  • ON ifadesi ile de birleştireceğimiz tabloları hangi alanlar üzerinden bağlayacağımıza karar veririz.
  •  Genelde tablolar Birincil anahtar (Primary Key) ve Yabancı anahtar (Foreign key) üzerinden birleştirilsede diğer alanlar üzerindende birleştirilebilir. Sadece bu alanların aynı türden veri içerdiğinden emin olmanız yeterlidir. 
  • Birincil anahtar (Primary Key) her kayıt için benzersiz (unique) bir değer taşıyan alandır. Örneğin Kişi bilgilerinin tutulduğu bir tabloda TC Kimlik No herkesin farklı olduğu için Primary key olarak kullanılabilir. TC Kimlik No herkesin farklı olduğu için bütün bilgiler bu no üzerinden farklı tablolarda bilgiler tutulabilir.
Ders 27'ye geçebilirsiniz.