Bu Konuyu Okuyanlar: 1 ZiyaretÇi
Cevapla 
 
DeÄŸerlendir:
  • 0 Oy - 0 Yüzde
  • 1
  • 2
  • 3
  • 4
  • 5
MSSQL 2000 Genel
03-12-2010, 03:03 PM
Mesaj: #1
MSSQL 2000 Genel
Kaynak:

Guests cannot see links in the messages. Please register to forum by clicking href="member.php?action=register">here to see links.

Bu bölüm FIRAT ÜNİVERSİTESİ T.E.F ELEKTRONİK VE BİLGİSAYAR BÖLÜMÜ
ders notlarından alınarak düzenlenmiştir.

SQL(Yapısal Sorgulama Dili)'e GİRİŞ



İlişkisel (relational) database modeli 1970'li yıllarda Dr. Edgar F. Codd tarafından geliştirilmiştir. IBM ve Dr. Codd'un çalışmaları sonucunda SQL (Structured Query Language-Yapısal Sorgulama Dili) ortaya çıkmıştır. SQL bugün ilişkisel database sistemlerinde bir standart haline gelmiştir. Bugün database (veritabanı) ismini duyduğunuz hemen hemen her yerde kullanılan SQL birçok programlama dilinin içinde de bütünleşik olarak gelmektedir. Örneğin Dbase,Visual Basic, Delphi, Developer 2000 gibi. Birçok programlama dili de alt tabanda SQL'i kullanmaktadır. DB2, Sysbase, Oracle, Informix, Microsoft SQL Server,Interbase,Progress gibi Veritabanı Yönetim Sistemleri SQL tabanlıdır. Bugün İnternet ortamında program geliştirmek için kullanacağınız ASP,JSP ve Java gibi dillerle veritabanı işlemleri yapacak olursanız SQL kullanmalısınız. SQL veriye erişmenin, veri işlemenin ve sorgulamanın en hızlı yoludur.

SQL geliştirildiği 1970'li yıllardan günümüze gelene kadar birçok değişikliğe uğramıştır. SQL dilinde bir standardizasyona gidilmesi için ISO (International standard Organization) çalışma başlatmış ve en son SQL-92 ,ANSI SQL veya SQL 2 diye adlandırılan standart kabul edilmiştir. ANSI SQL, C, Basic, Pascal gibi dillerde gördüğünüz döngü ifadelerine ve şart yapılarına sahip değildir. Bu yüzden SQL'e bir programlama dili diyemeyiz. Fakat bazı firmalar ANSI SQL'e bağlı kalarak bir kısım eklemeler yapmış ve SQL'i kendilerine göre değiştirmişlerdir. Örneğin Microsoft SQL Server'in Transaction SQL dili döngü yapılarına ve şart ifadelerine de sahiptir. Biz ilk önce ANSI sql komutlarını öğrenecek daha sonra da SQL Server ile uygulamalar geliştireceğiz.



SQL KOMUTLARI



SQL veritabanından sorgulama yapmak için SELECT, ekleme yapmak için INSERT güncelleme yapmak için UPDATE, yeniden veritabanı oluşturmak için CREATE DATABASE, yeni tablo oluşturmak için CREATE TABLE, silme işlemi için DELETE gibi komutlara sahiptir. Bu temel komutların ayrıntılarını şimdi görelim. SQL'i en bastinden kendi bilgisayarınızda Microsoft Access içinde deneyerek bu deneye hazırlanabilirsiniz.



SELECT Komutu

Genel formatı:

SELECT tablo_alanları FROM tablo_adı WHERE koşullar

şeklindedir. Örneğin aşağıdaki gibi bir Öğrenci tablomuz olsun,



Okul_no
Ad
Soyad
D_tarihi
NOT
Bolumu

95530005
Hakan
Saray
15.02.1976
30
Bilgisayar

95530006
Sinan
Alagöz
17.03.1975
70
Elektronik

