|
VALUES
(100,’Boltayev’,’Bolta’,1960,’Toshkent’,78.12)
|
bet | 6/9 | Sana | 28.01.2024 | Hajmi | 27,05 Kb. | | #147685 |
Bog'liq 9-MavzuVALUES
(100,’Boltayev’,’Bolta’,1960,’Toshkent’,78.12);
Tanlash operatori
Operatorlardan eng ko‘p qo‘llanadigani bu SELECT operatoridir. Buning yordamida yaratilgan so‘rovlar orqali berilgan jadvallardan kerakli ma’lumotlarni ajratib olish mumkin. Bu operator barcha relatsion amallarni bajarishi mumkin, undan tashqari relatsion hisobga o‘xshab unda faqat natijaning ko‘rinishi yoziladi. Uning namunada berilgan umumiy sintaksisi quyidagicha:
<tanlash operatori>::= <so‘rov ifoda> [<order by bo‘limi >]
o‘rov ifoda>::= <yagona so‘rov> | <so‘rov ifoda>
{UNION|INTERSECT|EXCEPT} [ALL] <yagona so‘rov>
<yagona so‘rov> ::= <so‘rov tasnifi>
<so‘rov tasnifi> ::= <select ifodasi> <jadval ifodasi>
<o‘tkazish operatori> ::= <select ifodasi> INTO {<o‘zgaruvchilar
ro‘yxati> | (<jadval tasnifi>)} <jadval ifodasi>
<so‘rov qismi> ::= (<so‘rov ifoda>)
<select ifodasi> ::= SELECT [ALL | DISTINCT] <select ro‘yxati>
<select ro‘yxati>::=<select elementi> [, ...]
<select elementi>::=*|<jadval nomi>.*|<jadval taxallusi>.*|<skalyar
ifoda> [AS <ustun psevdonimi>]
<jadval ifodasi> ::= <from bo‘limi> [<where bo‘limi>] [<group by
bo‘limi>] [<having bo‘limi>]
<skalyar ifoda>::= [+ | - ] <skalyar element> [{ { + | - | * | / | | | }
<skalyar element >}...]
<skalyar element>::=<literal qiymati> | <ustun tasnifi> | <funksiya>|<
so‘rov qismi> | (<skalyar ifoda>)
<funksiya>::=<CAST funksiya>|<agregat funksiya>
<agregat funksiya>::=COUNT(*)|{SUM|AVG|MIN|MAX|COUNT}
([ALL|DIS TINCT] <skalyar ifoda>)
<CAST funksiya>::=CAST({<literal qiymat>|<ustun tasnifi>} AS
<berilganlar turi>)
SELECT kalit so‘z bilan uchta sintaktik konstruksiyalarni tavsiflash mumkin: kursor tasnifi, tanlash operatori va so‘rov qismi. Ular asosida sintaktik konstruksiya turibdi. Jadval ifodani semantikasi shundan iboratki, from, where, group by va having bo‘limlarni ketma-ket qo‘llash hisobiga, from bo‘limda ko‘rsatilgan jadvallardan yangi jadval hosil bo‘ladi. Bunday jadvalni satrlari tartiblangan bo‘lishi va unda takrorlangan satrlar ham uchrashi mumkin. Biz ketma-ket sintaktik konstruksiyalarni ko‘rib chiqamiz.
Tanlash operatori bitta yoki bir nechta jadvaldan kerakli ma’lumotlarni natijaviy jadval ko‘rinishda hosil qiladi. Bunday jadvalga hech qanday chegaralar qo‘yilmaydi, bunday jadval bitta ustun bitta satr (skalyar), yoki bitta satr bir nechta ustun, yoki bo‘sh ham bo‘lishi mumkin. Natijaviy jadval vaqtincha quriladi va operator ishlagandan so‘ng umuman aytganda o‘chirilib ketadi, lekin namunaga kursor tushunchasi ham kiritilgan. Kursor jadvalni joriy satrini ko‘rsatib turadigan ko‘rsatkich, kursor orqali jadvalni satrlari bo‘yicha navigatsiya, ya’ni har tomonga yurish mumkin, buning uchun kursor avvalo natijaviy jadvalga bog‘lanib qo‘yiladi, so‘ng ma’lum komandalar bilan shu jadval bo‘ylab yuradi.
Oxirida kursor yopilishi kerak bo‘ladi, shunda natijaviy jadval ham o‘chiriladi.
So‘rov tasnifi
So‘rov tasnifida tanlash ro‘yxati beriladi bu ro‘yxatda jadvallar ustunlari nomidan tashqari ulardan tuzilgan arifmetik ifodalar, satrlar va o‘zgarmaslar berilishi mumkin. Natijaviy jadvalda shu ro‘yxatda ko‘rsatilgan ustunlar bo‘ladi. So‘rov tasnifi ALL yoki DISTINCT kalit so‘zlari uchrashi mumkin. Agar so‘rov tasnifida DISTINCT kalit so‘zi uchrasa, natijaviy jadvaldan bir xil satrlar, ya’ni takrorlanuvchi satrlar olib tashlanadi, aksincha ALL kalit so‘zi ishlatilsa yoki ikkalasi ham yozilmasa satr nusxalari saqlanib qoladi.
|
| |