Özet: Temel DML sorguları için farklı fonksiyonları da içeren örnekler sunuyor. (count, distinct, order by, like, join)

 

Önce üzerinde çalışacağımız örnek “personnel” ve “deparment” tabloları oluşturalım.

Department Tablosu

CREATE TABLE DEPARTMENT
(
 DEPARTMENTID NUMBER,
 DEPARTMENTNAME VARCHAR2(40 BYTE)
);

Insert into DEPARTMENT
 (DEPARTMENTID, DEPARTMENTNAME)
 Values
 (1, 'Human Resources');


Insert into DEPARTMENT
 (DEPARTMENTID, DEPARTMENTNAME)
 Values
 (3, 'Accounting Department');


Insert into DEPARTMENT
 (DEPARTMENTID, DEPARTMENTNAME)
 Values
 (2, 'Information Technologies');

commit;
DEPARTMENTID DEPARTMENTNAME
1 Human Resources
3 Accounting Department
2 Information Technologies

Personnel Tablosu

CREATE TABLE PERSONNEL
(
 PERSONNELID NUMBER,
 NAME VARCHAR2(10 BYTE),
 LAST_NAME VARCHAR2(10 BYTE),
 DEPARTMENTID NUMBER
);

  Insert into PERSONNEL
 (PERSONNELID, NAME, LAST_NAME, DEPARTMENTID)
 Values
 ('50', 'John', 'Ally', '2');


Insert into PERSONNEL
 (PERSONNELID, NAME, LAST_NAME, DEPARTMENTID)
 Values
 ('904', 'Ahmet', 'Gezgin', '1');


Insert into PERSONNEL
 (PERSONNELID, NAME, LAST_NAME, DEPARTMENTID)
 Values
 ('120', 'Salih', 'Atan', '3');
Insert into PERSONNEL
 (PERSONNELID, NAME, LAST_NAME, DEPARTMENTID)
 Values
 ('485', 'Sinem', 'Keskin', '1');

commit;
PERSONNELID NAME LAST_NAME DEPARTMENTID
904 Ahmet Gezgin 2
120 Salih Atan 3
50 John Ally 2
485 Sinem Keskin 1

Tabloda  ne kadar kayıt olduğunu bakmak için

Select count(personnelid) from personnel;

COUNT(PERSONNELID)
------------------
 3

 

Tablodaki bir kolondaki tekrar eden değerleri bulmak için

Select DISTINCT departmentid from personnel;

DEPARTMENTID
------------
 2
 1
 3

 

Tablodaki kayıtları belli bir sıraya göre sıralamak istiyorsak.

Select * from personnel order by personnelid;

PERSONNELID    NAME     LAST_NAME DEPARTMENTID
----------- ---------- ---------- ------------
 50            John      Ally          2
 120           Salih     Atan          3
 485           Sinem     Keskin        1
 904           Ahmet     Gezgin        1

Bir kolunu A-Z göre sıralamak istiyorsak ;

Select * from personnel order by personnelid ASC;

Z-A’ya göre sıralamak istiyorsak ;

Select * from personnel order by personnelid DECS;

Bir kolonda içinde belli karakterlerin geçtiği verileri bulmak için

Select * from personnel where name like '%S%';

PERSONNELID     NAME      LAST_NAME DEPARTMENTID
-----------   ---------- ----------  ------------
 120           Salih       Atan         3
 485           Sinem       Keskin       1

İki tabloda olan ortak verileri kullanarak veri çekebiliriz.

select p.name, p.last_name, d.departmentname
 from personnel p, department d where d.departmentid=p.departmentid;
NAME          LAST_NAME    DEPARTMENTNAME
----------    ----------  --------------------------
John          Ally         Information Technologies
Ahmet         Gezgin       Human Resources
Salih         Atan         Accounting Department
Sinem         Keskin       Human Resources

Aynı şekilde bu sonucu join kullanarak da yapabiliriz

 select p.name, p.last_name, d.departmentname
 from personnel p join department d on (d.departmentid=p.departmentid);

NAME          LAST_NAME    DEPARTMENTNAME
----------    ----------  --------------------------
John          Ally         Information Technologies
Ahmet         Gezgin       Human Resources
Salih         Atan         Accounting Department
Sinem         Keskin       Human Resources