HOŞGELDİNİZ GENÇLER
   
 
  Veri Tabanı Ödevi!
I. SQL DEYİMLERİ SQL deyimleri veritabanları üzerinde çeşitli işlemleri yerine getirirler. Veritabanından sorgulama yapmak için SELECT, ekleme yapmak için INSERT güncelleme yapmak için UPDATE, silme yapmak için DELETE, yeni tablo oluşturmak için CREATE TABLE gibi komutlara sahiptir. Bu komutlar işlevlerine göre şu şekilde kategorilendirilir: DDL (Data Definition Language): Veri tanımlama deyimleri. DML (Data Manuplation Language) : Veri düzenleme dili. DCL (Data Control Language): Veri kontrol dili. A. DDL (DATA DEFİNİT CREATE DEYİMİ İON LANGUAGE) DEYİMLERİ DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar. En yaygın kullanılan DDL deyimleri şunlardır: CREATE ,ALTER,DROP CREATE deyimi tablo ve view gibi bir veritabanı nesnesi yaratmayı sağlar. Tablo Yaratmak: Veritabanı üzerinde bir tablo yaratmak için CREATE deyimi kullanılır. Yapısı: CREATE Örnek: CREATE TABLE Musteri ( mus_id char(4) NOT NULL mus_ad varchar(40) NULL, ili varchar(20) NULL, ulke char(2) NULL, adres varchar(30) NULL ) NOT: Char, varchar, integer, numeric gibi sözcükler tablo alanlarındaki temsil edilecek verinin türünü belirtir. SQL'de SMALLINT, VARCHAR, DECIMAL(x,y), FLOAT(x;y), DATE, LOGICAL, TIME, TIMESTAMP, GRAPHIC(n) gibi alan veri türleri vardır. Örnek: CREATE TABLE personel ( Sskno Integer, Adi Varchar(20) not null, Soyadi Varchar(20) not null, Departman integer ) NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Bütün hakları saklıdır. Ticari olarak kullanılamaz. Bakınız: www.farukcubukcu.com Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır. ALTER DEYİMİ Daha önce yaratılmış nesnenin değiştirilmesini sağlar. Örneği bir tablonun tasarımını değiştirmek gibi. Örnek: ALTER TABLE Musteri ADD tel varchar(20) NOT NULL Yukarıdaki deyimde müşteri tablosunun alanlarına tel adlı bir alan daha eklenmiştir. DROP DEYİMİ Bir nesnesin silinmesini sağlar. Örnek: DROP TABLE MUSTERI Müşteri tablosunun verilerini ve tabloyu siler. B. DML (DATA MANIPULATION LANGUAGE) DEYİMLERİ Veritabanı içindeki verileri elde etmek ve değiştirmekle ilgili SQL deyimleridir. 1. SELECT 2. INSERT 3. UPDATE 4. DELETE SELECT DEYİMİ Veritabanındaki verilere erişmenin, diğer bir deyişle onları görmenin ya da onları elde etmenin en sık kullanılan yöntemidir. Genellikle bir ya da daha çok tablonun bütün alanları ya da belli alanları için SELECT deyimi yazılır. Temel Yapısı: SELECT [ALL] [DISTINCT] liste [INTO yeni tablo] FROM [tablo] [WHERE ifade] [GROUP BY ifade] [HAVING ifade] [ORDER BY ifade] [COMPUTE ifade] Seçeneklerin Anlamları: ALL sözcüğü bütün satırların sonuç listesinde görünmesini sağlar. DISTINCT sözcüğü sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar. liste parametresi veriden seçilecek kolonu (sütunu) belirtir. INTO sözcüğü yeni bir tablo yaratmayı sağlar. yeni tablo parametresi sorgu sonucu yaratılacak tabloyu belirtir. FROM sözcüğü belli bir tablonun seçilmesini sağlar. tablo parametresi ise sorgulanacak olan tablo ya da tabloları, görünümleri belirtir. WHERE bir koşulu belirterek sadece o kuşula uyan kayıtların seçilmesini sağlar. GROUP BY Kayıtların gruplanmasını sağlar. HAVING deyimiyle de ara toplamların alınmasını sağlar. HAVING sözcüğü de kayıtlarda kısıtlama yapar ancak hesaplamayı etkilemez. ORDER BY sözcüğü ise belirtilen kolona göre listelenen kayıtları sıralamayı sağlar. Sıralama artan (ASC) ya da azalan (DESC) olabilir COMPUTE sözcüğü ise hesaplama yapar. Tipik olarak SUM, AVG, MIN, MAX, COUNT gibi fonksiyonları kullanarak hesaplama yapar. Örnek: SELECT * FROM musteri Yukarıdaki deyim ile musteri tablosundaki bütün bilgiler elde edilir. SELECT deyiminin ardından kullanılan * (asterisk) işareti bütün kayıtlar anlamına gelir. Bu deyimin aynısı (aynı sonucu vereni) şu şekilde de yapılabilir: Örnek: SELECT kod, ad, soyad, grup, il, bakiye FROM musteri Müşteri tablosu: kodu Ad Soyad grup il bakiye 1 Ahmet Uzun ithal İZMİR 300000 2 Ayşe Yılmaz ithal ANKARA 400000 3 Mehmet Yılmaz ihraç ANKARA 100000 4 Hüseyin Uzun ihraç İZMİR 600000 5 Nuri Gezer ithal İZMİR 900000 6 Fatma Örnek ihraç İSTANBUL 300000 Sorgunun sonucu: 1 Ahmet Uzun ithal İZMİR 300000 2 Ayşe Yılmaz ithal ANKARA 400000 3 Mehmet Yılmaz ihraç ANKARA 100000 4 Hüseyin Uzun ihraç İZMİR 600000 5 Nuri Gezer ithal İZMİR 900000 6 Fatma Örnek ihraç İSTANBUL 300000 SELECT deyimi ile sadece belli kolonlar (alanlar) da seçilebilir: ARAMA : Tablo: Arama Kriterleri: Karşılaştırma operatörleri (=, >, <, >=, <>, !=, !<, !> Aralık belirtme BETWEEN ve NOT BETWEEN Liste IN ve NOT IN String karşılaştırma LIKE ve NOT LIKE Bilinmeyen değerler IS NULL ve IS NOT NULL Koşulların birleştirilmesi AND, OR Olumsuzlaştırma NOT ÖRNEK: SELECT * from musteri WHERE bakiye BETWEEN 100000 AND 3000000 Aynı anlamda: SELECT * from musteri WHERE bakiye <= 100000 AND>= 3000000 ÖRNEKLER: SELECT * FROM MUSTERI WHERE borcu BETWEEN 100 AND 2000 AND grup='özel' Yukarıdaki sorgulamada grubu 'özel' olan ve ayrıca da borcu değerinin 100 ile 200 arasında olanı listelenir. ARİTMETİK İŞLEMLER Aritmetik işlemleri gerçekleştirmek için belli operatörler kullanılır: OPERATÖRLER AÇIKLAMALARI + Toplama , - Çıkarma / Bölme , * Çarpma SELECT borcu, borcu*2 FROM MUSTERI VERİLERİ SIRALAMAK SELECT deyimi ile elde edilen veriler istenirse sıralanabilir. Sıralama belirtilen bir ya da daha fazla kolona göre yapılır. Bunun dışında sıralama ASC (ascending-artan) ya da DESC (descending-azalan) olarak belirtilebilir. Kullanım Biçimi: SELECT kolon_listesi ORDER BY kolon adı ASC ya da DESC ORDER BY sözcüğü ise verilerin istenilen alan göre sıralı olarak listelenmesini sağlar. SELECT * FROM musteri ORDER BY ad Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtlar ad alanına göre sıralı olarak listelenirler. GRUPLANDIRMA İŞLEMLERİ Gruplama seçenekleri tablo satırlarının belli alanlarına göre gruplandırılmasını sağlar. GROUP BY sözcüğü ise yapılan bir gruplandırma işlemine göre listeleme sağlar. Örnek: SELECT grup, sum(bakiye) FROM musteri GROUP BY grup Yukarıdaki örnekte müsteri tablosundaki bakiye alanı grup kodu bazında toplanır. GROUP BY ile yapılan gruplandırma (alt toplamlar) işlemi içinde ayrıca HAVING sözcüğü kullanılarak bir koşul da verilebilir. SELECT grup, sum(bakiye) FROM musteri GROUP BY grup HAVING il = 'İZMİR' Yukarıdaki deyim ile müşteri tablosundaki bütün kayıtların bakiye bilgiler gruplarına göre ara toplam alınır, bir de il bilgisine göre filtrelenir. NOT: Gruplama yapılmayan he sütun GROUP BY deyiminde kullanılması gerekir: Örnek: SELECT PRODUCTID, CATEGORYID, SUM (UNITPRICE) FROM PRODUCTS GROUP BY PRODUCTID, CATEGORYID COMPUTE SÖZCÜĞÜ COMPUTE sözcüğü toplama fonksiyonunun kullanarak query sonucunda bir toplam satırı üretir. COMPUTE BY sözcüğü ise ek toplam satırları yaratır. Kullanım Biçimi: COMPUTE fonksiyon (kolon_adı) Örnek: Sipariş tablosu: tarih Mkodu ürün adet fiyatı 1/1/1999 1 X-TV 10 100000 2/1/1999 1 X-TR 10 100000 2/1/1999 2 X-TV 15 100000 2/1/1999 3 X-KT 10 200000 3/1/1999 3 X-KT 20 150000 2/2/1999 1 X-TV 22 400000 SELECT ürün, adet FROM siparis ORDER BY ürün COMPUTE SUM(adet) Yukarıdaki örnekte adet kolonunun toplamı alınır. Sonucu: ürün adet X-KT 10 X-KT 20 X-TR 10 X-TV 10 X-TV 15 X-TV 22 Sum =================== 87 INSERT DEYİMİ Tabloya veri girmek için kullanılır. INSERT INTO (sütunlar listesi) VALUES (değerler listesi) ÖRNEK: INSERT INTO CARIANA (kodu, adi, grubu, adresi) VALUES ('600', 'FARUK', 'A', '76 sokak no 5') Örnek: INSER INTO deyimi ile bir tabloyu diğer bir tablodan doldurmak: use ornek INSERT INTO cariyedekf (kodu, adi, grubu, adresi) (SELECT kodu, adi, case grubu when 'A' THEN 'ITHAL' when 'B' THEN 'YERLİ' ELSE 'DİĞER' end, adresi from cariana) UPDATE DEYİMİ: Tablodaki verileri güncellemek için kullanılır. Genellikle güncelleştirilecek satırı belirtmek için WHERE sözcüğüyle kullanılır. Mevcut bir tablodaki satırları değiştirmek için UPDATE deyimi kullanılır. UPDATE deyimi sadece bir tablo üzerinde kullanılmalıdır. UPDATE deyimi ile SET ve WHERE sözcüğü kullanılır. SET sözcüğü değiştirilecek kolonları ve değerleri belirtir. WHERE sözcüğü ise değiştirilecek satırı belirtir. Kullanım biçimi: UPDATE tablo SET kolon = ifade WHERE arama_koşulu Örnek: Aşağıdaki örnekte fiyat değerini %10 artırır. UPDATE siparis SET fiyatı= fiyatı * 1.1 Örneğin bir kaydı düzeltmek istersek ; UPDATE Musteri SET Ad = 'Nuri Yılmaz' WHERE kod='1'; Örneğin tüm musterilerin bakiyesini %10 artırmak istediğimizde; UPDATE Musteri SET bakiye=bakiye*1.1; DELETE DEYİMİ Bir tablodaki verileri silmek için DELETE komutu kullanılır. Örneğin Öğrenci tablosundaki tüm verileri silmek için; DELETE * from musteri; Tabloda, bakiyesi 1000'den küçük olan müşterilerin satırlarını silmek için: DELETE * FROM musteri WHERE bakiye <=1000 Kullanım biçimi: DELETE tablo WHERE arama_koşulu Örnek: Tablodan satır silmek Aşağıdaki örnekte müşteri tablosundan 'B' grubuna sahip olan müşteriler silinir. DELETE musteri WHERE grubu = 'B' C. DCL (DATA CONTROL LANGUAGE) DEYİMLERİ Veritabanındaki kullanıcı haklarını düzenlemek için kullanılan deyimlerdir. Örneğin GRANT, DENY, REVOKE gibi. Örnek: USE Northwind GRANT SELECT ON Stok TO PUBLIC NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Bütün hakları saklıdır. Ticari olarak kullanılamaz. Bakınız: www.farukcubukcu.com Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır. GRANT DEYİMİ Aşağıdaki örnek Ayşe adlı kullanıcı veritabanı ve tablo oluşturma izni verilir: GRANT CREATE DATABASE, CREATE TABLE TO AYŞE GÖZDEN GEÇİRME 1. SQL deyimleri hangi gruplara ayrılır. 2. SELECT deyiminin kullanım şekillerini açıklayınız? 3. INSERT deyiminin amacı nedir? 4. UPDATE deyiminin amaçları nelerdir? I. SQL FONKSİYONLARI SQL Server'da Fonksiyonlar, hesaplamalarda ve özellikle sistem hakkında bilgi almada yaygın olarak kullanılan araçlardır. Transact-SQL (T-SQL) programlama dilinde değişik kategorilerle adlandırılan fonksiyonlar vardır. Bunlardan en yaygını veriler üzerinde işlem yapan toplama ya da gruplama olarak adlandırabileceğimiz aggregate fonksiyonlarıdır. A. GRUPLAMA FONKSİYONLARI Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç değer döndürürler. Toplama ya da gruplama fonksiyonları olarak adlandırabileceğimiz bu fonksiyonlar genellikle GROUP BY deyimi ile kullanılırlar. Gruplama fonksiyonları aşağıdaki ifadeler içinde kullanılabilirler.  SELECT deyiminin listesinden (bir subquery olarak)  Bir COMPUTE ya da COMPUTE BY sözcüğü ile.  Bir HAVING sözcüğü ile. Transact-SQL programlama dilinde şu aggregate fonksiyonları kullanılır:  AVG  COUNT  GROUPING  MAX  MIN  SUM  STDEV  STDEVP  VAR  VARP NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Bütün hakları saklıdır. Ticari olarak kullanılamaz. Bakınız: www.farukcubukcu.com Adı geçen ve telif haklı olan ürünler bilgi amaçlı olarak kullanılmıştır. AVG (T-SQL) Fonksiyonu Bir grup içindeki değerlerin ortalamasını döndürür. Null değerler dikkate alınmaz. Kullanım Biçimi: AVG([ALL | DISTINCT] ifade) Argümanları: ALL Ortalama fonksiyonunu bütün değerlere uygular. DISTINCT İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin yerine birisi kullanılır. İfade : Sayısal bir değeri olan ifade ya da kolon adı. Örnek: Aşağıdaki örnekte satış miktarları toplanmakta ve ortalaması alınarak iki ayrı sonuç değeri verilmektedir: USE Northwind GO SELECT AVG(quantity), SUM(quantity) FROM [Order Details] GO COUNT (T-SQL) Fonksiyonu Bir grup içindeki eleman sayısını verir. Kullanım Biçimi: COUNT({[ALL | DISTINCT] ifade] | *}) Argümanları: ALL Fonksiyonunu bütün değerlere uygular. DISTINCT İşlemin her tek değer için uygulanacağını belirtir. Diğer bir deyişle tekrar eden değerlerin yerine birisi kullanılır. İfade :Bir ifade ya da kolon adı. * Bir tablodaki bütün satırların sayısını döndürmek için kullanılır. COUNT(*) herhangi bir paratmetre ile kullanılmaz ve DISTINCT ile kullanılmaz. COUNT(*) ile null ve tekrar eden değerler dahil bütün elemanlar sayılır. Örnek: Aşağıdaki örnekte ürünler tablosundaki ürünler sayılır. DISTINCT ile tekrara izin verilmez. USE Northwind GO SELECT COUNT(DISTINCT productname) FROM products GO MAX (T-SQL) Fonksiyonu: İfade içindeki maksimum değeri döndürür. Kullanım Biçimi: MAX([ALL | DISTINCT] ifade) Argümanları: ALL Fonskiyonunu bütün değerlere uygular. MIN (T-SQL) FOnksiyonu İfade içindeki minimum değeri döndürür. Kullanım Biçimi: MIN([ALL | DISTINCT] ifade) Argümanları: ALL Fonskiyonunu bütün değerlere uygular. Örnek: Aşağıdaki örnekte en küçük satış adedi elde edilmektedir: USE Northwind GO SELECT MIN(quantity) FROM [Order Details] GO SUM Fonksiyonu Değerlerin toplamlarını verir. SUM fonksiyonu sadece sayısal alanlarda kullanılır. Kullanım Biçimi: SUM ([ALL | DISTINCT] ifade) Argümanları: ALL Toplama (aggregate) fonksiyonunu bütün değerlere uygular. ALL seçeneği varsayım olarak kullanılır. DISTINCT SUM fonksiyonunu tek değerlerin (unique) toplamını vermesini sağlar. İfade Bir sabit, bir kolon, fonksiyon ya da bir aritmetik işlem. Örnek: USE pubs GO -- Satır toplamları SELECT type, price, advance FROM titles ORDER BY type COMPUTE SUM(price), SUM(advance) BY type B. TARİH VE ZAMAN FONKSİYONLARI (T-SQL) Bu fonksiyonlar tarih (date) ve zaman (time) üzerinde işlemler yapmayı sağlar. Tarih ve zaman fonksiyonları şunlardır:  DATEADD  DATEDIFF  DATENAME  DATEPART  DAY  GETDATE  MONTH  YEAR  CONVERT DATEADD Belli bir tarihin üzerine değer eklenerek yeni bir tarih değeri üretir. Kullanım biçimi: DATEADD ( tarihkısmı, sayı, tarih) Argümanları: Tarih kısmı Tarih Parçası Kısaltması Year yy, yyyy Quarter qq, q Month mm, m Dayofyear dy, y Day dd, d Week wk, ww Hour hh Minute mi, n Second ss, s Millisecond ms Sayı: Tarih kısmını artırmak için kullanılan değer. Tarih: Tarih değerini döndüren tarih bilgidi. Örnekler: Yayın tarihinin 30 gün sonrası: USE pubs GO SELECT DATEADD(day, 30, pubdate) FROM titles GO Örnek: Son on gün içinde yapılan siparişler: SELECT ord_num, ord_date FROM sales WHERE (ord_date >= DATEADD(day, -10, GETDATE())) DATEDIFF İki tarih arasındaki gün sayısını verir. Kullanımı: DATEDIFF ( Tarih parçası, başlangıç tarihi, bitiş tarihi) Argümanları: Tarih parçası Tarih Parçası Kısaltması Year yy, yyyy Quarter qq, q Month mm, m Dayofyear dy, y Day dd, d Week wk, ww Hour hh Minute mi, n Second ss, s millisecond Ms Örnek: Şu anki tarih ile yayın tarihi arasındaki fark: USE pubs GO SELECT DATEDIFF(day, pubdate, getdate()) FROM titles GO DATEPART (T-SQL) Belirtilen tarihin istenen parçasına karşılık olarak bir tamsayı döndürür. Kullanım Biçimi: DATEPART(tarihparçası, tarih) Argümanları: Tarih parçası: Tarih bilgisinin bir kısmını ifade eden bilgi.
MEHMET
 
MEHMET
MEHMET
 
MEHMET
 
Bugün 5 ziyaretçi (8 klik) kişi burdaydı!
SA Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol