SQL*Plus

SQL*Plus, SQL komutları ve PL/SQL bloklarını çalıştırmayı ve veritabanını yönetmeyi sağlar.

SQL*Plus ‘a Giriş

SQL*Plus, SQL komutları ve PL/SQL bloklarını çalıştırmayı ve veritabanını yönetmeyi sağlar. Veritabanını yönetmek için bir çok grafik arayüzlü program olsa da bu işi guruları command prompt kullanmanızı tavsiye ederim.

SQL*Plus ‘ı kullanarak yapılabilecek işlemler;

  • SQL komutlarını ve PL/SQL bloklarını girme, düzenleme, saklama, geri getirme ve çalıştırma
  • Sorgu sonuçlarını bir rapor düzeninde formatlayabilme
  • Herhangi bir tablo için sutun tanımlarını listeleyebilme
  • Veritabanındaki verilere ulaşıp bunları kopyalayabilme
  • Uç kullanıcılara mesajlar gönderip bunlardan gelen cevapları kabul edebilme
  • Temel Kavramlar Komut (command) SQL*Plus yada Oracle ‘dan yapması istenen
  • Blok (block) Yordamsal bir mantık içinde birbiriyle ilişkili SQL ya da PL/SQL komutlar grubu
  • Çizelge (table) Oracle ‘daki temel saklama birimi
  • Sorgu (query) Bir ya da daha fazla çizelgeden bilgi getiren SQL komut (Select)
  • Sorgu sonucu Sorgu sonucu getirilen veri (query result)
  • Rapor (report) SQL*Plus komutları yardımıyla biçimlenmiş sorgu sonuçları

 

SQL*Plus ‘ın Başlatılması ve Bağlanılması

Linux/UNIX sisteme girdikten sonra komut iletisinden (terminal) aşağıdaki komutu girerseniz, sizden kullanıcı kodunuz ve parolanız istenecektir.

SQLPLUS kullanıcı/sifre@sid Temel sytax bu şekildedir.
CMD > SQLPLUS /NOLOG

SQL>conn / as sysdba

sisteme oturum açan kullanıcı DBA (oinstall) grubunda ise şifre girmeden giriş yapabilir
SQLPLUS; connect user/sifre; Default sid e normal kullanıcı bağlantı şekli
CMD > SQLPLUS kullanıcı/sifre Default sid e bağlanır.
CMD > SQLPLUS sys/sifre as sysdba; Default sid e dba olarak bağlanır.

SQL*Plus: Release 10.2.0.1.0 – Production on Thu Dec 31 16:42:18 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

(yazıp entera basarız güvenlik nedeni ile yazdıklarımız ekrana gelmez **** dahi gelmez hiçbir şey yazmaz)

“Connected to an idle instance” şeklinde bir uyarı aldı iseniz.

SqlPlus

Artık sisteme girdiniz (logging on). “SQL>” komut iletisi SQL*Plus ‘ın sizin komutlarınızı kabul edip 

işletmeye hazır olduğunu gösterir. Şimdi bu komut satırından SQL komutlarını ya da PL/SQL bloklarını
işletebilirsiniz. SQL*Plus ‘ı daha çabuk başlatmak için şu komutu kullanabilirsiniz;

SQL*Plus: Release 10.2.0.1.0 – Production on Thu Dec 31 17:06:00 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL*Plus ile işinizi bitirdikten sonra işletim sistemine geri dönmek için exit komutunu kullanabilirsiniz.

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bit Production

With the Partitioning, OLAP and Data Mining options

Komutların Girilmesi ve Çalıştırılması

Komutların girilmesi
Bilgisayarınızın imleci (cursor) komut iletisinden sonra görünür. İmleç, sizin klavyeden gireceğiniz
karakterin ekranda görüneceği konumu gösterir. SQL*Plus ‘dan yapmasını istediğiniz şeye karşı gelen
komutu yazmanız gerekir. Genellikle komutlarla diğer kelimeler arasında boşluk ya da tab karakterleri
olur.Bunların sayısı önemsizdir. Komut iletisinden girebileceğiniz üç tip komut vardır;

SQL komutları

PL/SQL blokları özel amaçlı SQL*Plus komutları (sorgu sonuçlarını formatlama, seçenekleri kurma) yardım
sağlama. Herhangi bir SQL*Plus komutu hakkında yardım bilgisi almak için komut iletisinden HELP komutu
ve ardından hakkındayardım istenen komutun adını girmeniz gerekir.

SQL komutlarının çalıştırılması

Örnek veri tabanımızda yer alan tabloları kullanarak bir sorgu yazmaya çalışalım. Kazancı 2500$ ‘dan
az olan çalışanları bulmaya çalışalım. Komut iletisinden komutun ilk satırını girdikten sonra return tuşuna
basılırsa, SQL*Plus ikinci satır anlamına gelen 2 uyarısını gösterecektir. ; noktalı virgül komutun bittiğini
gösterir. Bundan sonra SQL*Plus, komutu işletmeye başlayacaktır.

Oracle sql*plus  da wrap off ederek çıktıyı daha düzgün hale getirebilirsiniz.

Tüm ayarları gösterir.

Çıktı görünümünü kendinize uygun değerler vererek değiştirebilirsiniz.

Komutlarınıza eklemek istediğiniz açıklamaları (comment) “/* … */” şeklinde yazabilirsiniz. 

Sonuçların ve getirilen komutların sayısının gösterilmesinden sonra SQL*Plus tekrar komut iletisini gösterir.