95530008
Erhan
Atılgan
19.04.1976
50
Bilgisayar

95530009
YeÅŸim
Ceylan
21.05.1976
65
Elektronik

96530010
Atilla
Saray
23.06.1977
45
İşletme




yukarıdaki tablodaki tüm alanları seçmek için;

SELECT * FROM Ogrenci;

dememiz yeterlidir. Buradaki * işareti tüm alanların seçileceği anlamındadır. Aynı sonuca;



SELECT okul_no,Ad,Soyad,D_tarihi,Not,Bolumu FROM Ogrenci ;



yazarak da ulaşabiliriz. Sadece ad,soyad listesini görmek için;



SELECT Ad,Soyad FROM Ogrenci ;



Koşula bağlı olarak listeleme yapmak istiyorsak o zaman WHERE kalıbını kullanmalıyız.. Örneğin, Notu 50'den büyük ve eşit olanları görmek için ise,



SELECT * FROM Ogrenci WHERE Not>=50 ;



Okul_no
Ad
Soyad
D_tarihi
NOT
Bolumu

95530006
Sinan
Alagöz
17.03.1975
70
Elektronik

95530008
Erhan
Atılgan
19.04.1976
50
Bilgisayar

95530009
YeÅŸim
Ceylan
21.05.1976
65
Elektronik




Soyadı "Saray" olanları listelemek için ise;



SELECT * from Ogrenci WHERE Soyad="Saray";



LIKE sözcüğü tablo içinde belli bir alana göre arama yapmak için kullanılır. % işareti wildchar karakter olarak kullanılır. DOS'tan alıştığınız * karakteri gibidir.



96'kayıtlı öğrencileri listelemek için;



SELECT * from Ogrenci WHERE Okul_no LIKE '96%';



Okul_no
Ad
Soyad
D_tarihi
NOT
Bolumu

96530010
Atilla
Saray
23.06.1977
45
İşletme




Bölümü "Bilgisayar" olanları listelemek için;



SELECT * from Ogrenci WHERE Bolumu="Bilgisayar";



Doğum tarihi 01.01.1976'dan büyük olanları listelemek için;



SELECT * from Ogrenci WHERE D_tarihi>={01.01.1976};



Okul_no
Ad
Soyad
D_tarihi
NOT
Bolumu

95530005
Hakan
Saray
15.02.1976
30
Bilgisayar

95530008
Erhan
Atılgan
19.04.1976
50
Bilgisayar

95530009
YeÅŸim
Ceylan
21.05.1976
65
Elektronik

96530010
Atilla
Saray
23.06.1977
45
İşletme




Yukarıda görüldüğü gibi tarih bilgileri süslü parentezler arasında yazılmalıdır.



Eğer listelemeyi sıralı olarak yapmak istiyorsak Order By deyimini kullanmalıyız. Örneğin yukarıdaki tabloyu ada ve soyada göre sıralayacaksak;



SELECT * from Ogrenci WHERE D_tarihi>={01.01.1976}

ORDER BY Ad,Soyad ASC



Buradaki ASC sözcüğü Ascend yani artan şekilde harf için A'dan Z'ye doğru, rakam için küçükten büyüğe doğru sıralama anlamındadır. DESC sözcüğü ise bunun tersi işlemi yapar.



Eğer notu 60 ila 70 arasındaki kayıtları listelemek istersek o zaman, BETWEEN sözcüğünü kullanabiliriz.



SELECT * FROM Ogrenci WHERE NOT BETWEEN 60 AND 70 ;

yazarız.



Eğer bir dersten sınıf ortalamasını bulmak istersek AVG fonksiyonundan yararlanırız.



SELECT AVG(NOT) FROM Ogrenci;



AVG gibi MAX,MIN,SUM,COUNT fonksiyonları da aritmetiksel işlemler yapmak için kullanılabilir.



Peki tablomuzda kaç kayıt var?

