SELECT etiketine sahip kayıtlar gösteriliyor.
SELECT etiketine sahip kayıtlar gösteriliyor.

SQL'de INSERT…SELECT Kullanımı

  • Sorgu sonucunu bir tabloya eklemek istediğimizde  INSERT…SELECT ifadesini kullanırız.
  • Verilerin yazılacağı tablo alanlarının boş (NULL) değere izin verip vermediğine veya alanın varsayılan (default) bir değeri olup olmadığına dikkat edilmelidir. 
  • Tablo alanlarında boş (NULL) değere izin verilmiyorsa, bu alanlar için mutlaka bir değer belirtilmelidir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu : Sorgumuzda Çalışanlar (Employees) tablosundaki verileri Müşteriler (Customers) tablosuna ekleyelim. Sorgu içerisinde substring() fonksiyonu ile FirstName ve LastName alanlarından sırasıyla 3 ve 2'şer harf alarak yeni bir alan oluşturalım. Bu alan verinin ekleneceği Müşteriler (Customers) tablosunun birincil alanı CustomerID’ ye yazılacaktır.


Sorgu sonucunda 92 adet olan Customers sayısı 101 olacaktır.


SQL'de INSERT ve VALUES Birlikte Kullanımı

  • INSERT ifadesini VALUES ile birlikte kullanarak tablolara yeni satırlar eklenebilir.
  • Eklenecek olan verilerde veri türü ve sutun sırası tablonunkilerle uyuşmalıdır.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 
 
Örnek Sorgu :  INSERT ve VALUES ifadelerini birlikte kullanarakk "Bayraktar Tea Company" isimli firmayı Müşteriler (Customers) tablosuna ekleyelim.

INSERT customers(CustomerID,companyname,contactname,contacttitle,
Address,city,region,postalcode,country,phone,fax) VALUES ('BYRK','Bayraktar Tea Company','Ibrahim Bayraktar','Owner','Cumhuriyet Street','Yozgat','TR','66100','Turkei','(354) 000-0000','(354) 000-0000')


SQL'de UNION Kullanımı

  • UNION iki veya daha fazla SELECT sorgusunun sonuçlarını tekbir sonuç kümesinde birleştirir.  
  • Görüntülenecek olan tablolar aynı veri türünde aynı sayıda ve aynı düzendeki sütunlardan oluşmalıdır.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 
Örnek Sorgu : Müşteriler (Customers) tablosu ve Çalışanlar (Employees) tablosu verilerini birleştirelim.

SELECT (firstname+' '+lastname) AS ADI,city AS 'ŞEHİR', postalcode AS 'POSTA KODU'
FROM employees UNION SELECT companyname, city, postalcode FROM customers

SQL'de SELF-JOINS Kullanımı


SELF-JOINS Bir tablonun kendisiyle birleştirilme  işlemidir.
(Bir tablodaki aynı değerleri içeren farklı satırları listelemek amacıyla kullanılır.)

Örnek Sorgu : Görevi (Job Title) aynı olan çalışanları listeleyelim. WHERE ifadesi ile belirtilen koşul kendisiyle eşleşen kayıtların görüntülenmesi engeller.

SELECT a.EmployeeID AS 'ÇALIŞAN ID',LEFT(a.lastname,10) 
AS 'İSİM',LEFT(a.title,10) AS 'GÖREVİ',b.EmployeeID AS 'ÇALIŞAN ID', LEFT(b.lastname,10) 
AS 'İSİM',LEFT(b.title,10) AS 'GÖREVİ'
FROM employees AS a INNER JOIN employees AS b ON a.title=b.title
WHERE a.EmployeeID < b.EmployeeID ORDER BY a.EmployeeID


SQL'de INNER JOIN ile 3 ve Daha Fazla Tabloyu Birleştirme


Bazen çok tablo üzerinde sorgu yapma ihtiyacı duyabiliriz. JOIN işlemiyle birleştirilen tablolar bir başka tabloya aradaki ortak sütunlar üzerinden bağlanabilir.

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 
Örnek Sorgu : Sipariş Detayları(Order Details) tablosunu ara tablo şeklinde kullanarak, Siparişler (Orders) ve Ürünler(Products) tablosundan gerekli bilgiler görüntülenmiştir.