SQL*Plus Komut Sözdizimini (Syntax) Anlama SQL komutlarınızı istediğiniz sayıda satıra bölebilirsiniz. Fakat en anlamlısı satırlarınızı mantıksal bütünlük içeren gruplar halinde düzenlemenizdir. (Select, Where, Group By satırı gibi…). Aşağıdaki tüm terimlerdeki sorgular özdeştir.

SQL komut satırı üç şekilde sonlanabilir;

  • Noktalı virgül (semicolon “;”) ile. SQL*Plus ‘a sizin komutu çalıştırmak istediğinizi söyler.
  • Bölme işaret (slash “/”) ile. Son girilen komutu çalıştırmak istediğinizi söyler.
  • Boş satır (blank line) ile. Komuta bir sonraki satırdan devam etmek istediğinizi söyler.

PL/SQL bloklarının çalıştırılması

SQL*Plus içerisinden PL/SQL bloklarını da çalıştırabilirsiniz. SQL*Plus, PL/SQL yordamlarını sanki SQL
deyimlerini işletiyormuş gibi düşünür. PL/SQL bloklarını bitirmek için en son satır olarak nokta “.”kullanılır.
Aşağıda örnek bir PL/SQL bloğu biçimsel olarak verilmiştir.

İşletim sistemi komutlarının çalıştırılması

Üzerinde çalıştığınız işletim sisteminin komutlarını SQL*Plus komut iletisinden çalıştırabilir ya da geçici bir
süre için işletim sisteminin kabuğuna (shell) çıkabilirsiniz.

Aşağıda pwd (print working directory) komutunun iki şekilde nasıl çalıştırılabileceği gösterilmiştir.

/home/oracle

 

/home/oracle

İşletim sistemi kabuğuna çıkmak, çalıştırılacak komut sayısı birden fazlaysa daha anlamlı olmaktadır. Ayrıca kabuğa çıktıktan sonra geri dönmek için SQL*Plus tekrar çalıştırılmamalı, bunun yerine exit komutu 

kullanılmalıdır.

Çizelge Tanımlarının Listelenmesi

Verilen bir çizelgedeki niteliklerin tanımlarını SQL*Plus ‘ın describe komutunu kullanarak görebilirsiniz
(Kısaca desc olarak kullanılabilir.).

Kullanıcının tablolarını (table) ve Görüntülerini Listelenmesi

Bunun için sistemde hazır olarak bulunan tab adlı tablo (table) kullanılır.

Komutlar Üzerinde Yapılabilen İşlemler

SQL Buffer
Son girilen SQL komutunun saklandığı bellek alanıdır. Girilen komut, bir yenisi girilene dek burada saklanır. Yani eğer son komut üzerinde bir başka işlem yapmak istiyorsanız, komutun tamamını yeni-
den girmeniz gerekmeyebilir.

komut kısaltma amacı APPEND metin A metin satırın sonuna metini ekler
CHANGE /eski/yeni C /eski/yeni eskiyi yeni ile değiştirir
CHANGE /metin C /metin satırdan metini siler
CLEAR BUFFER CL BUFF tüm satırları siler
DEL yok satırı siler
INPUT I bir ya da daha fazla satır ekler
INPUT metin I metin metini içeren bir satır ekler
LIST L SQL buffer ‘ındaki tüm satırları listeler
LIST n L n ya da n n numaralı satırı listeler
LIST * L * aktif satırı listeler
LIST LAST L LAST son satırı görüntüler
LIST m n L m n m ve n arasındaki satırları listeler
Çalışanlar tablosundan 10 numaralı bölümde çalışan kişilerin adlarını ve maaşlarını sorgulamak isteyelim.

* Karakteri aktif olan satırı göstermektedir. İstediğimiz bir satırı görmek için list komutundan sonra
ilgili satırın numarasını vermemiz yeterli olacaktır. Bu sayede istediğimiz satırı aktif satır haline getirebiliriz.
Şimdi sırasıyla birinci satırdaki bir değişikliği nasıl yaptığımıza bakalım. Sorgumuzu yanlış girdiğimizi
varsayalım.

komutunun yanlış olan 3. satırını düzeltmek için;

SQL buffer içindeki deyimleri save komutunu kullanarak bir dosyaya yazdırmak mümkündür. Save 

dosya_adı komutu çalıştırıldığında, SQL buffer ‘ın içeriği uzantısı .SQL olan dosya_adı isimli dosyaya
kaydedilir.

Created file sqlsorgulari.sql

SQL buffer ‘ın içeriğinin temizlenmesi

Komut dosyalarına açıklama satırlarının eklenmesi

Yazdığınız komut dosyalarına ekleyeceğiniz açıklama satırları, bu dosyaların daha sonra da kolayca
anlaşılmasını sağlayacaktır. Bu işlem üç şekilde gerçekleştirilebilir.

SQL*Plus ‘ın REMARK komutu ile
SQL komut ayıraçları ile, /* … */
ANSI/ISO karakterleri ile, —
REMARK SQL*Plus ‘ı öğrenmek için verilen örnekler tekrarlanmalıdır.
/* SQL*Plus ‘ı öğrenmek için verilen örnekler tekrarlanmalıdır. */
— SQL*Plus ‘ı öğrenmek için verilen örnekler tekrarlanmalıdır.

Dosyalardaki komutların yeniden kullanılması

Daha önce save komutu ile sakladığımız ya da herhangi bir editor yardımıyla oluşturduğumuz SQL
deyimlerin get dosya_adı komutunu kullanarak SQL buffer ‘a getirebiliriz.

SQL deyimlerini toplu işlem (batch) olarak çalıştırmak istersek start dosya_adı komutundan
yararlanabiliriz.

SQL buffer içeriğini daha önce var olan bir dosyanın sonuna eklemek için append, üzerine yazmak içinse
replace anahtar kelimesi kullanılır.