25 Mart 2017

PL/SQL Nedir? ve SQL Tipleri DDL-DML-DCL-TCL Nedir?

PL/SQL Nedir? ve SQL Tipleri DDL-DML-DCL-TCL Nedir?

Oracle veritabanı dili olan PL/SQL, Oracle veri tabanı sistemlerinde Trigger ve Stored Procedure yazmak üzere geliştirilmiş temel sql komutlarının yanında programlamada akış kontrollerini ve değişkenleri kullanmaya olanak sağlayan yani yapısal dillere ait özelliklerin standart SQL'e eklenmesi sonucu oluşan bir dildir.

Stored Procedure: Database'de çoğunlukla Batch işlemlerinin tutulduğu ve Veri tabanı içinde çalışır durumda olan SQL kodlarıdır. Bu kodlar SQL Statement(deyimlerinden) daha hızlı ve performanslı çalışırlar. Yazılan SQL Query'ler(Sorgular) Veri tabanında Prepared(Hazır-Derlenmiş) olarak bulunduğundan tekrar tekrar Back-End(Server) tarafta derlenmez.

Primary Key ve Foreign Key hakkında bilgi verecek olursak.

Bir tablodaki satırların Unique(Benzersiz) olma tanımına Primary Key (PK) denir. Örnekle bir tabloda benzersiz Request-ID, TCKN gibi kolonlar olabilir, çünkü bunların benzersiz olması gerekir birbirinden kolay ayırt etmek için. Örnekle HR.EMPLOYEES tablosunda aşağıdaki örneği verebiliriz. TOAD'da bir tablodaki Primary Key (PK) kolonları görmek içinde Schema Browser'daki Columns kısmından PK alanından görebilirsin.

PL/SQL Nedir? ve SQL Tipleri DDL-DML-DCL-TCL Nedir?

Birden fazla tablodaki veriler birbiri ile Foreign Key (FK) vasıtasıyla Logical olarak ilişkilendirilebilir. Örnekle yukarıdaki HR.EMPLOYEES tablosundaki DEPARTMENT_ID kolonu ile HR.DEPARTMENTS tablosundaki DEPARTMENT_ID kolonun ilişkili olması gibidir. HR.DEPARTMENTS tablosundaki DEPARTMENT_ID kolonu ise burada Primary Key (PK) özelliği taşır.

Veri Oluşturma, düzenleme ve sorgulama Dili olan DML (Data Manipulation Language) komutlarından en çok kullanılanları yazacağım. Genel olarak DML veri okuma ve işleme için kullanılır. DML temelde beş komuttan oluşup kısaca bahsetmek gerekirse;

INSERT komutu tabloya yeni kayıt girmek için kullandığımız komuttur.
SELECT komutu girdiğimiz kayıtları okuyabilmek için kullandığımız komuttur.
UPDATE tablo içerisinde bulunan kaydı güncellemek için kullandığımız komuttur.
DELETE girdiğimiz kayıtları silebilmek için kullandığımız komuttur.
MERGE UPSERT işlemi için kullanılır (ekleme veya güncelleme).

DDL (Data Definition Language) veri tabanında tablo ve kolonları tanımlamak, eklemek, silmek için kullanılır. Genelde DBA'ler DDL komutlarını kullanır ve DDL komutları kurumsal yerlerde yetki isteyebilir. DML gibi bu komutlara GRANT verilmez. DDL komutları;

CREATE Veri tabanında nesne yaratır.
ALTER Veritabanının yapısını değiştirir.
DROP Veri tabanından obje siler.
TRUNCATE Tablodaki kayıtları içerdikleri alan ile birlikte siler.
COMMENT Yorum ekler.
RENAME Nesnenin asını değiştirir.

PL/SQL Nedir? ve SQL Tipleri DDL-DML-DCL-TCL Nedir?

DCL (Data Control Language) Veritabanı üzerinde ki verilere erişim izinleri için kullanılan dildir.

GRANT: Veritabanı kullanıcısına, veri tabanı rolüne veya uygulama rolüne izinler vermek için kullanılan komuttur. TOAD'da ilgili tabloda Schema Browser üzerinde Script ve Grants kısmından hangi kullanıcıya hangi komutları kullanma yetkisi verildiğini görebilirsiniz. Genelde DML komutları için yetki verirler ve kullanımı aşağıdaki gibidir;

GRANT SELECT ON HR.DEPARTMENTS TO BURAK

GRANT DELETE,INSERT,SELECT,UPDATE ON HR.DEPARTMENTS TO AVCI

Yukarıda BURAK kullanıcısına sadece SELECT kullanma yetkisi verilirken, AVCI kullanıcısına DELETE,INSERT,SELECT,UPDATE yetkisi verilmiştir.

Grantee: Yetki Alan Kullanıcı
Grantor: Yetki Veren Kullanıcı
Privilege: Yetkisi Olduğu Komutlar

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.

PL/SQL Nedir? ve SQL Tipleri DDL-DML-DCL-TCL Nedir?

TCL (Transaction Control Language) DML ile gerçekleştirdiğimiz işlemleri yönettiğimiz ve kontrol ettiğimiz dildir.

COMMIT: Yapılanları veri tabanında kalıcı hale getirir. İşin tamamlanmasını sağlar.
SAVEPOINT: Daha sonra geri dönülecek bir dönüş noktası belirler.
ROLLBACK: Son COMMIT'e kadar olan yeri geri alır.
SET TRANSACTION: Transaction ayarlarının değiştirilmesi, Rollback segmentlerinin belirlenmesi gibi işlemlerde kullanılır.


Kaynaklar
en.wikipedia.org/wiki/Data_manipulation_language (Data Manipulation Language)
en.wikipedia.org/wiki/Data_definition_language (Data Definition Language)
en.wikipedia.org/wiki/Data_control_language (Data Control Language)
en.wikipedia.org/wiki/SQL (Structured Query Language)
tr.wikipedia.org/wiki/PL/SQL (Procedural Language/Structured Query Language)
en.wikipedia.org/wiki/PL/SQL (Procedural Language/Structured Query Language)
tr.wikipedia.org/wiki/Trigger (Trigger)
en.wikipedia.org/wiki/Stored_procedure (Stored Procedure)
www.w3schools.com/sql/sql_primarykey.asp (SQL Primary Key Constraint)
en.wikipedia.org/wiki/Unique_key (Unique Key-Primary Key)