SELECT OrderDate,ProductName FROM Orders AS O
INNER JOIN [Order Details] AS OD ON O.OrderID=OD.OrderID
INNER JOIN Products AS P ON OD.ProductID=P.ProductID
WHERE OrderDate='7/8/96' ORDER BY ProductName
 

SQL'de OUTER LEFT/RIGHT/CROSS JOIN Kullanımları

OUTER JOIN-LEFT JOIN Kullanımı
  • INNER JOIN'den farklıdır. 
  • Soldaki tablo baz alınarak sorgu çalıştırılmasıdır. 
  • Soldaki tablodan tüm kayıtlar çekilir ve sağdaki tabloda eşleşen kayıtlar aynen yazılır. 
  • Eşleşmeyen kayıtlar için NULL değer verilir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 
 
LEFT JOIN Kullanımı : SELECT <sütun_ad(lar)ı> FROM <ilk_tablo> LEFT JOIN <ikinci_tablo> ON <ilk_tablo>.<anahtar_alan> = <ikinci_tablo>.<anahtar_alan>  

Örnek Sorgu : Sorgumuz SELECT kısmında iki sütun tekbir sütun adı altında birleştirilmiştir. Çalıştırıldığında çalışanın tam adı ve müşterilerden aldığı siparişler ve tarihleri listelenecektir.

SELECT Employees.FirstName+' '+Employees.LastName AS Name,OrderID,OrderDate
FROM Employees LEFT JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID
 
 
OUTER JOIN-RIGHT JOIN Kullanımı 
  • LEFT OUTER JOIN işleminin tersini yapar.
  • Sağdaki tablonun baz alınarak sorgu çalıştırılmasıdır. 
  • Sağdaki tablodan tüm kayıtlar çekilir ve soldaki tabloda eşleşen kayıtlar aynen yazılır.
  • Eşleşmeyen kayıtlar için NULL değer verilir.
RIGHT JOIN Kullanımı : SELECT <sütun ad(lar)ı> FROM <ilk_tablo> RIGHT JOIN <ikinci_tablo> ON <birinci_tablo>.<anahtar alan> = <ikinci_tablo>.<anahtar_alan>

Örnek Sorgu : Sorgumuzda tüm müşteriler ve verdikleri siparişlerin tarihleri listelenecektir.

SELECT companyname, customers.CustomerID, orderdate
FROM customers RIGHT OUTER JOIN orders ON customers.CustomerID = orders.CustomerID
 
 
 OUTER JOIN-CROSS JOIN Kullanımı
  • İlişkili tablolar arasındaki tüm eşleşmeleri listeler.
  • Ortak bir alan belirtilmesine gerek yoktur.
  • CROSS JOIN kullanılırken ON ifadesi kullanılmaz.

Örnek Sorgu : Üreticilerin çalışabilecekleri tüm olası gemi şirketleri listelenir.

SELECT suppliers.companyname, shippers.companyname
FROM suppliers CROSS JOIN shippers
 

SQL'de INNER JOIN Kullanımı

  • INNER JOIN SQL de  varsayılan olarak kullanılan tablolaları bağlama işlemidir.
  • INNER JOIN birleştirilen tablolarda ilişkinin sağlandığı tüm kayıtları getirir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu : 
SELECT productname AS 'Ürün Adı', companyname AS 'Şirket Adı' FROM products
INNER JOIN suppliers ON products.SupplierID = suppliers.SupplierID
(Hangi firmadan hangi ürünü aldığımızı iki farklı tablodan birleştirerek listeleyelim.) 


SQL'de Tablo Birleştirme ve JOIN


SQL'de bazı durumlarda birden fazla tablodan veri çekme ihtiyacı duyabiliriz. Bunun için tablolar arasında bir ilişki kurulması gerekmektedir. Bu ilişki JOIN ile sağlanır. JOIN ifadesi birden fazla tabloyu birbirine bağlayıp  bu tablolar üzerinde işlem yapmamıza olanak sağlar.

