Tasdiqlayman ” 2014 y ktbdo’ E. Pirmatov


-Mavzu:. BOG'LANGAN QISM SO'ROVLAR YARATISH


Download 1.32 Mb.
bet33/36
Sana25.11.2021
Hajmi1.32 Mb.
#177111
1   ...   28   29   30   31   32   33   34   35   36
Bog'liq
maruza1

27-Mavzu:. BOG'LANGAN QISM SO'ROVLAR YARATISH
SQL tili bitta so'rov ichiga 2-so'rovni joylashtirib ishlatish imkonini beradi. Misol: Faraz qilaylik, talabaning «Petrov» familiyasi ma'lum bo'lsin, lekin uning STUDENTJD may-doni qiymati noma'lum. Shu talabaning barcha baholari haqi­dagi axborotni (ma'lumotlarni) olish uchun quyidagi so'rovni tuzamiz:

Select * from exam_marks

Where studentID = (select studentID

From student where surname= 'Petrov') ;

Bog'langan qism so'rovli SQL so'rov quyidagicha ishlaydi:


  1. Tashqi so'rovda nomi ko'rsatilgan jadvaldan satr tanlab oli-nadi.

  2. Qism so'rov bajariladi va oHngan qiymat shu satrni tahlil qilish uchun tashqi so'rovni where shartida ishlatiladi.

  3. Bu shartni baholash natijasi bo'yicha satrni chiqarilayotgan ma'lumotlar tarkibiga kiritish yoki kiritmaslik haqida qaror qabil qilinadi.

4. Sanab o'tilgan qadamlar tashqi so'rovni keyingi satri uchun qaytariladi.

Bu so'rov faqat qism so'rov bitta qiymat chiqarganda (ya'ni Petrov familiyasi jadvalda bitta bo'lganda) to'g'ri ishlaydi. Ko'p hollarda buning uchun ichki so'rovda yagona yechim olish uchun DISTINCT parametridan foydalanamiz. Qism so'rovlarda IN operatori keng ishlatiladi.

VORONEJ shahridan bo'lgan talabalarning barcha baholari (EXAM_MARKS) haqidagi ma'lumotlarni quyidagi so'rov yordamida olish mumkin.

SELECT * FROM EXEM_MARKS

(WHERE STUDENTJD IN ( SELECT STUDENTJD FROM STUDENT

WHERE CITY='Voronej');

Bog'langan qism so'rovlarini yaratishga misollar:

20-yanvar 1999-yil imtihon o'tadi, o'qitilgan barcha predmet-lar haqida axborotni chiqaring.

SELECT*FROM SUBJECT SU WHERE '20/01/1999' IN

(SUBJECT EXAM_DATE FROM EXAM_MARKS_EX

WHERE SU.SUBJJD =EX.SUBJJD);

Bu masalani ham jadvallarni birlashtirish amali yordamida bajarish mumkin.

SELECT DISTINCT SU.SUBJJD, SUBJ_NAME, HOUR, SEMECTER

FROM SUBJECT_FIRST, EXAM_MARKS_SECOND

WHERE FIRST.SUBJJD = SECOND.SUBJJD

AND SECOND.EXAM_DATE='20/01/1999';

EXITS operatorini ishlatish. SQL so'rov operatorida ishlati-ladigan EXITS parametri, mantiqiy ifoda kabi rost va yolg'on qiymatlarni qabul qiladi. Bu operator argument sifatida qism so'rovlarni ishlatib, bu operator qism so'rovlarini bajarilishini rost deb hisoblaydi, agarda qism so'rov chiquvchi ma'lumot bersa, ya'ni birorta topilgan qiymat chiqarsa, aks holda qism so'rov natijasi yolg'on hisoblanadi. EXITS operatori UNKNOWN (noma'lum) qiymatini qabul qiladi.

Masalan:


EXAMMARKS jadvalidan hech bo'lmaganda bitta qoniqar-siz baho olgan talaba haqida ma'lumot chiqarish talab etilsa,

SELECT DISTINCT STUDENT ID

FROM EXAM_MARKS A WHERE EXITS (SELECT * FROM EXAM_MARKS В WHERE MARK<3 AND B.STUDENT_ID=A.STUDENT_ID);


Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   28   29   30   31   32   33   34   35   36




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling