Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.



Benzer belgeler
Veritabanı. SQL (Structured Query Language)

Veri Tabanı Tasarım ve Yönetimi

VERİTABANI. SQL (Structured Query Language)

VERİ TABANI YÖNETİM SİSTEMLERİ I

SQL e Giriş. Uzm. Murat YAZICI

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

SQL (Structured Query Language)

Veri Tabanı Hafta Dersi

VERİTABANI Veritabanı Sorgulama

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Oracle Database 11g: Introduction to SQL

Veri Tabanı Yönetim Sistemleri Bölüm - 5

SQL Komutları (2) Uzm. Murat YAZICI

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

SQL (Structured Query Language)

SORGULAR. Öğr.Gör.Volkan Altıntaş

Birden Çok Tabloda Sorgulama (Join)

Veritabanı Tasarımı. Alt Sorgu Temelleri

Oracle da kullanılan veri tipleri:

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

VERİTABANI ve YÖNETİMİ

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

5 Sorgulama İşlemleri. Veritabanı 1

Veri Tabanı Programlamaya Giriş

SQL Query and Table Application

Çok tablolu sorgulamalar

5 Sorgulama İşlemleri. Veritabanı 1

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Veri Tabanı II Alt Sorgular

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

VERİ TABANI YÖNETİM SİSTEMLERİ I

İlişkisel Veri Tabanları I

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Lıke Joker Karakterler, Is [not] Null, Order By, Group By, As

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

İNTERNET TABANLI PROGRAMLAMA- 12.ders

İleri Seviye Select Cümlecikleri

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

Veritabanı Tasarımı. Tablo Değiştirme

Veritabanı Tasarımı. SQL Deyimi Anatomisi

Laboratuvar 2 Tek Kayıt Fonksiyonları

BTP203 VERİTABANI YÖNETİM SİSTEMLERİ

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

SQL Kod ile Tablo Oluşturma

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

BÖLÜM -2: VERİLERİ SINIRLAMA VE SIRALAMA

Veri Tabanı-I 9.Hafta

SQL DİĞER Deyimler ve Komutlar

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

YAPISAL SORGULAMA DİLİ (SQL)

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Hafta IV. Öğr. Gör. Murat KEÇECĠOĞLU

Bölüm 4: DDL Veri Tanımlama Dili

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

PostgreSQL ve PL/pgSQL

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

VERİ TABANI ve YÖNETİMİ

Bilgisayar Uygulamaları. MySql

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Veritabanı Tasarımı. Çoklu Satır Alt Sorgular

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

Veri Tabanı Yönetim Sistemleri Bölüm - 7

STORED PROCEDURE LER (Saklı Yordamlar)

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Veritabanı Tasarımı. Seriler ile Çalışma

Algoritma ve Akış Diyagramları

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Microsoft SQL Server Sorgulama

Birleştirme (JOIN) işlemi

Veritabanı Tasarımı. Tablo Oluşturma

ACCESS PLATFORMUNDA SQL

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Her bölüm için kısa bazı girişler yapılacak ve bölüm içerisinde anlatılacak olan konuların genel başlıkları belirtilecektir.

Like Joker Karakterler, Order By, Group By

EXCEL FORMÜLLER, FONKSİYONLAR

Kişiler tablosundan AD kolonu yusuf olan tüm satırları siler. ORDER BY deyimi bir tablodan SELECT ile seçilen verileri sıralamak için kullanılır.

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

PostgreSQL ve PL/pgSQL

Veri Tabanı Yönetim Sistemleri Bölüm - 4

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Bölüm 3: DML Veri İşleme Dili

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Mysql Veritabanı Komutları

VERİ TABANI YÖNETİM SİSTEMLERİ I

BÖLÜM- 5: BİRDEN FAZLA TABLODAN VERİ GETİRMEK

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Transkript:

SQL SELECT CÜMLELERİ Oracle birçok kullanışlı ve güçlü özellikleri olan bir veritabanıdır. Bu özelliklerinin birçoğu SQL ile ilgilidir. VTYS lerinin çoğunluğunda veriler ile çalışmak için SQL kullanılmaktadır. SQL, Oracle veritabanından verileri çekmek ya da veriler üzerinde değişiklik yapmak için kullanıla basit bir dildir. Diğer programlama dilleri gibi döngüleri vs. yoktur. SQL SELECT cümlecikleri ise veritabanından verileri sorgulamak (query), çekmek için kullanılmaktadır. SQL SELECT Cümleleri Bir veritabanının verileri depolamak için kullandığı temel yapı taşı tablolardır. Bir tablo, sütunlar ve özelliklerinden meydana gelmektedir. Veriler bu tablolarda satır şeklinde tutulmaktadır. SQL, cümlecikleri, belirli kuralları olan basit bir dildir. Burada bahsedilen basitlik kavramını yanlış anlamamak gerekir. SQL çok kolay öğrenilebilmekle birlikte tüm veritabanı işlemleri için yeterli ve güçlü bir dildir. SQL SELECT Cümlelerinin Yetenekleri SQL SELECT cümlecikleri veritabanından veriyi çekmek için kullanılır. SELECT cümleciği kullanarak aşağıdaki işlemleri yapabiliriz: Projeksiyon: SQL in bu yeteneği ile bir tablodaki istediğiniz sütunları seçip sadece o sütunlardaki verileri alabilirsiniz. Seçme: SQL in bu yeteneğini kullanarak tablolardan istediğini veri satırlarını alabilirsiniz. Satırları seçmek için çeşitli kriterler kullanabilirsiniz. Birleştirme: SQL in bu yeteneğini kullanarak farklı tablolardaki verileri birleştirerek alabilirsiniz. Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir. Temel SQL SELECT Cümlesi SELECT cümleciği SQL yazılırken en çok kullanılan ifadedir. Basit bir SELECT cümleciği aşağıdaki bölümlerden oluşur: SELECT Veri çekilecek sütunları belirler. FROM Verilerin yer aldığı tabloyu belirler. SELECT * { [DISTINCT] sütun deyim ya da işlem [adı],...} FROM tablo; SELECT cümlesi yazarken eğer tabloya ait tüm sütunları seçecekseniz sütun isimlerini tek tek yazmak yerine ya da sütun isimlerini bilmiyorsanız * karakterini kullanabilirsiniz. * karakteri tüm sütunlar anlamına gelir. Sütun Takma Adları (ALIAS) Sütun takma adları tablolarda yer alan sütun isimlerini daha anlaşılır şekilde görüntülemek için kullanılır. Bir sütuna takma ad vermek için sütun isminden sonra <boşluk> AS <boşluk> <takma ad> ya da <boşluk> <takma ad> yazılır. Sütun takma adları sorgu çalıştırıldığı zaman otomatikman büyük harfe çevrilir. Eğer takma adların yazıldığı şekliyle kalması isteniyor ise işareti arasına yazılmalıdır. Örnek: SELECT ogrenci_adı AS ADI