JOIN ifadesi ile hangi tabloları ve nasıl birleştireceğimizi ON ifadesi ile tabloların hangi alanlar üzerinden birleşeceğini belirtiriz.

Tablolar genelde Birincil Anahtar ve Yabancı Anahtar alanları üzerinden birleştirilselerde, gerektiğinde diğer herhangi bir alan da bunun için kullanılabilir. Fakat bu alanların aynı tür veri içerdiğinden emin olmalısınız.

Birincil Anahtar (Primary key), her kayıt için benzersiz bir değer taşıyan alandır. 

Örneğin, öğrenci kayıtlarının tutulduğu bir tabloda, öğrenci numarasının saklandığı alan birincil anahtar olarak seçilebilir. Zira öğrenciyle ilgili tüm bilgiler gerçekte onun numarası ile kodlanmıştır ve her öğrencinin numarası bir birinden farklıdır.

Tablolar birleştirilirken Primary Key - Foreign Key ikilisi kullanılır. Tablolar arası ilişkiler aynı zamanda Unique Index kullanılarakta yapılabilir. Fakat yaygın olarak PK - FK kullanılır.

Primary Key (Birincil Anahtar) : Her satırı tekil bir şekilde tanımlayan benzersiz anahtardır. Primary Key sayesinde tablolarda bulunan satırlar birbirlerinden farklı olur ve her satırın Primary Key değeri farklı atanır. Primary Key tek bir sütun olduğu gibi birden fazla sütundan da oluşabilir.

  • Primary Key olacak sütun asla boş değer almamalıdır.
  • Primary Key olacak sütun tekrarı olmayan kayıtlardan oluşmalıdır…
  • Primary Key sütunu olabildiğince küçük ve basit veri tipinde tanımlanmalıdır.

Foreign Key (Yabancı Anahtar) : Bir tablodaki sütunun başka tablodaki anahtara olan referansını belirler. Primary Key'den farklı olarak bir tabloda birden fazla Foreign Key olabilir.

