Home / MAKALELER / Veri Tabanı / SQL Kod Arşivi

SQL Kod Arşivi

Burada irili ufaklı sql’de çok sık kullandığımız kodları buluyor olacağız.

(+), Birleştirme yapılan tablolardan ikinci tabloda birinci tablodaki her kaydın karşılığı olmazsa, karşılığı olmayan kayıtlar sql sonucunda sadece olmayan alanlar değil bilakis kayıt hiç gelmez. Bunun önlemi dış birleştirmedir. Dış birleştirme işlemi, kayıtları eksik olan tablonun şart tarafına “(+)” işareti konularak yapılır.
SELECT * FROM PERSONEL, UNVAN WHERE PERSONEL.UNVANKEY(+) = UNVAN.UN_KEY

Bu örnekte, 3 tane kayıt gelmektedir, yani UNVAN tablosunda sadece UN_KEY=1 olan sadece bir kayıt var.

Diğer tablo da ise (PERSONEL) UNVANKEY’i birinci tabloda ki UN_KEY=1′ e eşit olan kayıtlar sorgu sonucu gelir. Not: Biz null değere sahip olanları da birleştirmek istersek eksik olan tablonun yanına (+) işareti eklenir.

PERSONEL.PR_KEY PERSONEL.SICIL PERSONEL.UNVANKEY UNVAN.UN_AD UNVAN.SERVISKEY
1 XI 1 6
50 1 1 1
54 1212541 1 1

ABS

ABS, N sayısının pozitif halini sonuç olarak döndürür.

SELECT ABS(-1), ABS(1) FROM HASTA

Bu örnekte olduğu gibi bir sayıyı (pozitif yada negatif) pozitif bir sayıya çevirir.

ABS(-1) ABS(1)
1 1
1 1
1 1

COS

COS(N), N sayısının kosinüsünü sonuç olarak döndürür.

SELECT COS(-1), COS(0), COS(1) FROM HASTA

Bu örnekte olduğu gibi bir sayıyı (pozitif yada negatif) kosinüsüne çevirir.

ACOS(1) ACOS(0) ACOS(-1)
1 1 1
1 1 1
1 1 1

ACOS

ACOS(N), N sayısının ark kosinüsünü sonuç olarak döndürür.

SELECT ACOS(-1), ACOS(0), ACOS(1) FROM HASTA

Bu örnekte olduğu gibi bir sayıyı (pozitif yada negatif) ark kosinüsüne çevirir.

ACOS(-1) ACOS(0) ACOS(1)
3 2
3 2
3 2

ADD_MONTHS

ADD_MONTHS, ADD_MONTHS(t,n) t tarihini, n ay eklenmis olarak sonuçta döndürür.

SELECT ADD_MONTHS(TO_DATE(‘31.01.2001’),1) FROM HASTA

Bu örnekte olduğu gibi t (31.01.2001) tarihine n (1) ay ekleyerek sonuca yansıtır.