Öğrenci tablosunda anahtar alan (Primary veya Unique alan) Öğrenci numarası olduğu için eğer bir tablodaki öğrenci sayısını bulmak istersek bu alanı referans göstererek sayma işlemini yapabiliriz.



SELECT COUNT (Okul_no) FROM Ogrenci;

SELECT COUNT(*) FROM Ogrenci;



Örneğin notu 50'den fazla olan Öğrenci sayısını bulmak için;



SELECT COUNT (*) from Ogrenci WHERE Not>50;



Gruplandırma



Örneğin her bölümünde okuyan öğrencilerden en yüksek notu listelemek istersek o zaman gruplandırma dediğimiz işlemi yapmak zorundayız. GROUP BY ve HAVING sözcükleri bu işlem için kullanılır. HAVING sözcüğü WHERE kalıbı gibidir. Gruplandırılan kayıtlardaki şart ifadelerini belirtmek için kullanılır. Yani HAVING ile GROUP BY kullanılmalıdır.

Şimdi yukarıdaki sorumuzu cevaplayalım,



SELECT AD,SOYAD,MAX(Not) FROM Ogrenci GROUP BY Bolumu;



VERİ TABANI OLUŞTURMA



Veritabanı oluşturmak için CREATE DATABASE deyimi kullanılır.



CREATE DATABASE Okul;

ile okul veritabanı oluşturulmuş olur.



TABLO OLUÅžTURMA



Tablo oluşturmak için CREATE TABLE deyimi kullanılır.



