- Yapısal yordamlar olarak da söylenen Stored Procedures belirli bir işlevi, görevi yerine getirmek için özellilkle yapılandırlımış bir veya birden fazla tablo,sp..vs ile ilişkili kod parçacıklarıdır.
- Kısaca 'Derlenmiş SQL Cümlecikler'dir.
- SP'ler Database Serverda saklanan SQL ifadeleridir. Diğer programlama dilleri gibi parameterler içerir. Bu parametrelere göre çalışıp farklı sonuçlar listeleyebilir.
- Ayrıca bir Stored Procedure içinde başka bir Stored Procedure çağırabiliriz.
- Datebase Serverda saklandıkları için daha hızlı çalışırlar. Normal kod ile çağırmak yerine kodla sadece SP ye parametre gönderip çağırmak çok daha iyi performans sağlamaktadır.
- SP ler sadece ilk çalıştırıldıklarında derlenirler. Diğer çağrılışlarında derlenmeden çalışırlar. Eğer her seferinde kod içinde bu sorguyu çalıştırsak her seferinde derleme işlemi yapılacağından hem zaman hem de performans açısından kötü olur.
- Bir SQL komutu çağrıldığında ayrıştırma , derleme ve çalıştırma aşamalarından geçmektedir. SP’ler önceden derlenmiş olduğu için , normal kullandığımız bir SQL sorgusunda olduğu gibi bu 3 aşamadan geçmez, bu özelliği sayesinde programımızın performansı artmaktadır ve ağ trafiğini de azaltmış oluruz, istemci tarafından bir çok satıra sahip SQL komutunun sunucuya gitmesindense, sadece saklı yordamın adının sunucuya gitmesi ağı daha az meşgul etmiş olur. Bir kez yazıp tekrar ve tekrar kullandığımız için modüler bir yapıda program geliştirmiş oluruz.
- Stored procedure'un diğer bir özelliği ise programlama deyimleri içermesidir. if, next, set vs.. programlama dillerindekine benzer özellikler sunar. Gelen parametrelere göre sorgu yapılıp sonucun dönmesi sağlanabilir.
- Eğer veritabanlı bir projede çalışıyorsanız kesinlikle SP ler ile çalışmalısınız. Çoğu programcı programlarının hiç bir yerinde SQL ifadesi kullanmazlar. Her zaman Stored Procedure ler ile çalışırlar.
T-SQL,Türkçe Kaynak ve Bilgi,Kısaca SQL Ders Notları,SQL Hakkında Herşey
21 Temmuz 2012 Cumartesi
Stored Procedure Nedir?
Etiketler:
AĞ TRAFİĞİ,
derleme,
HIZ,
if,
kod parçacığı,
Modüler,
next,
Performans,
SET,
SQL,
STORED PROCEDURES,
Yapısal Yordamlar
47. ALTER ve DROP Kullanımı
- ALTER Komutu nesneler üzerinde değişiklikler yapmamıza imkan verir.
SORGULAR:
ALTER TABLE Birds
ADD Weight INT NULL
//Birds tablomuza yeni bir Sütun ekleyip değerinin ise NULL olabilir şekilde ayarlıyoruz.
ALTER TABLE Birds
ALTER COLUMN Name VARCHAR(30)
//Örneğimizde Birds tablomuzda önceden kaydettiğimiz sütunun özelliğini değiştiriyoruz. Artık Name alanı 30 karaktere kadar değer alabilir.
DROP TABLE Birds
//Veritabanımızdan Birds tablomuzu siler.
Ders 48'e geçebilirsiniz.
Etiketler:
ALTER,
ALTER COLUMN,
ALTER TABLE,
COLUMN,
DROP,
DROP TABLE,
INT,
KOMUT,
NULL,
SORGU,
SQL,
VARCHAR
46.CREATE İşlemleri
- Veritabanındaki nesneleri oluşturmak için kullanılır.
SORGULAR:
CREATE DATABASE Animals
//Animals isminde yeni bir veritabanı oluşturulur.
CREATE TABLE Birds(BirdId INT,Name VARCHAR(25) )
//Bu sorguda veritabanımızda yeni bir tablo oluşturduk. Kuşlar tablomuz birdId ve Name sütunlarından oluşmaktadır.
Ders 47'ye geçebilirsiniz.
Etiketler:
CREATE,
CREATE DATABASE,
CREATE TABLE,
database,
INT,
NESNE,
SORGU,
SQL,
VARCHAR,
veritabanı
45. DELETE Kullanımı
- DELETE ifadesi tablomuzdaki bir veya birden fazla kayıdın silinmesini sağlar.
- Eğer koşul belirtmessek bütün kayıtları tablomuzdan siler. O yüzden DELETE ifadesini kullanırken dikkat etmeli ve BEGIN TRANSACTİON ..yapısını kullanmamız önem arz etmektedir.
WHERE <Sütun_Adı>=<Koşul_Değeri>
ÖRNEK: Sorgumuzda Employees tablumuzdaki bir kayıdı silmek isteyelim.
SORGU: SELECT * FROM Employees
DELETE FROM Employees WHERE EmployeeID=10
SELECT * FROM Employees
Ders 46'ya Geçebilirsiniz.
Etiketler:
BEGIN TRANSACTION,
DELETE,
ders notu,
FROM,
NOT,
SELECT,
SORGU,
SQL,
transaction,
Türkçe,
WHERE
44. UPDATE Kullanımı
- UPDATE deyimi tablomuzda bulunan verileri güncellemek, değiştirmek için kullanılır.
UPDATE <tablo adı>
SET <sütun adı>= <yeni değer>
WHERE <sütun adı> = <eski değer>
ÖRNEK: Sorgumuzda Çalışan tablomuzda bir kaydımızı güncellemek isteyelim. 'Margaret' isimli çalışanın terfi aldığını düşünürsek gerekli güncellemeyi yapalım. 2 tane aynı SELECT sorgusunu farklı görmek için koydum.
SORGU:SELECT * FROM Employees
UPDATE Employees SET Title='Sales Manager' WHERE EmployeeID=4
SELECT * FROM Employees
Ders 45' e Geçebilirsiniz.
SELECT * FROM Employees
Ders 45' e Geçebilirsiniz.
Etiketler:
bilgi,
EMPLOYEES,
FROM,
kaynak,
SELECT,
SET,
SORGU,
SÖZ DİZİMİ,
SQL,
tablo,
Türkçe,
UPDATE,
WHERE
18 Temmuz 2012 Çarşamba
43.INSERT INTO... VALUES Kullanımı
- INSERT INTO Deyimi bir tabloya yeni kayıt eklemek için kullanılır.
- Önce gördüğümüz INSERT Deyiminden farklı olarak sadece istediğimiz sütunlara da kayıt işlemi yapabiliriz.
- 2 farklı kullanım şekli vardır.
INSERT INTO tablo_ismi (kolon1, kolon2, kolon3,...)
VALUES (deger1, deger2, deger3,...)
2-) Söz Dizimi
INSERT INTO tablo_ismi
VALUES (deger1, deger2, deger3,...)
ÖRNEK: Çalışan tablomuza sadece isim ve soyad bilgilerini girerek yeni bir kayıt ekleyebiliriz.
SORGU:INSERT INTO Employees(LastName,FirstName)
VALUES ('Cücü','Cüneyt')
Ders 44'e geçebilirsiniz.
Etiketler:
bilgi,
CROSS JOIN,
deyim,
EMPLOYEES,
INSERT,
INSERT INTO... VALUES,
işlem,
kayıt,
kaynak,
NOT,
SORGU,
SQL,
TABLE,
transaction,
Türkçe,
VALUES
3 Temmuz 2012 Salı
42. INSERT...SELECT Kullanımı
- Bir sorgunun sonuç kümesini yeni bir tabloya kayıt olarak atmak istersek INSERT... SELECT yapısını kullanırız.
- Bu durumda dikkat etmemiz gereken 2 durum vardır:
- Değer girdiğimiz alanın default(varsayılan) bir değerinin olup olmadığına,
- Tablonun alanlarının boş(NULL) değere izin verip vermediğine dikkat etmeliyiz. Eğer NULL değere izin vermiyorsa gerekli veri tipinde mutlaka değer göndermeliyiz.
SORGU: INSERT customers
SELECT SUBSTRING(firstname,1,2)+SUBSTRING(lastname,1,3)
,lastname, firstname, title, address, city
,region, postalcode, country, homephone, NULL
FROM employees
Ders 43'e geçebilirsiniz.
Etiketler:
FROM,
INSERT,
INSERT..SELECT,
Müşteri,
NULL,
SELECT,
SORGU,
SUBSTRING(),
TABLE,
Varsayılan
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.
SORGU:SELECT * FROM Shippers
INSERT Shippers(CompanyName,Phone)
VALUES('IstanbulKargo','(0232) 456-89-89')
SELECT * FROM Shippers
Ders 42'ye geçebilirsiniz.
Etiketler:
FROM,
INSERT,
INSERT... VALUES,
INTEGER,
PRIMARY KEY,
SELECT,
ShipperID,
SORGU,
SQL,
tablo,
VALUES,
VARCHAR
Kaydol:
Kayıtlar (Atom)