Veya SELECT ogrenci_adı ADI Tekilliği Sağlamak (DISTINCT) Bazı zamanlar sütunlarda yer alan veriler tekrar edebilir. Örneğin bir bölümünde çalışanların hepsinin bölüm bilgisi aynı olacaktır. Bu durumlarda tekilliği sağlamak için DISTINCT (veya UNIQUE) anahtar kelimeleri kullanılır. Örnek: SELECT distinct bolumno Veya SELECT unique bolumno Çekilen Kayıtları Sınırlandırma (WHERE) Veritabanından kayıtları sorgularken her zaman bütün kayıtlara ihtiyacımız olmaz. Bu durumda sadece bizim için gerekli olan kayıtları çekmek için sorgulamada sınırlama yapmamız gerekmektedir. Çekilen kayıtları sınırlandırmak için SELECT cümleciklerinde WHERE sözcüğünü kullanırız. Bu durumda WHERE sözcüğünde belirtilen koşula uyan kayıtlar gelir. WHERE koşulu yazarken dikkat edilmesi gereken nokta şudur. WHERE koşulunda sütun isimleri ya da ifadeler kullanabilirsiniz ancak sütun takma adlarını kullanamazsınız. Sütun isimlerini WHERE koşulunda kullanabilmek için SELECT bölümünde sütunun yer almasına gerek yoktur. Oracle da çekilen kayıtları sınırlandırmak için birçok operatör mevcuttur. Aşagıda sınırlandırma sorgusunun genel yapısı görülmektedir. SELECT * { [DISTINCT] sütun deyim ya da işlem [adı],...} FROM tablo; [WHERE koşul(lar)]; Karşılaştırma Operatörleri Karşılaştırma operatörleri iki değeri ya da ifadeyi karşılaştırmak için kullanılır. Karşılaştırma işlemi sonucu TRUE, FALSE veya NULL olur. Aşagıdaki tabloda karşılaştırma operatörlerinin bir listesi verilmiştir. Karşılaştırma Operatörleri Operatör Amacı = Eşitliği test eder.!=, <>, ^= Eşitsizliği test eder. <> operatörü her platformda çalışır. < Küçük operatörü. Değerin ya da ifadenin küçük olup olmadığını test eder. Küçük ise TRUE sonucunu verir. > Büyük operatörü. Değerin ya da ifadenin büyük olup olmadığını test eder. Büyük ise TRUE sonucunu verir.