CREATE TABLE Ogrencı ( Okul_no CHAR( NOT NULL,

AD CHAR(30) NOT NULL,

SOYAD CHAR(30) NOT NULL,

D_Tarihi DATE,

NOT INTEGER,

Bolumu CHAR(30));



SQL'de tablo tanımlamak için SMALLINT, VARCHAR, DECIMAL(x,y), FLOAT(x;y), DATE, LOGICAL, TIME, TIMESTAMP, GRAPHIC(n) gibi alanlar da vardır. Daha geniş bilgi için kullandığınız Veritabanı Yönetim Sisteminin ya da Programlama dilinin referans kaynaklarına başvurunuz. Örneğin VARCHAR'ı Paradox tabloları desteklemez fakat Interbase tabloları destekler.



Tabloya Veri Eklemek



Tabloya veri girişi için INSERT INTO/VALUES deyimi kullanılır. Yukarıda oluşturduğumuz tabloya veri girmemiz için;



INSERT INTO Ogrenci VALUES ('95530007', 'UMIT',

'SASMAZLAR', {15.02.1977}, 80, 'Bilgisayar');



Tablodaki Verileri Güncellemek



Tablodaki verileri güncellemek için UPDATE deyimi kullanılır. UPDATE komutunu da daha önceki örneklerde gördüğümüz gibi WHERE kalıbı gibi koşullu kullanabiliriz.



Örneğin bir kaydı düzeltmek istersek ;



UPDATE Ogrenci SET Okul_no='95530005', Ad = 'Yavuzhan' , Soyad='TAŞKENT', D_Tarihi={15.03.1980}, Not=85, Bolumu='İnşaat' WHERE okul_no='95530005';



Böylece INSERT INTO kalıbıyla girdiğimiz yukarıdaki 955530005 numaralı kaydı değiştirmiş olduk.

Örneğin tüm öğrencilerin notunu %10 artırmak istediğimizde;



UPDATE Ogrenci SET Not=Not*1.1;

deyimini kullanırız.



Elektronik bölümündeki öğrencilerin notlarını %20 düşürmek istediğimizde ise;



UPDATE Ogrenci SET Not=Not*0.8 WHERE Bolumu='Elektronik';



Tablodan Veri Silmek



Bir tablodaki verileri silmek için DELETE komutu kullanılır. Örneğin Öğrenci tablosundaki tüm verileri silmek için;



DELETE * from Ogrenci ;



Notu 50'den küçük olan Bilgisayar bölümündeki öğrencileri silmek için;



DELETE * FROM Ogrenci WHERE Bolumu='Bilgisayar' AND Not<50;



Tabloya Sonradan bir KOLON Eklemek



Bir tablo oluşturduğumuzu ve daha sonra bu tabloya yüzlerce kayıt girdiğimizi düşünelim. Tabloyu İlişkisel bir yapı oluşturabilmek için veya unuttuğumuz bir alanı ekleyebilmek için SQL'in ALTER TABLE komutundan yararlanabiliriz.



ALTER TABLE Ogrenci ADD dogum_yeri CHAR(30);

ALTER TABLE Ogrenci ADD Kredisi SMALINT NOT NULL;





Tablodan Sonradan bir KOLON Silmek



Bir kolonu silmek için ALTER TABLE kalıbını kullanarak DROP komutunu kullanmamız gerekir. Öğrenci tablosundan doğum tarihlerini kaydettiğimiz alanı silmek için;



ALTER TABLE Ogrenci DROP D_Tarihi;



Not ve Bölümü bilgilerini aynı anda silmek için;



ALTER TABLE Ogrenci DROP Bolumu,Not;



Tablonun Kolonunu deÄŸiÅŸtirmek



Önceden oluşturduğumuz bir tablonun alan uzunluğunu değiştirmek gibi bir ihtiyacımız olduğunda bu işlemi ALTER TABLE deyimi içinde MODIFY komutu ile yapabiliriz.

Yukarıdaki tabloda Ad alanını 30 olarak belirtmiştik. Daha sonra adı 30 karakteri geçen birini kaydetmek için aşağıdaki değişikliği yaparak "Ad " alanını 40 karakter alabilecek duruma getirebiliriz.

ALTER TABLE Ogrenci MODIFY Ad CHAR(40);



MICROSOFT SQL SERVER



Microsot SQL Server, bir Veritabanı Yönetim Sistemidir. Windows NT Server üzerine kurulan Microsoft SQL Server ile veritabanı ve tablolar, viewler, Stored procedurler, Transactionlar oluşturabilir, veritabanı güvenliğinin kullanıcılara verdiğiniz haklarla saklayabilir, uzaktan veritabanı yönetimi işlemlerini ve yedekleme-geri yükleme gibi işlemleri yapabilirsiniz. Tüm bu işlemleri SQL Server'ın genişletilmiş dili olan Transact SQL ile yapabilirsiniz. Microsoft SQL Server'ı hem görsel hem de konsol ortamında kullanabilirsiniz.



Standart SQL; döngü ifadeleri, şart yapıları gibi programlama dili özelliklerine sahip değildir. Microsoft SQL Server’in Transact SQL’i ise, standart SQL komutlarına bağlı kalarak geliştirilmiş tam bir programlama dilidir. Gerekli Rule'lar(Kurallar) ve Kısıtlamalar bu dil üzerinde çok kolay oluşturulabilmektedir.



Transact SQL deyimlerini uygulamak için SQL Enterprise Manager, Query Analyzer, OSQL, ya da ISQL/w gibi SQL Server ile gelen yardımcı programları kullanabilirsiniz.



Ana makinaya (Windows NT Server kurulu) SQL Server, diğer istemci makinalara ise Windows NT Workstation, Windows NT Server, Windows 2000, Windows 98 veya Windows 95 işletim sistemlerini kurarak bir domain(bölge) oluşturabilirsiniz. İstemci makinalara, ana makinadan haklar vererek bir şirket içinde ortak veritabanı oluşturup yönetebilirsiniz.



SQL Server'de bir veritabanının ne kadar ve hangi oranda büyüyebileceğini önceden ayarlayabilirsiniz. Örneğin 4 GB. sabit diskiniz olsun. Benim Öğrenci tablom maksimum 2 GB yer kaplasın ve tablo bu boyuta ulaşınca Sistem yöneticisine bir mesaj (mail) göndersin diyebilirsiniz. Büyüme oranını mesela %20 vererek belli sınıra ulaştığında tablo kapasitesinin %20'si kadar artmasını sağlayabilirsiniz. Tablonun büyüme oranını veya boyutunu belirtmediğiniz zaman sabit diskin kapasitesi kadar büyür.



SQL SERVER Kurulumunda Oluşturulan Veritabanları
master :Veritabanı hakkındaki bilgileri saklar, veritabanı işlemlerini, sistem ayarlarını kontrol eder.SQL Server ilk başladığında bu database’i kontrol eder.

model :Yeni kullanıcı veritabanları için kalıp oluşturur.
msdb :Database’e ait Alert (mesaj) ve işler (job) için çizelgeler burada tutulur.SQL Server Agent tarafından kullanılır.

tempdb :Geçici tabloları tutar ve bellek gereksinimlerini karşılamak için geçici çalışma alanları oluşturur. SQL Server her başladığında yeniden oluşturulur
distribution :Veritabanı kopyalanması sırasında gerekli bilgileri saklar

pubs :Örnek database.

northwind :Örnek database.



Şimdi biraz veritabanı kavramlarına değinelim.


TRANSACTIONLAR (İŞLEMLER)

Transaction'ın sözlük anlamı bir birim iş'tir. Veri işleme deyimlerinde transaction blokları manuel olarak oluşturulurlar.



BEGIN TRANSACTION transaction_adı

Deyimler

...............

COMMIT TRANSACTION transaction_adı



Bir transaction işlem başlatıldıktan sonra eğer transaction tamamlanmazsa yapılan işlem veritabanı tarafından geri alınır. Böylece veritabanı bütünlüğü (database integrity) sağlanmış olur. Yapılan işlemi geri ROLLBACK deyimiyle geri alabilirsiniz. COMMIT deyimiyle onaylayabilirsiniz. (Bu deneyi yapmadan evvel kişisel bilgisayarınızda Delphi'de bir ufak bir transaction programı yazarak uygulayınız.) Örneğin elektrik kesilmesi durumunda transaction tamamlanmadığı için yapılan işlem veritabanı tarafından geri alınır. Transaction deyimlerinin toplandığı bloklar bir batch olarak adlandırılırlar. Bunu DOS'taki BAT (Toplu İşlem Dosyaları)'na benzetebilirsiniz. BAT dosyalarının içinde Dos komutlarını, Batch dosyalarını içinde ise Transaction SQL komutlarını kullanırsınız. Batch dosyalarının ayıracı GO deyimidir.Örneğin;

USE Okul

GO

SELECT AVG(NOTU), SUM(NOTU)

FROM OGRDERS

GO



STORED PROCEDURLAR (Transact SQL Dili ile Yüklenmiş Prosedürler)

Veritabanında saklanılabilen ön derlemesi yapılmış Transact SQL deyimleridir. Stored Procedurlar daha önce derlendiği için hızlı çalışırlar. Uygulamalar tarafından stored procedurlara erişerek kullanabilirsiniz. Örneğin bir Stored Procedure oluşturup, Java ile bu Stored Procedure erişip kullanabilirsiniz. Java ile yazılan çok kullanıcı veritabanı programları örneğin E-ticaret programları böyle çalışırlar. Java ile JDBC kullanarak SQL Server sürücülerine erişip SQL Server veritabanını da kullanabilirsiniz.



Aşağıda Ogrenci_Listesi isimli bir Stored Procedure oluşturulmaktadır.



USE OKUL

CREATE PROCEDURE Ogrenci_Listesi

@soyad varchar(30)

@ad varchar(25)

AS

SELECT ogrencino,ad,soyad,dtarihi,dyeri

FROM Ogrenci WHERE Ogrenci.ad = @ad AND Ogrenci.soyad=@soyad

GO



Bu procedure'un çalıştırılması için;



EXECUTE Ogrenci_Listesi 'Sarı','ERHAN'

veya

EXECUTE Ogrenci_listesi @soyad='Sarı', @ad='ERHAN'

diyebiliriz.

yukarıda stored procedure öğrenci adı ve soyadı parametre olarak geçirilmiş ve öğrencinin bilgileri listelenmiştir.



VIEW (GÖRÜNÜŞ) OLUŞTURMAK



Viewlerde tablolardaki bilgilere erişmenin bir yoludur. Viewler sayesinde çok kolonlu bir tablonun sadece belli kolonlarını listeletebilir ve kolonlar üzerinde hesaplamalar yaptırabilirsiniz. Örneğin tablonuzda diğer iki kolonun çarpımı olan yeni bir kolonu view ile rahatlıkla oluşturabilirsiniz. Gerçek tabloyla hiç ilişkisi olmayan tablolar oluşturup kullanıcıların bu tablo üzerinde işlem yapmasını sağlayabilirsiniz. Birden fazla tabloyu bir view ile birleştirebilirsiniz. Bu özellikle ilişkisel (relational) bir yapı kurduğunuzda oldukça yararlı olmaktadır. Şimdi notu 50'den büyük olan öğrencilerin listesini veren bir view oluşturalım.



CREATE VIEW Gecenler_View AS

SELECT Ad,Soyad,Ders_Adı,Ders_Notu

FROM Ogrenci

WHERE Ders_Notu>=50



Yukarıda Gecenler_View isminde Ogrenci tablosundan notu 50'den büyük ve eşit olan öğrencilerin listesini veren bir görünüm oluşturduk.

Viewlerin oluşturulmasında Select deyimini kullandık. Ancak viewlerin bazı kısıtlamaları vardır.

· ORDER BY,COMPUTE BY veya COMPUTE sözcükleri kullanılmaz.

· INTO kullanılmaz.



CREATE VIEW deyiminin CHECK ve WITH ENCRYPTION adında iki parametresi daha vardır. CHECK ile veri değişiklilerini kontrol edebilir, WITH ENCRYTION ile oluşturulan görünüm metnini şifrelenmesi(encryption) işlemini yapabilirsiniz.



CREATE personel_zam_view

WITH ENCRYTION

AS

SELECT Personel_Adı, Kademesi,Gorevi, Maası*1.2

FROM Personel

WHERE Kademesi=2



Yukarıda Personel tablosunda yer alan ve Kademesi 2 olan memurların maaşlarına %20 zam yaptık ve bu metni SQL Server'in syscomment tablosuna şifrelenmiş olarak kaydetmiş olduk.

Viewlerle güvenlik işlemini daha kolay sağlayabilirsiniz. Kullanıcılara view üzerinde izinler verdiğiniz zaman; onlara gerçek tablo üzerinde izin vermiş olmuyorsunuz. Diyelim ki sadece Öğrenci Adı ve Soyadı bilgilerini içeren bir view oluşturup, Öğrencilerin özel bilgilerini içermeyen bu tabloyu kullanıcılara açabilirsiniz



TETİKLEMELER (TRIGGERS)

Trigger'da bir stored procedure'dür. Fakat bir farkı trigger'lar otomatik olarak çalışırlar. Ancak UPDATE,INSERT ve DELETE deyimlerini kullanarak bir trigger'i otomatik olarak başlatabilirsiniz. Örneğin stok'tan çıkan bir malın, fatura tablosundan da düşülmesi işlemini bir tetikleme oluşturarak yapabilirsiniz. Tablodan bir stok kartı silinecekse ve bu stok kartının stok hareketleri de varsa DELETE işlemi ile ilgili bir trigger oluşturarak hareket gören stoğun silinmesini önleyebilirsiniz.



CREATE TRIGGER TETIK01 ON dbo.STOK

FOR DELETE

AS

declare @STOKKOD varchar(15), @STOKSAYI int

select @STOKKOD=HRK.STOKKOD, @STOKSAYI=HRK.STOKSAYI

from deleted HRK

update FATURA

set miktar = miktar + @STOKSAYI

where skod= @STOKKOD

GO



CURSORS

İlişkisel tablolar oluşturup bu tabloların sonucunda oluşan satırlar üzerinde hareket etme işlemleri için Cursorler kullanılır. Cursorlar, oluşturulan sonuç tablolarındaki üzerindeki satırlar üzerinde ileri, geri, en son, en ilk kayıtlara ilerleyebilmenizi sağlar. Cursorlar ile şu işlemler yapılır;

· Arama işlemi yapmak. Sonuç tablosu üzerinde belli bir satıra gitmek.

· Sonuç tablosu üzerinden hareket etmek. Örneğin belli bir şarta göre yapılan armaya uyan birden fazla satırın olması durumunda şarta uyan satırlar arasında dolaşmak.

· Belli bir satırdaki bilgileri değiştirmek.

· Stored Procedure'ler, Trigger ve script içindeki Transact SQL deyimleri üzerinde veri değişikliği yapılmasını sağlamak.

Microsoft SQL Server Cursor kullanımında iki ayrı yöntemi de destekler. Bu yöntemler;



1- Transact SQL.

2- API Cursor fonksiyonu ile desteklenen Cursorler. Microsoft'un Database API'lerini kullanarak Visual C++, Visual Basic, Visual Fox Pro gibi programlarla eriÅŸebilirsiniz. Bu API'ler;

· ADO (ActiveX Data Object)

· OLE DB

· ODBC (Open Database Connectivity)

· DB-Library' dir



Transact SQL Cursorleri DECLARE CURSOR deyimi ile tanımlanır. API Server Cursorleri ise OLE DB, ODBC, Db-Library içinde tanımlanan cursorlerdir. Client Cursorleri ise SQL Server ODBC sürücüsü ve DB-Library içinde gerçekleştirilir. Server Cursorleri kullanmak Client Cursor kullanmaya göre daha avantajlıdır.



DECLARE Ogrenci_Cursor CURSOR

FOR SELECT * FROM Ogrenci



OPEN Ogrenci_Cursor

FETCH NEXT FROM Ogrenci_Cursor



Yukarıda Ogrenci_Cursor isminde bir Cursor tanımlanmış ve Ogrenci tablosunun tüm satırları bu sonuç setinde toplanmıştır. FETCH kelime anlamı olarak "gidip getirmek" anlamına gelmektedir. Burada da yapılan işlem ile verilerin alınması FETCH NEXT ile yapılmaktadır. Diğer bir yöntemde SCROLL seçenekleridir. Detaylı bilgi için SQL Server Online Books'a göz atabilirsiniz.



DİYAGRAMLAR (DIAGRAMS)

Diagramlar görsel ortamda tablolar arasında ilişkisel kullanmayı sağlar. Daha Microsoft Access ile tablolar arasında ilişkiler tanımladıysanız bu nesneyi rahatlıkla kullanabilirsiniz. Sonradan tablo alanları üzerinde yaptığınız değişiklikler otomatikman diyagramlara yansıtılır.



Görsel Ortamda Veritabanı Nesneleri Oluşturmak

Veritabanı nesneleri deyince Viewler, Stored Procedure'ler, Tablolar, Trigger'lar, Rule'lar, Diagramlar aklınıza gelmelidir.

1- Başlat-Programlar- SQL Server 7.0 menüsünden Enterprise Manager'i çalıştırınız.

2- Databases yanındaki + işaretine tıklayarak burayı genişletiniz. Databases üzerine çift tıkladığınızda da sağ tarafta grafiksel olarak veritabanları listelenir.

3- Hangi veritabanın içinde nesne oluşturacaksanız onun üzerine sağ tıklayınız. Gelen menüden New View, New Stored Procedure, New Trigger, New Diagrams vb. seçeneklerini görebilirsiniz. Örneğin yeni bir görünüş oluşturmak için;



a) New View seçeneğini seçiniz.

b) Ekrana gelen pencerede oluşturacağınız view'de kullanacağınız tabloları seçiniz. Add Table düğmesi ile bu işi yapabilirsiniz.