ADD_MONTHS(TO_DATE(‘31.01.2001′)
28.02.2001
28.02.2001
28.02.2001

ALL

ALL, Tablolarda ki bütün alanların listeleneceğini (çift olsa dahi) gösterir.

SELECT HS_KEY, HS_AD, CINSIYET, ISLEMSAYI FROM HASTA WHERE ISLEMSAYI>ALL(SELECT DISTINCT HS_KEY FROM HASTA WHERE TELEKOMBOLUM=’BASIN YAYIN’)

All komutu ile bu örnekte basın yayın (BASIN YAYIN) bölümünde çalışan her hastadan daha fazla işlem sayısı (ISLEMSAYI) olan hastanın hs_ad, hs_soyad, cinsiyet, işlemsayi alanları listelenir. Not: Bu örnekteki ” her hasta ” ifadesi bize ALL kullanılacağını gösterir.

HS_KEY HS_AD CINSIYET ISLEMSAYI
93 ORHAN E 13
42017 TÜRKAN K 4
42029 ÖZLEM K 5

ALL_OBJECTS

ALL_OBJECTS, Kullanıcının erişebileceği bütün nesneler hakkında bilgi içeren görüntüdür.

ALTER

ALTER, Tabloya sütün / tablo kısıtlaması ekleme komutudur. Tabloya yeni sütun ekleme komutudur. Tablonun kayıt parametrelerini değiştirme komutudur. Bir kısıtlamayı açma/kapama komutudur. Tablonun üzerinde ki bütün tetiklemeleri açma/kapama komutudur. Tablo ya kayıt girmeye müsaade etme/etmeme komutudur. Tablonun paralellik derecesini değiştirme komutudur.

ALTER TABLE HASTA ADD (ADI CHAR(20), SOYAD CHAR(20))

Bu örnekte, hasta tablosu içerisine ADI ve SOYADI karakter (char) tipteki alanlar eklenmiştir. Bu işlemden sonra SELECT HASTA.*, ROWID FROM HASTA komutunu yazarak gelen tabloda ki ADI ve SOYADI alanlarına ADI alanına (ÖZLEM,HÜLYA,ZEYNEP) SOYADI alanına (YILDIZ,AK,MERT) verilerini alt alta girdikten sonra SELECT * FROM HASTA dediğimizde aşağıdaki tablo karşımıza çıkacaktır.

HS_AD HS_SOYAD CINSIYET ADI SOYAD
ORHAN AYAZ E ÖZLEM YILDIZ
TÜRKAN AYAZ K HÜLYA AK
ÖZLEM AYAZ K ZEYNEP MERT

ALTER TABLE HASTA MODIFIY HS_AD VARCHAR2(40)

Bu örnekte de hasta tablosunun bir alanının uzunluğu 40 olarak değiştiriliyor. Modify komutu bir alanın uzunluğunu (karakter sayısını) değiştirir. Hasta tablosunda ki HS_AD alanının uzunluğunun VARCHAR2(40) olarak değiştiğini DESC HASTA komutunu çalıştırarak görebiliriz.

SIRA ALAN ADI ALAN TIPI BOŞ
1 HS_KEY NUMBER NOT NULL
2 HS_AD VARCHAR2(40)
3 HS_SOYAD VARCHAR2(18)
4 ISLEMSAYI NUMBER
5 DOGUMTARIHI DATE
6 DOGUMYERI VARCHAR2(15)

 


ANALYZE

ANALYZE, Tablolar ve indekslerle ilgili istatistik toplayan DLL komutudur.

AND

AND, Where bölümünde birden fazla şart yazıldığı zaman, aralarındaki ilişkiye göre kullanılan ifadedir. And her iki şartın aynı anda doğruluğunun gerektiği durumlarda kullanılır.

SELECT * FROM HASTA WHERE HS_KEY>20 AND HS_KEY<40

Bu örnek ile hasta numarası(HS_KEY) 20 ile 40 arasında olan tüm alanlar listelenmektedir.

HS_KEY HS_AD HS_SOYAD CINSIYET ISLEMSAYI DOGUMYER DOGUMTARIHI
21 ELAHATTIN İÇER E
25 MUHARREM BEŞIR E 1
29 VURAL CENGİZ E
33 ALI TURGAY ERKAN E 1
37 KAZIM GÜÇLÜ E 1

ANY

ANY, Alt sorgulamadan seçilen değerlerden en az biri karsılaştırılır.

SELECT * FROM HASTA WHERE HS_KEY=ANY(93,2005,14005)

Any komutu ile hasta tablosu içerisinde hasta numarası (HS_KEY) olan ve any komutu içerisine yazılan değerlerden en az birini karşılaştırarak sonuca yansıtır.

HS_KEY HS_AD HS_SOYAD CINSIYET ISLEMSAYI DOGUMYERI DOGUMTARIHI
93 AHMET AYAZ E 14
2005 SEMA SARIKAYA K 1
14005 VİLDAN TURHAL K

AS

AS, Bir tablodan, içindeki kayıtlarla birlikte sadece balirtilen alanları alarak bir başka tablo oluşturma komutudur. Bir sütünun adını değiştirme komutudur.

SELECT HS_KEY AS HASTANUMARASI FROM HASTA

As, komutu ile hs_key olan alanın adını HASTANUMARASI olarak değiştirilebilir.

HASTANUMARASI
5
9
13
17

ASC

Sorgu sonucu dönen kayıtlarda sıralamayı küçükten büyüye doğru yapmak için kullanılan ifadedir.

SELECT * FROM HASTA ORDER BY HS_KEY ASC

Hasta tablosunda ki hasta numaralarını(HS_KEY) küçükten büyüye doğru sıralamaktadır.

HS_KEY HS_AD HS_SOYAD CINSIYET ISLEMSAYI DOGUMYER DOGUMTARIHI
5 I.HAKKI ALPTÜRK E 3
9 VEDAT KARAARSLAN E 2
13 ZAFER TEKBUDAK E 1
17 CELALETTİN DINÇER E 1

ASCII

ASCII, Bir karakteri yada cümleyi ascıı sayıya çevirir.

SELECT ASCII(‘COZUM’), ASCII(‘BILGISAYAR’) FROM HASTA

Ascıı komutu ile yazılan karakter yada cümleyi ascıı karakterine çevirerek sonuca yansıtır.

ASCII(COZUM) ASCII(BILGISAYAR)
67 66
67 66
67 66

ASIN

ASIN(n) n sayısının ark sinüsünü sonuç olarak döndürür.

SELECT ASIN(-1), ASIN(0), ASIN(1) FROM HASTA

Bu örnekte olduğu gibi bir sayıyı (pozitif yada negatif) ark sinüsünü sonuç olarak yansıtır.

ASIN(-1) ASIN(0) ASIN(1)
-2 2
-2 2
-2 2

ASSOCIATE

ATAN

ATAN(n) n sayısının ark tanjantını sonuç olarak döndürür.

SELECT ATAN (.781285627), TAN(663225116) FROM HASTA

Bu örnekte olduğu gibi bir sayıyı (pozitif yada negatif) ark tanjantını sonuç olarak yansıtır.

ATAN (.781285627 TAN(663225116)
1 1
1 1
1 1

ATAN2

SELECT ATAN2(.8,1), ATAN(.9) FROM HASTA

ATAN2(.8,1) ATAN(.9)
1 1
1 1
1 1

AUDIT

AUDIT, Veritabanı nesneleri hakkında kontrol işlemleri yapar ve Sql’ leri seçerek tanımlama komutudur.

AVG

AVG, bütün değerlerinin ortalamasını döndürür.

SELECT AVG(ISLEMSAYI) FROM HASTA

AVG komutu ile hasta tablosundaki bütün kayıtların ortalama işlem sayısını (ISLEMSAYI) hesaplar.

AVG(ISLEMSAYI)
2

BETWEEN

BETWEEN, İki değer arasındaki kayıtları belirler.

SELECT * FROM HASTA WHERE HS_KEY BETWEEN 1 AND 20

Between komutu ile hasta numarası (hs_key) 1 ile 20 arasında olan kayıtları listeler.

HS_KEY HS_AD HS_SOYAD CINSIYET ISLEMSAYI DOGUMYER DOGUMTARIHI
5 I.HAKKI ALPTÜRK E 3
9 VEDAT KARAARSLAN E 2
13 ZAFER TEKBUDAK E 1
17 CELALETTİN DINÇER E 1

BFILENAME

Declare admin_photo bfile; Begin dmin_photo:=BFILENAME(‘(‘/home/oracle’,’ADMINISTRATOR_PHOTO.JPG’); end;

BLOB

BLOB, Oracle veritabanında temel kayıt ünitesidir.

BY

BY komutu, Order By ve Group By komutları ile birlikte kullanılmaktadır.

SELECT * FROM HASTA ORDER BY HS_KEY

HS_KEY HS_AD HS_SOYAD CINSIYET ISLEMSAYI DOGUMYER DOGUMTARIHI
5 I.HAKKI ALPTÜRK E 3
9 VEDAT KARAARSLAN E 2
13 ZAFER TEKBUDAK E 1
17 CELALETTİN DINÇER E 1

CALL

CALL, Database de ki yazılan bir proceduru yada fonksiyonu çağırmak için kullanılır.

CEIL

CEIL(n) n sayısından büyük mevcut en küçük tam sayıyı sonuç olarak döndürür.

SELECT CEIL(10), CEIL(10.5), CEIL(-10.5) FROM HASTA

CEIL komutu verilen pozitif yada negatif sayıyı sonuç olarak en küçük sayıyı tam sayıya çevirir.

CEIL(10) CEIL(10.5) CEIL(-10.5
10 11 -11
10 11 -11
10 11 -11

CHARTTOROWID

CHARTTOROWID(n) Karkater olan n sayısını ROWID değere çevirir ve sonuç olarak da bu değeri döndürür.

SELECT * FROM HASTA WHERE ROWID=CHARROWID(“)

CHR

CHR, Bir sayının karakter halini sonuç olarak gösterir.

SELECT CHR(70), CHR(80), CHR(90), CHR(120) FROM HASTA

Bu örnekte olduğu gibi CHR komutu bir sayıyı karakter haline çevirerek sonuca yansıtılmıştır.

CHR(70) CHR(80) CHR(90) CHR(120)
F P Z X
F P Z X
F P Z X
F P Z X

CLUSTER

CLUSTER, Bir kaydın fiziksel yerinin kayıdın içindeki değere bağlı olarak değişen bir tablo yapısı çeşididir.

COMMENT

COMMENT, Tablo,sütun,görüntü ve snapshot hakkında veri sözlüğüne yorum yazma komutudur.

COMMENT on table hasta coloumn(hs_ad) is ‘ÖZLEM’

COMMIT

COMMIT, Bütün yapılan İşlemleri kesin olarak kalıcı olmasını sağlar. Böylece yapılan değişiklikleri varsa diğer kullanıcılarda görür.

CONCAT

CONCAT, Concat(d1,d2) ile d1 dizesini (string), devamına d2 dizesi eklenmiş olarak sonuçta döndürür.

SELECT CONCAT(‘ÇÖZÜM’,’ BİLGİSAYAR’) AS SIRKET FROM HASTA

Bu örnekte olduğu gibi CONCAT komutu ile birinci string’ in yanına ikinci stringi ekleyerek bu iki kelimeyi sonuca yansıtır. AS komutu ile de bu birleştirilmiş olan 2 stringin alan adı (SİRKET) belirlenmiş olur.

SIRKET
ÇÖZÜM BİLGİSAYAR
ÇÖZÜM BİLGİSAYAR
ÇÖZÜM BİLGİSAYAR

CONSTRAINT

CONSTRAINT, O kolon için daha açıklayıcı olması açısından ve yapısı açısından kullanılır. Oracle veritabanı tablolarında veri bütünlüğünün sağlanması için veritabanı düzeyinde konan sınırlamalardır. Null/Not Null , Unique, Primary Key, Froeign Key ve Check olmak üzere 5 çeşit kısıtlama vardır.

CONTROLFILE

CONVERT

CONVERT, Oracle versiyon 6 ‘ya ait veri sözlüğünün oracle versiyon 7’ye çevrilmesinin belirtildiği bölümdür.

SELECT CONVERT(CHR(194), ‘US7ASCII’, ‘WE8EBCDIC37C’) FROM HASTA

Bu örnekte CONVERT komutu ile Oracle versiyon 6’ya ait sayı yada karakteri Oracle 7′ ye çevrilmesi sağlar.

CONVERT(CHR(194),US7ASCII’,’W
B
B
B

COS

COS(n) n sayısının kosinüsünü sonuç olarak döndürür.

SELECT COS(0), COS(-1), COS(1) FROM HASTA

Bu örnekte COS komutu ile bir sayıyı (pozitif yada negatif) kosinüsüne çevirerek sonuç olarak yansıtır.

COS(0) COS(-1) COS(1)
1 1 1
1 1 1
1 1 1

COUNT

COUNT(*,sütün) sorgudaki şartlara uyan kayıt sayılarını döndürür.

SELECT COUNT(*) FROM HASTA

Bu örnekte olduğu gibi COUNT komutu ile hasta tablosunda ki toplam kayıt sayısını bulabiliriz.

COUNT(*)
20,997

CREATE

CREATE, Tablo, sütun, procedür, index yaratmak için kullanılır.

CREATE TABLE COZUM(ADI CHAR(20), SOYADI CHAR(20), CINSIYETI CHAR(5))

Bu komutu yazdığımızda COZUM adında ADI, SOYADI, CINSIYETI alanları yaratılmış olucaktır. Daha sonra INSERT INTO COZUM VALUES (‘ÖMER’, ‘SISO’, ‘E’) yazarak oluşturmuş olduğumuz alanlara bilgi girdikten sonra SELECT * FROM COZUM yazdığımızda aşağıda ki tablo karşımıza çıkacaktır.

ADI SOYADI CINSIYETI
ÖMER SISO E

DATABASE

DATABASE, dataların tutulduğu taban.

DATE

DATE, Tarih tutan alanlar için kullanılır.

CREATE TABLE PERS (ADI CHAR(20), SOYADI CHAR(20), TARIH DATE)

Komutunu yazdıktan sonra içerisine 2 adet veri girişi yapalım. INSERT INTO PERS VALUES(‘HAKAN’, ‘MERT’, ‘01.02.2000’) bu komutu çalıştırdıktan sonra şimdi ikinci veri girişini yapalım. INSERT INTO PERS(‘CANAN’, ‘TERS’, ‘02.11.2001’) bu komutu da çalıştırdığımız da aşağıdaki tablo karşımıza çıkacaktır.

ADI SOYADI TARIH
HAKAN MERT 01.02.2000
CANAN TERS 02.11.2001

DAY

DAY , Gün tutan alanlar için kullanılır.

DBA_OBJECTS

DBA_OBJECTS, Veritabanındaki bütün nesleler hakkında bilgi içeren görüntüdür.

DBA_TRIGGERS

DBA_TRIGGERS, Veritabanındaki bütün tetiklemeler hakkında bilgi içeren görüntüdür.

DECODE

DECODE, Kodlanmış bilgileri açıklamalrıyla listelemek amacıyla kullanılır.

SELECT HS_AD, HS_SOYAD, DECODE(CINSIYET, ‘E’, ‘ERKEK’, ‘K’, ‘KADIN’) AS CINSIYET FROM HASTA

HS_AD HS_SOYAD CINSIYET
AHMET AKMAN ERKEK
VELI YILMAZ ERKEK
AYSE GÜN KADIN

About Yusuf Arslan

Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerine Datawarehouse-Database Uzmanı olarak devam etmektedir Sitenin kurucusu ve yazarıdır. yusufarslanbm@gmail.com adresinden bana ulaşabilirsiniz.

İlginizi Çekebilir

AWR ( Automatic Workload Repository )

Merhaba, Bu yazıda AWR ( Automatic Workload Repository )  Oracle Database Üzerinde sıklıkla kontrol ettiğimiz AWR raporunu …

Bir Cevap Yazın