Örnek Sorgularda kullandığım Northwind Veritabanı diyagramını inceleyerek PK - FK bağlantılarını görebilirsiniz (diyagram'ın ayrıntılı sürümünü indirmek için tıklayınız.)


SQL de Matematiksel ve Metinsel işlemler

  • Tablolardaki alanları kullanarak, matematiksel veya metinsel ifadeler ile yardımıyla sorgularımızın gücünü arttırabiliriz.
  • SQL matematiksel işlemlerin sonucunu otomatik olarak üretmeyi sağlayan özelliklere sahiptir. 

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu : SELECT OrderID, ProductID, (UnitPrice * Quantity) as TotalCost FROM [Order Details] WHERE (UnitPrice * Quantity) > 10000
(Birim fiyat (UnitPrice) alanı Miktar (Quantity) alanı ile çarpılarak toplam fiyat hesaplanır ve “TotalCost” (Toplam Maliyet) adı ile yeni bir alan olarak görüntülenir.) 

SQL'de ORDER BY Kullanımı

  • ORDER BY anahtar kelimesi satırları, bir veya daha fazla sütuna göre sıralamak için kullanılır.
  • ORDER BY ile hangi sütuna göre sıralayacağımızı ve sıralamanın artan veya azalan şekilde yapılacağını belirleriz. 
  • Sıralama artan (ASC) ya da azalan (DESC) olabilir.
  • Sıralama tipi belirtilmemiş ise SQL veriyi artan şekilde sıralar.
  • Sıralama yapılacak alanlar SELECT ifadesinde yer almak zorunda değildir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1 : SELECT ProductName, UnitPrice FROM Products ORDER BY UnitPrice, ProductName
(Ürünler tablosunda ürün kodu, fiyatı ve ismini, önce fiyata göre, sonra da ürün adına göre görüntülemek isteyelim.

Örnek Sorgu 2 : SELECT ProductID, UnitPrice, ProductName FROM Products ORDER BY UnitPrice DESC
(Ürünler tablosunu fiyata göre azalan sırada listeleyelim.)

 























Örnek Sorgu 3 : SELECT * FROM Customers ORDER BY Country,City
(Müşteriler tablosunu Ülke ve Şehir kriteri vererek listeleyelim.

SQL'de SELECT DISTINCT Kullanımı

  • Bazen veriler arasındaki benzerlikleri kaldırarak sadece benzer olmayanları listeletmek isteyebiliriz. Böyle durumlarda SELECT DISTINCT sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar. 
  • Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. Fakat DISTINCT ile her tekrarlanan kayıt sadece bir kez listelenir.  
  • DISTINCT SQL komutu SELECT komutu ile birlikte kullanılmaktadır.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
 
Örnek Sorgu : SELECT DISTINCT City FROM Customers
(Müşteriler (Customers) tablosundaki  Şehir (City) sutunlarını listeleyelim. Ve aynı değerlerin tekrarlanmamasını sağlayalım.) 

SQL'de Mantıksal Operatörler (Logical Operators)

Mantıksal operatörler iki karşılaştırma işleminin sonucunu birleştirmek için kullanılır.
  • AND her iki taraf da True ise True, diğer durumlarda True değerini verir. Birleştirilen koşulların tümüne uyan kayıtları bize listeler.
  • OR Her iki taraf da False ise False, diğer durumlarda True değerini verir. Tanımladığımız koşullardan en az bir tanesine uyan kayıtları listeler. 
  • BETWEEN ifadesi de AND operatörü ile aynı işlemleri gerçekleştirebilmektedir. 
  • NOT operatörü ise kendisinden sonra gelen koşulu sağlamayan kayıtları listeler. 
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
Örnek Sorgu AND : SELECT OrderID, ShipName FROM Orders WHERE CustomerID LIKE '%EN%' AND ShipVia=3
(Orders tablosunda CustomerID değerinin içinde “EN” ifadesi geçenleri ve ShipVia değeri 3’e eşit olan verilerin tamamını listeler.)
 
 
Örnek Sorgu OR :  SELECT OrderID, ShipName, ShipVia FROM Orders WHERE OrderID LIKE 'q2313qwe12' OR ShipVia=3
(Orders tablosunda OrderID değeri 'qwe2313qwe12' değerini içerenler ya da ShipVia değeri 3’e eşit olan değer varsa sorguyu çalıştır, verileri listele.)


Örnek Sorgu NOT : SELECT OrderID, ShipName, ShipVia FROM Orders WHERE NOT (ShipVia=3 OR ShipVia=2)
(Orders tablosunda ShipVia değeri 2 ya da 3 olmayan değerleri listeler.)
 

Örnek Sorgu BETWEEN : SELECT  OrderID, OrderDate FROM Orders WHERE  OrderDate Between '1/1/1996' And '1/1/1998'
(1 Ocak 1996  ile 1 Ocak 1998 tarihleri arasındaki siparişleri listelemek isteyelim.)
 
 
NOT :
Parantez kullanımı ikiden fazla koşul olması durumunda koşulların öncelik sırasını belirler.
Parantez kullanılmaması durumunda SQL önce NOT, sonra AND ve en son da OR mantıksal operatörünü işler. 

SQL'de LIKE ve JOKER Karakterlerin Kullanımı

  • LIKE Belirttiğiniz şeye benzeyenleri seçer. 
  • Sütundaki değerlerin, joker karakterler ile bir arama koşulu ile karşılaştırılmasını sağlar.      
  • Belirli aralıklardaki belli harflerle başlayan veya biten değerler için joker karakterler kullanılır.
  • Like filitreleme sırasında kullanılırken sadece metin alanlarında kullanılabilmektedir. Sayısal ve tarih değerindeki alanların filitrelenmesinde kullanılamaz.
  • Ayrıca yine Like komutundan sonra gelen filtre değeri ( ' ) tek tırnak içerisinde yazılması gerekmektedir.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Örnek Sorgu 1 : SELECT ProductName FROM Products WHERE ProductName LIKE 'R%'
('Products' (Ürünler) tablosunda 'R' harfi ile başlayan ürünlerin listesini alalım.)

Örnek Sorgu 2 : SELECT ProductName FROM Products WHERE ProductName LIKE '%cha%'
('Products' (Ürünler) tablosunda içinde 'cha' geçen ürün isimlerinin listesini alalım.)


Örnek Sorgu 3 : SELECT ProductName FROM Products WHERE ProductName LIKE '____ost'
('Products' (Ürünler) tablosunda 7 harfli bir ürün adı var, son üç harfi 'ost'. Bu ürünü bulalım.)


Örnek Arama Koşulları : 

SQL'de Karşılaştırma Operatörlerinin Kullanımı

  • SQL kriterlerle sorgular yapmamıza izin verir.
  • SQL içinde verileri çeşitli açılardan karşılaştırmak için karşılaştırma operatörleri kullanılmaktadır.  
  • Karşılaştırma operatörlerinde karşılaştırdığımız veri tiplerine dikkat etmemiz gerekmektedir.     
  • Karakter veri türü ile ancak karakter türünde başka bir veri; bir sayısal veri ile ancak sayısal olan başka bir veri karşılaştırılabilir.
  • Karşılaştırma ifadesinde karşılaştırılan verilerin türü aynı olmalıdır.

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Örnek Sorgu 1 : SELECT * FROM Products WHERE UnitPrice =15
('Products' (Ürünler) tablosunda UnitPrice (Birim Fiyatı ) '15' olan ürünler



Örnek Sorgu 2 : SELECT * FROM Products WHERE UnitPrice < >15
('Products' (Ürünler) tablosunda UnitPrice (Birim Fiyatı ) '15' olmayan diğer bütün ürünler



Örnek Sorgu 3 : SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>60
('Products' (Ürünler) tablosunda UnitPrice (Birim Fiyatı ) '60''dan büyük olan ürünler


WHERE Komutunun Kullanımı

WHERE :  Görüntülemek istediğimiz verileri belirli bir kritere göre seçebilmemizi sağlar. Bir koşulu belirterek sadece o koşula uyan kayıtların seçilmesini sağlar. WHERE kullanımı zorunlu olmamakla birlikte koşullu veri seçmek istediğimizde FROM ifadesinden sonra eklenir.

WHERE ile birlikte kullanılan Operatörler




 
Kullanımı :  
SELECT <sütun adı>
FROM <tablo adı>
WHERE <koşullar>





NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

Örnek Sorgu 1 : SELECT * FROM Orders WHERE ShipName ='Island Trading'
('Orders' tablosundaki ShipName değeri 'Island Trading' olan bütün veriler)


Örnek Sorgu 2 : SELECT ProductName, UnitPrice FROM Products WHERE UnitPrice >= 40
('Products' tablosundaki fiyatı 40 liradan büyük ve eşit olan veriler)


Örnek Sorgu 3 : SELECT ProductName, UnitPrice FROM Products WHERE UnitPrice BETWEEN 17 and 20
('Products' tablosundaki fiyatı 17 ve 20 arasında değişen veriler)

SELECT Komutunun Kullanımı

SELECT :  En sık kullanılan komutlardan birisidir. Veri tabanından bir alan seçmemizi sağlar. Seçilen alanı bir sonuç tablosunda saklar. Genellikle bir ya da daha çok tablonun bütün alanları ya da belli alanları için SELECT komutu yazılır. 

Kullanımı :  SELECT <sütun adı> FROM <tablo adı>

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu

SELECT ile Tablodaki Bütün Sütunları Seçmek
Bir tablodaki tüm alanları görüntülemek için tek tek bütün sütun adlarını belirtmekten daha kolay bir yöntem vardır. SELECT ifadesinden sonra "*" işaretini yazdığınızda SQL bunu ‘tablodaki tüm sütunlar’ olarak yorumlayacaktır. 

SQL Server'ımızda 'New Query' (Yeni Sorgu) diyerek boş bir sorgu sayfası açalım.

Sorgumuz: SELECT * FROM Region 
('Region' tablosundaki bütün verileri göster diyoruz.Sonuçları Results Tablosunda görebiliriz.)  


SELECT ile Tablodaki Belirli Sütunların Görüntülenmesi   
Sorgulamalarımızda çoğu zaman bir tablodaki tüm veriler yerine sadece bir kısmına ihtiyaç duyarız. Bu durumlarda sorgulamada "*"  işareti ihtiyacımızı karşılamayacaktır. Bu nedenle "*" işareti yerine ihtiyacımız olan sütun isimlerini SELECT ifadesinin ardından yazarak gerekli verilerin görüntülenmesini sağlayabiliriz. 

Sorgumuz: SELECT RegionDescription FROM Region
('Region' tablomuzdaki 'RegionDescription' sütununu seçip görüntülenmesini sağlıyoruz.











SQL DML, DDL ve DCL Komutları

SQL DML (Data Manipulation Language) Veri İşleme Dili 

Veri girmek, değiştirmek, silmek ve verileri almak için kullanılan DML komutlarının tümü olarak tanımlanır. Kısaca veritabanında bilgi üzerinde çalışmayı sağlar. Bilgiyi çağırma, bilgiye yeni bir şeyler ekleme, bilgiden bir şeyler silme, bilgiyi güncelleştirme işlemlerini yapar. 

Temel dört komutu vardır:
  • SELECT : Veritabanındaki nesneden alan çağırmayı ve gereken bilgiyi görebilmeyi sağlar.
  • UPDATE : Nesnede bilgi güncellemeyi sağlar.
  • INSERT : Nesneye alan eklemeyi sağlar.
  • DELETE : Nesneden alan silmeyi sağlar.
SQL DDL (Data Definition Language) Veri Tanımlama Dili

Verilerin tutulduğu nesneler olan tabloların yaratılmasını, silinmesini ve bazı temel özelliklerinin düzenlenmesini sağlar. 

En yaygın kullanılan DDL komutları şunlardır: 
  • CREATE TABLE : Veritabanı üzerinde bir tablo yaratmak için kullanılır.
  • ALTER TABLE : Tabloda değişiklik yapmak, yeni bir sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek gibi yapısal değişiklikler yapılması için kullanılır.
  • DROP TABLE :  Tabloyu fiziksel olarak siler. (verilerle birlikte)
  • TRUNCATE TABLE : Tablodaki verileri siler fakat tablo yapısı kalır.
  • CREATE INDEX : Index oluşturmak için, tablonun sütun adı üzerinde indeks oluşturur.
  • CREATE VIEW : Görüntü oluşturmak için kullanılır.
  • DROP VIEW : Görüntüyü siler.

SQL DCL (Data Control Language) Veri Kontrol Dili 

Veri Kontrol Dili bir veritabanı kullanıcısı veya rolü ile ilgili izinlerin düzenlenmesini sağlar. DCL komutlarını kullanabilmek için SQL Server'da varsayılan değer (default) olarak yetki sahibi olan gruplar: sysadmin , dbcreator , db_owner , db_securityadmin 'dir. Sunucuya dışarıdan bir erişim sağlamak için bir giriş (login) oluşturulmalıdır.

Temel DCL komutları şunlardır:
  • GRANT  : Veritabanı kullanıcısına, veri tabanı rolüne veya uygulama rolüne izinler vermek için kullanılan komuttur.
  • DENY : Kullanıcıların haklarını kısıtlayan komuttur.
  • REVOKE : Daha önce yapılan tüm kısıtlama ve izinleri iptal eden komuttur. Bir nesneyi oluşturan kullanıcının REVOKE ile nesne üzerindeki yetkilendirme ve kullanma hakkı yok edilemez. REVOKE komutunu, sys_admin rolüne veya db_owner, db_securityadmin sabit veri tabanı rollerine sahip kullanıcılar ve nesne için dbo olan kullanıcı çalıştırabilir.