c) Şimdi hangi kolonlar üzerinde işlem yapacaksanız o kolonları seçin.

d) View'i kaydediniz ve Run düğmesine basarak çalıştırınız.


Wizard (sihirbaz) ile veritabanı nesnelerini oluşturmak





1- Enterprise Manager'i yine çalıştrınız.

2- Gelen pencereden Tools(Araçlar) menüsünden Wizards seçeneğini seçiniz.

3- Database(veritabanı) olarak sizin oluşturduğunuz bir veritabanını veya örnek olarak verilen Nortwind Database'ini seçiniz.

4- Ardından veritabanı içinde kullanacağınız tabloları seçiniz. Nortwind database'ini seçtiyseniz Products (Ürünler), Orders (Siparişler) vb tablolarını seçebilirsiniz.

5- Üzerinde işlem yapacağınız bu tablolardaki kolonları (alanları) seçiniz.

6- Bir koşul şart vb. ifadeler kullanacaksanız deyim listesine ekleyiniz.

7- Ardından view oluşturulup Database listesinden veritabanı listesine eklenir.

8- Bir view'i açmak için üzerine sağ tıklayıp Open view ve buradan da Return al Rows seçeneğini seçiniz.



Query Analyzer

Query Analyzer, Transact SQL deyimlerini yazarak sonuçlarını hemen göreceğiniz bir ortamdır. SQL Server'ın program menüsünden seçeceğiniz bu yardımcı programa giriş sırasında varsayılan kullanıcı ad "sa" dır.



