Retrieving Data Using The SQL Select Statement

Salam, Bloguma xoş gəlmisiniz.

Bugün sizlər üçün ORACLE SQL-in ən müqəddəs nemətlərindən olan SELECT-dən yazacağam.

SELECT bizim cədvəllərdə saxladığımız məlumatlara müraciət etmək üçün istifadə olunur. SELECT-in sizin cədvəldəki məlumatınız dəyişmək bacarığı yoxdur ancaq cədvəldən götürdüyü məlumatı dəyişmək kimi bir bacarığı var hansı ki, siz məlumatlar üzərində məqsədinizə uyğun şəkildə dəyişiklər edib çap edə bilərsiniz.

Ümumi sintaksisi bu şəkildədir:

SELECT sütun_adı1, sütun_adı2, … FROM cədvəl_adı WHERE şərtimiz ORDER BY sütun_adı;

FROM – ifadəsi məcburidir, 1dən çox cədvəl daxil etmək olar parameter olaraq

WHERE – ifadəsi əlavədir, hansı məlumatlara müraciət edəcəyinizi təyin edir

ORDER BY – ifadəsi əlavədir, məlumatlarınızın hansı sütun üzrə necə sıralamanızı təyin edir. ASC(azdan çoxa) və DESC(çoxdan aza) parametrlərinə sahibdir. Susmaya görə ASC təyin edilib.

Aşağıdakı kodlarla daha aydın izah etməyə çalışım:

CREATE TABLE SHIP_INFO(

SHIP_ID NUMBER PRIMARY KEY,

NAME VARCHAR2(20) NOT NULL,

CAPACITY NUMBER NOT NULL);

INSERT INTO SHIP_INFO VALUES(1, ‘SHIP_1’, 2200);

INSERT INTO SHIP_INFO VALUES(2, ‘SHIP_2’, 200);

INSERT INTO SHIP_INFO VALUES(3, ‘SHIP_3’, 1200);

COMMIT;

 SELECT SHIP_ID, NAME, CAPACITY FROM SHIP_INFO ORDER BY CAPACITY;

select

SELECT NAME || ‘ GƏMİSİNİN TUTUMU ’ || CAPACITY || ‘ SƏRNİŞİNDİR ’ FROM SHIP_INFO ORDER BY CAPACITY;

select2

Beləcə biz SELECT vasitəsilə məlumatlarımız istədiyimiz şəkildə çap edə bilərik həmçinin bu dəyişikliklər riyazi hesablamalar da ola bilər iləriki yazılarda funksiyaları keçdiyimiz zaman bu haqda ətraflı yazacağam.

 

PSEVDO SÜTUNLAR(PSEUDOCOLUMNS)

Psevdo sütunlar hər bir cədvəl üçün ORACLE tərəfindən təyin olunan avtomatik qiymətlərdir. Psevdo sütunlar DESC və ya DESCRİBE(desc cədvəl_adı sizə cədvəlin strukturunu qaytaracaq) əmrlərinin icrası zamanı görünmürlər və eyni zamanda cədvələrdə də fiziki olaraq saxlanmırlar. Ancaq siz bu sütunlara SELECT vasitəsilə cədvəlin sütunu kimi müraciət edə bilərsiniz. Əsasən bu sütunlardakı məlumatlar cədvəldəki hər sətir üçün fərqli olur. ORACLE SQL –də bir çox psevdo sütunlar möcuddur, mən sizə bir neçəsini misallarla göstərməyə çalışacağam.

ROWNUM – Sistemin avtomatik olaraq hər bir sətirə verdiyi ədədlərdir. Əgər hər bir sətiri hər hansı bir xüsusiyətinə görə fərqləndirmək istəyirsinizsə ROWNUM bunu sizin üçün edir. ROWNUM ORDER BY ifadəsindən əvvəl təyin olunur.

Bu şəkillə daha aydın olacağına inanıram.

ROWNUM

ROWIDCədvəldəki hər bir sətirin sistem tərəfindən təyin olunmuş fiziki ünvanıdır. Saxladığı ünvan ROWID tipində bir dəyərdir.

ORA_ROWSCNCədvəldəki məlumatların ən son nə zaman dəyişdiriliyinə bu psevdo sütundakı mılumatlarla baxa bilərsiniz. Bizə sətir haqqında ən son SCN(system change number)-i qaytarır. Ancaq biz bu məlumatı başa düşülən hala salmaq üçün SCN_TO_TİMESTAMP() funksiyasından istifadə etməliyik. Yenə bir şəkillə sizə göstərmək istəyirəm.

SCN

 

DISTINCT və UNİQUE

DİSTİNCT və UNİQUE SELECT daxilində istifadə olunur, əsas məqsədləri təyin edəcəyimiz sütundakı unikal təkrarlanmayan məlumatları bizə qaytarır.

SELECT DİSTİNCT NAME FROM SHİP_İNFO; / SELECT UNIQUE NAME FROM SHIP_INFO;

Eyni nəticələri bizə qaytaracaq bu sorğular və bizə adı təkrarlanan sətirlərdan yalnız birini qaytaracaq.

SELECT-in İMKANLARI(Capabilities of SELECT)

  • PROJECTİON
  • SELECTİON
  • JOİNİNG

PROJECTİONProjection SELECT ifadəsi zamanı məlumatlarına müraciət edilən sütunlardır.

SELECT NAME , CAPACITY FROM SHIP_INFO;

SELECTİONSelection SELECT ifadəsi zamanı məlumatları götürülən sətirlərdir.

SELECT NAME , CAPACITY FROM SHIP_INFO WHERE ID > 1;

JOININGJoining RDBMS-də “R” in mövcud olmasına ən böyük səbəbdir. Joining SELECT vasitəsilə bir neçə cədvəlin birləşdirilməsidir.

SELECT PORTS.NAME, SHIP_INFO.NAME FROM PORTS JOIN SHIP_INFO ON PORTS.ID = SHIP_INFO.PORT_ID;