<= Küçükeşit operatörü. Değerin ya da ifadenin küçük ya da eşit olması durumunda TRUE sonucunu verir. >= Büyükeşit operatörü. Değerin ya da ifadenin büyük ya da eşit olması durumunda TRUE sonucunu verir. SOME Bir listedeki ya da alt sorgudaki değerleri karşılaştırmak için kullanılır. SOME operatöründen önce mutlaka =,!=, <, >, <= ya da >= operatörleri kullanılmalıdır. ANY Bir listedeki ya da alt sorgudaki değerleri karşılaştırmak için kullanılır. ANY operatöründen önce mutlaka =,!=, <, >, <= ya da >= operatörleri kullanılmalıdır. ALL Bir listedeki ya da alt sorgudaki tüm değerleri karşılaştırmak için kullanılır. ALL operatöründen önce mutlaka =,!=, <, >, <= ya da >= operatörleri kullanılmalıdır. Mantıksal Operatörler Mantıksal operatörler iki karşılaştırma işleminin sonucunu beliştirmek için kullanılır. Aşağıdaki tabloda mantısal operatörlerinin bir listesi verilmiştir. Mantıksal Operatörler Operatör Amacı NOT Sonuç değerini tersine çevirir. Sonuç TRUE ise FALSE, FALSE ise TRUE yapar. NULL değerde NULL sonucunu verir. AND Her iki taraf da TRUE ise TRUE, diğer durumlarda TRUE değerini verir. NULL değerler NULL sonucunu verir. OR Her iki taraf da FALSE ise FALSE, diğer durumlarda FALSE değerini veirir. NULL değerler NULL sonucunu verir. Diğer Operatörler Aşağıdaki tabloda diğer operatörlerinin bir listesi verilmiştir. Diğer Operatörler Operatör IN ({liste}, NOT IN ({liste}) BETWEEN... AND... EXISTS IS NULL, IS NOT NULL LIKE Amacı Listede yer alan değerlerin olup olmadığını test eder. İki değer arasındaki değerleri test eder. Yani {sütun}>={değer1} AND {sütun}<={değer2} anlamına gelir. Altsorgular ile birlikte kullanılır. Altsorgu en az bir kayıt dönerse TRUE değeri döner. NULL değerleri test eder. Belirli karakter kalıbına göre karşılaştırma yapar. IN ve NOT IN IN ve NOT IN operatörleri bir liste içerisinde ilgili kaydın olup olmadığını test eder. İlgili kayıt listede var ise IN operatörü TRUE değerini verir. İlgili kayıt yok ise NOT IN operatörü TRUE değerini verir. Daha önce öğrendiklerimiz ile açıklamak gerekirse =ANY operatörü ile ve NOT IN operatörü!=all operatörü ile aynı işlevi görür.

BETWEEN BETWEEN operatörü aralık testi yapar.örneğin A BETWEEN B AND C demek A>=B AND A<=C anlamına gelir. B,C değerlerinin karşılaştırma aralığına dahil olduğuna dikkat ediniz. NULL Değerler NULL değerleri geçersiz, hükümsüz, değersiz, önemsiz veya yok şeklinde tanımlayabiliriz. Boş bir karakter ya da 0 (sıfır) NULL değildir. IS NULL ve IS NOT NULL Bu operatörler NULL veya NOT NULL değerleri bulabilmek için kullanılır. = ya da!= operatörleri NULL değerlerle çalışmaz. Karşılaştırılan değer NULL ise IS NULL operatörü TRUE döner. Eğer karşılaştırılan değer NULL değil ise NOT NULL operatörü TRUE döner. LIKE Bu operatör karakter alıpları ile çalışır. Oracle da % ve _ karakterleri karakter kalıbı oluşturmak için kullanılır. _ tek karakter anlamına gelir, % ise her ne olursa anlamına gelir. Konuyu daha iyi anlayabilmek için aşağıdaki tabloyu inceleyiniz. % ve _ Karakterleri ile Oluşturulan Kalıp Örnekleri Kalıp Anlamı %MET Başlangıcı önemli değil ancak sonu mutlaka MET olanlar listelenir. %MET% İçinde ME geçenler listelenir. ME% Başı ME olan sonu önemli olmayanlar listelenir. _HMET İlk karakteri önemli olmayan ancak sonu HMET olanlar listelenir. %HME_ Başı önemli olmayan, sondan 4., 3, ve 2, karakteri H,M,E olan ve sonunda bir karakter olanlar listelenir. Kayıtların Sıralanması (ORDER BY) Önceki bölümlerde öğrendiğimiz SQL sorgularında Oracle çekilen kayıtları sıralanmış bir şekilde getirilmesini garanti etmez. SELECT ile çektiğimiz kayıtların istediğimiz şekilde sıralı gelmesi için ORDER BY kelimesi kullanılır. ORDER BY yazdığımız SELECT cümlelerinde en son kullanılan ifade olmalıdır. ORDER BY varsayılan olarak artan sırada kayıtları sıralar. Azalan şekilde sıralama istediğimiz zaman ORDER BY ile birlikte DESC kelimesi kullanılır. Aşağıda sıralama sorgusunun genel yapısı görülmektedir. SELECT * { [DISTINCT] sütun deyim ya da işlem [adı],...} FROM tablo; [WHERE koşul(lar)] [ORDER BY {sütun, ifade} [ASC DESC] ] ORDER BY: Çekilen kayıtların sıralanacağını belirtir. ASC: Kayıtları artan şekilde sıralar (Varsayılan sıralama). DESC: Kayıtları azalan şekilde sıralar. NOT: SELECT ifadesinde kullanılmayan sütun isimlerini de ORDER BY da kullanabilirsiniz. Ancak SELECT ifadesinde DISTINCT kelimesi yer alırsa sadece SELECT ifadesinde yer alan sütunları ORDER BY da

kullanabilirsiniz. Eğer DISTINCT yer alan ifade de sütunlar ile birlikte çeşitli operatörler kullanılırsa bu operatörlerde ORDER BY da yer almalıdır. Ayrıca ORDER BY da en fazla 255 sütun ya da ifade kullanabilirsiniz. Örnek: SELECT DISTINCT Maaş ucret FROM personel WHERE bolumid=6 ORDER BY Maaş ucret; NULL Değerlerin Sıralanması Sıralamalarda Oracle ın varsayılan değeri yani artan sıralama kullanıldığı zaman NULL değerler en altta yer alır. DESC, azalan sıralama yaptığımızda en üstte yer alır. Bu varsayılan sıralama NULLS FIRST ya da NULLS LAST kullanılarak değiştirilir. NULLS FIRST: İlk önce NULL değerler gelir. NULLS LAST: En son NULL değerler gelir. İfadelerin Kullanımı (Expressions) Bır veya daha fazla değerin, operatörün ve SQL fonksiyonunun birlikte oluşturduğu değere ifade denir. Örneğin 2+5*3 ifadesi 3 tane sayı ve 2 tane aritmetic operatörden oluşmuştur. Sonuç ise 17 dir. İfadelerin sonuç değerlerin veritipi genelde ifadeyi oluşturan elemanların değer tipidir. Bahsedilen ifade de sonuç değerinin veritipi NUMBER olur. İfadeler bir SQL içerisinde çeşitli bölümlerde olabilir. Örneğin: SELECT cümleciğinde WHERE, ORDER BY ya da HAVING cümleciğinde INSERT cümleciğini VALUES kısmında UDPDATE cümlesinin SET kısmında DUAL Tablosu DUAL tablosu sadece bir sütunu ve bir kaydı olan bir tablodur. Sistem değişkenlerini veya ifadelerini hesaplamak için kullanılır. Veritabanındaki tüm kullanıcılara açıktır. Bilinmesi Gereken Bazı SQL*Plus Komutları SQL*Plus veritabanı ile iletişime geçmek için kullanılan Oracle tarafından geliştirilmiş bir araçtır. SQL*Plus ı kullanarak her çeşit SQL cümleciğini ve PL/SQL programlarını çalıştırabilir, sorgu sonuçlarını formatlayabilir veya veritabanını yönetebilirsiniz. Makinenize Oracle yazılımını kurduğunuz zaman, SQL*Plus da kurulmuş olmaktadır. DESCRIBE Komutu DESCRIBE (DESC) komutu veritabanı nesneleri hakkında bilgi almak için kullanılır. DESCRIBE komutu kullanılarak tablo ya da görüntülerin sütunları, veri tipleri vs. hakkında bilgi alınabilir. Yine bu komutu kullanarak prosedürlerin ya da fonksiyonların parametreleri öğrenilebilir.

LIST Komutu LIST komutu SQL ortamında yer alan içeriği görüntülemek için kullanılır. Bu komut (L) şeklinde kısaltılabilir. SQL cümlesinde yer alan * işareti o anki aktif satırı belirtir. LIST LAST son satırı listeler. LIST m n şeklindeki kullanım ise m ninci satırdan n inci satıra kadar olan kısmı görüntüler. APPEND Komutu APPEND komutu yanına yazılan satırı ortamda yer alan SQL in sonuna ekler. Kısaltılmış hali A dır. CHANGE Komutu CHANGE komutu yanına yazılan eski değeri yeni değer ile değiştirir. Kullanımı CHANGE /eski/yeni şeklindedir. Eğere yeni değeri yazmazsanız eski değer silinir. Kısaltılmışı C dir. INPUT Komutu INPUT komutu yanına yazılan satırı ya da devam eden satırları yeni bir satır olarak ortamdaki SQL e ekler. DEL Komutu DEL komutu yalnız başına kullanıldığı zaman aktif satırı siler. Aktif satırın * işareti ile belirtildiğini hatırlayınız. DEL m n şeklide kullanıldığı zaman m inci satırdan n inci satıra kadar olanları siler. Eğer m ya da n yerine * kullanırsak aktif satırı belirtmiş olursunuzç DEL LAST son satırı siler. SORGU SONUÇLARININ DOSYAYA KAYDEDİLMESİ Zaman zaman SQL*Plus da çalıştırdığımız sorgu sonuçlarını bir dosyaya kaydetmemiz gerekir. Bunun için SQL*Plus da SPOOL komutu kullanılır. Kullanımı SPOOL dosya_adı şeklindedir. Soday uzantısı verilmezse otomatik olarak.lst uzantısı verilir. Sorgu çalıştırıldıktan sonra dosyaya yazma işlemini sonlandırmak için SPOOL OFF ya da SPOOL OUT komutları kullanılır. SPOOL OFF dosyaya yazma işlemini sonlandırır. SPOOL OUT ise dosyaya yazma işlemini sonlandırıp, dosyayı yazıcıya gönderir.