| | Sql Giriş SQL GİRİŞ Yapısal Sorgulama Dili olan SQL, ilişkisel veritabanlarındaki bilgileri sorgulamak için standart kullanımı olan bir dildir. Standart bir dil olmasına karşılık, çeşitli veritabanlarında SQL kullanımları arasında farklılıklar vardır. SQL komutları ile, tablolara yeni kayıt girme, varolan kayıtları sorgulama (arama ve listeleme), varolan bilgileri değiştirme ve varolan kayıtları silme işlemleri yapılabilir. Sorgularımıza geçmeden önce bir kaç kavramdan bahsedelim. Veri tabanı (Database); Veri tabanı düzenli bilgiler topluluğudur. Kelimenin anlamı bilgisayar ortamında saklanan düzenli verilerle sınırlı olmamakla birlikte, daha çok bu anlamda kullanılmaktadır. Bilgisayar terminolojisinde, sistematik erişim imkanı olan, yönetilebilir, güncellenebilir , taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir başka tanımı da, bir bilgisayarda sistematik şekilde saklanmış, programlarca istenebilecek veri yığınıdır. Tablo (Table); İçerisinde verilerin bulunduğu, satır,sütun mantığla oluşturulmuş hücrelere tablolar denir. Burada kolonlara vereceğimiz isimlerle bilgiye ulaşım sağlanır. Sql sorgularını Sql Server 2005 platformunda deneyeceğiz. Bunun için sistemimizde kurduğumuz Sql server 2005’i açalım.  Sql Server Management Studio’yu tıklayarak açalım. Karşımıza login penceresi gelecektir. Connect butonuna basarak bağlantımızı sağlayalım. Sql Server platformunu açtıkdan sonra sağ üstte bulunan New Query butonuna basalım. Ekranda sorgu yazacağımız boş bir alan gelecektir.  Sorgu alanına kodumuzu yazdıktan sonra klavyeden F5 tuşuna basarak sorgumuzu çalıştırabiliriz. Bunun dışından Sql Server platormunda Execute butonuna basarakta sorguları çalıştırabilirsiniz.  DATABASE OLUŞTURMA CREATE DATABASE veritabani_adi Sorgusu ile database oluşturulur. Uygulama: CREATE DATABASE OkulProgrami Yazıp F5 tuşuna bastığımızda OkulProgrami adında bir veri tabanımız oluşacaktır.  Artık OkulProgrami adında bir veri tabanımız oluşmuştur. Veri tabanımızı aktif olarak kullanabilmek için; USE Veritabani_adi Komutunu kullanmamıs gerekmektedir. USE OkulProgrami Yazdiktan sonra çalıştıralım artık işlemlerimiz OkulProgrami adındaki veritabani ile ilgili işlemleri yapabiliriz. Yazdığımız satırları yorum satırı haline getirmek için satır başına “ -- ” yazmamız yeterlidir. Birden fazla satırı aynı anda yorum satırı haline getirmek istersek “ /* */” ifadelerinin arasına yazmamız yeterlidir. --Create Database OkulProgrami Yukarıdaki satır çalışmayacaktır Veri tabanımızı oluşturduğumuza göre artık tablolarımızı oluşturabiliriz. Tablo oluşturmada önemli iki olay vardır. Birincisi kolon isimlerini verirken bazı kurallara uymamız gerekir, ikincisi ise o kolonun veri tipi (data type)’ıdır. Tablo oluşturmadan önce veri tiplerimizi tanıyalım. Veri Tipi Adı Açıklama Kapladığı Alan Ø Exact Numeric Data Tipleri Bigint -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasındaki tam sayıları tutar. 8 Bayt int -2,147,483,648 ile 2,147,483,647 arasındaki tam sayıları tutar.En çok kullanılan veri tiplerinden biridir. 4 Bayt Smallint -32,768 ile 32,767 arasındaki sayıları tutar. 2 Bayt Tinyint 0 – 255 arası sayıları tutar. 1 Bayt Decimal (p,s) Decimal ondalık veya tam butun sayıları tutar ama ondalık sayı için kullanılır. 12345 sayısını yazımını değiştirmek için
Decimal (5,3) à 12,345 şeklinde olur. 2 – 17
bayt arası Numeric (p,s) İşlevsel olarak decimal’e benzer 2 – 17
Bayt arası Ø Aproximate Numeric Data Tipleri Float (n) -1.79E + 308 ile 1.79E + 308’e kadar kayan noktalı değerli sayısal veri 4 – 8 Bayt arası Real -3.40E + 38 ile 3.40E + 38’e kadar kayan noktalı değerli sayısal veri 4 Bayt Ø Monetary Data Tipleri Money -922 337 203 685 47,.5808 'den 922 337 203 685 477,5807 'ye kadar paraları tutabilir. 8 Bayt SmallMoney 214 748,3648 'den 214 748,3647 'kadar olan sayıları tutabilir 4 Bayt Ø Date and Time Data tipleri DateTime Ocak 1753 'ten 31 Aralık 9999 'a kadar olan tarih aralığıı tutabilir 8 Bayt SmallDateTime 1 Ocak 1900 'den 6 Haziran 2079 'a kadar olan tarih aralığını tutar. 4 Bayt Ø Character Data Tipleri Char (n) Enfazla 8000 karakter alabilir. Dolayısıyla maksimum 8000 bayt yer kaplar. Bu veri tipi içine girilecek olan karakter sayısı kesin belli olduğu zaman kullanılır. Unicode olmayan karakter veri. Nchar (n) Enfazla 4000 karakter alır. Unicode karakter veri Karakterin 2 katı kadar kaplar Varchar (n) Enfazla 8000 karakter içerir. 8000 bayta kadar yer tutabilir. Bu veri tipini girceğimiz değerin uzunluğu kesin belli olmadığında kullanabiliriz. Unicode olmayan karakter veri. Girilen verinin uzunluğu kadar Nvarchar Enfazla 4000 karakter alır. Unicode karakter veri Karakterin 2 katı kadar kaplar Text En fazla 2,147,483,647 karakter sayısı kadar alır. Ntext En fazla 1,073,741,823 647 karakter sayısı kadar alır Ø Binary Data Tipleri Binary (n) 8000 bayta kadar veri tutabilir. 4 Bayt Varbinary (max) 2 Gb 'a kadar veri tutabilir. Image 2 Gb 'a kadar veri tutabilir. .( image=varbinary(max) ) Ø Specialized Data Tipleri Bit 0 veya 1 tam sayı değeri alan değişkenlerdir. Yani geriye true veya false bi değer döndürür. 1 Bayt Sql_variant Bu gireceğimiz değerin çeşidini bilmediğimiz sütunlarda kullanabileceğimiz bir veri tipidir. Yani resim, string, sayı, table ne olduğunu bilmediğim şeyler yerine kullanabilirim. En Fazla 8000 Bayt Veritiplerimizide ifade ettikten sonra tablomuzu artık oluşturabiliriz. CREATE TABLE tablo_adi ( Kolon_adi veritipi, Kolon_adi veritipi, Kolon_adi veritipi, ........................ ) Şeklinde yazdığımızda tablomuzun oluşmasını sağlarız. Uygulama: CREATE TABLE tblBilgiler ( Adi varchar(30), Soyadi varchar(40), Numara int, ) Kodumuzu çalıştırdığımızda tblBilgiler adında tablomuz oluşmaktadır. Tablomuza birincil anahtar (primary key) koymadık. Peki birincil anahtar nedir önce onu anlatalım. Birincil Anahtar yani Primary Key tabloda bulunması gereken en önemli özelliklerin başında sayılır. Tabloda yer alan bilgiler içerisinde tekrarlanmaması gereken ve sadece bir kişiye ait olan bilgiler için kullanılır. Örneğin bir öğrencinin numarası her öğrenci için farklıdır sadece bir tane olur. Birincil anahtar kullanılmadığında tablo üzerinden bilgileri silme, güncelleme, ekleme durumlarında sorun yaşamanız mümkündür. Birincil anahtarlı tablo oluşturmak için; CREATE TABLE tablo_adi ( Sütun_tanımı PRIMARY KEY ) Yazılarak primary key tanımlanır. Uygulama: CREATE TABLE tblBilgiler ( ID int PRIMARY KEY, Adi varchar(30), Soyadi varchar(40), Numara int, ) Bu durumda ID kolonu birincil anahtar haline gelecektir. Şekil olarak düşünürsek veritabanlarda yanında anahtar şekilde görünür. Primary Key olan kolon boş geçilemez.  Primary Key olan kolon’nun otomatik olarak artarak gitmesini istiyorsak. CREATE TABLE tablo_adi ( Sütun_tanımı nt not null IDENTITY(1,1) PRIMARY KEY ) Şeklide yazılarak otomatik olarak kolon atacaktır. Uygulama: CREATE TABLE tblBilgiler ( ID int not null IDENTITY(1,1) PRIMARY KEY, Adi varchar(30), Soyadi varchar(40), Numara int, ) Şeklide kodumuzu çalıştırdığımızda ID kolonumuz artık otomatik olarak 1 den başlayarak birer birer otomatik olarak artacaktır. Tablolarımızı oluşturduğumuza göre artık içerisine veri girişi yapabiliriz. INSERT Tablolarımıza kayıt eklemek için INSERT komutunu kullanırız. INSERT into tablo_adi values (değer1,değer2,....) Şeklinde yazaraka veya kolonları belirleyerek yazabiliriz. INSERT into tablo_adi (kolon1,kolon2,.....) values (değer1,değer2,....) Olarakta yapılabilir. UYGULAMA: INSERT into tblBilgiler values (‘Funda’,’Koyuncu’,2345) Şeklinde yazıp F5 tuşuna bastığımızda komut çalışacak ve kayıt eklenecektir. Burada ID otomatik değer dışardan yazılmaz. Yazdığımız değerler tabloyu oluşturken adi, soyadi, numara sıralamasına göre yerleşesektir. Burada sayısal olmayan değerler tek tırnak “ ‘ ” içinde yazılması gerekmektedir. Sayısal değer alan veritipleri ise tek tırnak kullanamayız. Kolonları belirterek kayıt girelim. INSERT into tblBilgiler (adi,soyadi,numara) values (‘Kadir’,’Korutürk’,2333) Bu şekilde de girerek adi kolonuna Kadir, soyadi kolonuna Korutürk, numara kolonunada 2333 değerleri eklenecektir. Tablomuza aşağıdaki satırları yazarak bir defada bilgileri girebiliriz. INSERT into tblBilgiler values ('Kadir','Korutürk',2333) INSERT into tblBilgiler values ('Funda','Koyuncu',2334) INSERT into tblBilgiler values ('Dilek','Çakýr',2356) INSERT into tblBilgiler values ('Cem','Bayraktaroðlu',5674) INSERT into tblBilgiler values ('Mehmet','Eðitmen',5478) INSERT into tblBilgiler values ('Elif','Atabay',5897) INSERT into tblBilgiler values ('Safiye','Karaca',2358) Bilgileri görmek için bu sorgudan sonra select * from tblBilgiler sorgusunu yazıp çalıştırınız. Bilgiler listelenecektir.  UPDATE Girilmiş kayıtlarda bilgiyi güncellemek için kullanılır. UPDATE tablo_adi SET kolon_adi=yeni_deger WHERE kolon_Adi=Koşul_değeri Şeklide sorgumuzu yazarak bilgi güncelleyebiliriz. |