Eğer kurulum sırasında şifre vermediyseniz. Password kısmını boş geçiniz. Gördüğünüz gibi pencerenin üst tarafında DB seçim kutusundan OKUL veritabanı seçilmiştir. Üst pencerede Transact SQL komutunu yazdıktan sonra yeşil ok tuşuna basarak sorgu sonucunu alt tarafta görebilirsiniz.








NORMALİZASYON: Az kolonlu çok sayıda tablo kullanmaktır. Normalizasyon , hızlı sıralamayı, INSERT-UPDATE-DELETE deyimlerinde daha iyi performansı, daha az NULL bilgi ile database içindeki tutarsızlığı önlemeyi sağlar.

Özdemir Şarman
aka (Charmant-zavanetratan)
Web Sayfasını Ziyeret Edin Tüm Mesajlarını Bul
Alıntı Yaparak Cevapla
Cevapla 


'MSSQL 2000 Genel' Konusunu PaylaÅŸ
  • RSS
  • del.icio.us
  • StumbleUpon
  • Digg
  • TwitThis
  • Facebook
  • Reddit
  • Google
  • YahooMyWeb
  • E-mail

Benzeyen Konular
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  SQL Server 2000 Tanıtımı ozsarman 0 377 03-12-2010 03:04 PM
Son Mesaj: ozsarman
  MSSQL 2000 70-228 Sinavi Notlari ozsarman 0 340 03-12-2010 02:57 PM
Son Mesaj: ozsarman
  Mssql 2000 'de bir veritabanindaki tüm table'lerin içindeki kayıtları görmek için ozsarman 0 365 03-12-2010 02:56 PM
Son Mesaj: ozsarman
  MSSQL 2000 üzerine Notlar ozsarman 0 353 03-12-2010 02:56 PM
Son Mesaj: ozsarman

Forum Atla:


İletişim | SistemOdasi.net | Yukarıya dön | İçeriğe Dön | RSS
site ekle
Zirve100
Toplist