Kirishda sql so'rovi nima. SQL so'rovlari yordamida Access ma'lumotlar bazasida ma'lumotlarni tanlash. Bo'ysunuvchilarsiz yozuvlar

№1 laboratoriya

SQL: RETRIEVE DATA - buyrug'iTANLASH

Ishning maqsadi:

  • SQL iboralari bilan tanishing
  • SELECT buyrug'i yordamida Accessda oddiy SQL so'rovlarini yaratishni o'rganish;

· IN, BETWEEN, LIKE, IS NULL operatorlaridan foydalanish.

Vazifa№1. SQL rejimida TALABLAR jadvalidagi FIRST NAME va LAST NAME maydonlarining barcha qiymatlarini tanlash uchun so‘rov yarating.

ISMI, FAMIYASINI TANlang

Talabalardan;

Vazifa№2 . TALABLAR jadvalining barcha ustunlari uchun SQL rejimida tanlangan so‘rov yarating.

TANLASH*

Talabalardan;


Vazifa raqami 3. SQL rejimida talabalar yashaydigan shaharlarning nomlarini tanlash uchun so'rov yarating, ular haqida ma'lumot SHAXSIY MA'LUMOT jadvalida.

ALOQA SHAHAR TANLASH

[SHAXSIY maʼlumotlardan];

Vazifa raqami 4. SQL rejimida Ivanov familiyasi bo'lgan barcha talabalarning ismlarini tanlaydigan tanlov so'rovini yarating, ularning ma'lumotlari TALABLAR jadvalida.

FAMILYA, ISMI TANLASH

Talabalardan

FAMIYASI "Ivanov";

Vazifa raqami 5. Byudjetdan moliyalashtiriladigan ta'lim shakli bo'yicha UIT-22 guruhida tahsil olayotgan talabalarning ism va familiyalarini olish uchun SQL rejimida tanlov uchun so'rov yarating.

FAMILYA, ISMI TANLASH

Talabalardan

WHERE GROUP="HIT-22" VA BUDJET=to'g'ri;

Vazifa raqami 6. SQL rejimida so'rov yarating. imtihondan o'tish jadvali namunasi uchun faqat 4 va 5 ball olgan talabalar haqida ma'lumot.

TANLASH*

FROM[O'ZGARISHimtihonlar]

QAYERDABAJAIN (4,5);

Vazifa raqami 7. IOSU fanidan imtihon bahosi 3 boʻlgan talabalar haqidagi maʼlumotlar namunasi uchun zanpoc va SQL rejimini yarating.

TANLASH*

FROM[O'ZGARISHimtihonlar]

QAYERDABUYUM=" ISSU"VaBAJAIn emas (4.5);

Vazifa raqami 8. Soatlari 100 dan 130 gacha bo'lgan elementlar uchun yozuvlarni tanlash uchun SQL rejimida so'rov yarating.

TANLASH*

FROMBUYUMLAR

QAYERDAKO'RING100 dan 130 gacha;


Vazifa raqami 9. Talabalar jadvalidan familiyasi, masalan, “C” harfi bilan boshlangan talabalar haqidagi ma’lumotlarni tanlash uchun SQL rejimida so‘rov yarating.

TANLASH*

FROMTalabalar

QAYERDAFAMILIYALIKE"Bilan*";

Chiqish: Laboratoriya ishi davomida SQL operatorlari bilan tanishdik, IN, BETWEEN, LIKE operatorlari yordamida SELECT buyrug'i yordamida Accessda oddiy SQL so'rovlarini yaratishni o'rgandik.

SQL tili to'liq ishlab chiqish tili funktsiyalariga ega emas, lekin ma'lumotlarga kirishga qaratilgan, shuning uchun u dasturni ishlab chiqish vositalariga kiritilgan. Bunday holda, u deyiladi o'rnatilgan SQL. SQL tili standarti quyidagi dasturlash tillarining zamonaviy ilovalarini qoʻllab-quvvatlaydi: PL/1, Ada, C, COBOL, Fortran, MUMPS va Paskal.

Mijoz-server tipidagi ixtisoslashtirilgan dasturlarni ishlab chiqish tizimlarida dasturlash muhiti odatda aloqa vositalari (ma'lumotlar bazasi serverlari bilan ulanishlarni o'rnatish va uzish, tarmoqda yuzaga keladigan xatolarni aniqlash va qayta ishlash va boshqalar), foydalanuvchi interfeysini ishlab chiqish vositalari bilan to'ldiriladi. dizayn vositalari va disk raskadrovka.

O'rnatilgan SQL dan foydalanishning ikkita asosiy usuli mavjud: statik va dinamik.

Da statik tildan foydalanish (statik SQL) dastur matni kompilyatsiyadan keyin bajariladigan modulga qattiq kodlangan SQL tili funksiyalariga qo'ng'iroqlarni o'z ichiga oladi. Chaqiriladigan funksiyalardagi o'zgarishlar dasturlash tilining o'zgaruvchilari yordamida individual chaqiruv parametrlari darajasida amalga oshirilishi mumkin.

Da dinamik tildan foydalanish (dinamik SQL) SQL funksiya qo'ng'iroqlarining dinamik qurilishi va bu qo'ng'iroqlarni talqin qilish, masalan, dasturni bajarish paytida masofaviy ma'lumotlar bazasidan ma'lumotlarga kirish nazarda tutiladi. Dinamik usul odatda SQL qo'ng'irog'i turi ilovada oldindan ma'lum bo'lmagan va u foydalanuvchi bilan dialogda qurilgan hollarda qo'llaniladi.

SQL tilining asosiy maqsadi (shuningdek, ma'lumotlar bazalari bilan ishlash uchun boshqa tillar) so'rovlarni tayyorlash va bajarishdir. Bir yoki bir nechta jadvallardan ma'lumotlarni tanlash natijasida yozuvlar to'plamini olish mumkin, chaqiriladi vakillik.

Ishlash mohiyatan so'rovlarni bajarish natijasida hosil qilingan jadvaldir. Aytishimiz mumkinki, bu saqlangan so'rovning bir turi. Bir xil jadvallarda bir nechta ko'rinishlar tuzilishi mumkin. Ko'rinishning o'zi ko'rish identifikatori va uni olish uchun bajarilishi kerak bo'lgan so'rovni belgilash orqali tavsiflanadi.



Ko'rinishlar bilan ishlash qulayligi uchun SQL tiliga kursor tushunchasi kiritilgan. Kursor yozuvlar to'plamini qayta ishlash jarayonida harakat qilish uchun ishlatiladigan ko'rsatgichning bir turi.

Kursorning SQL tilida tavsifi va ishlatilishi quyidagicha. Dasturning tavsiflovchi qismida kursor tipidagi o'zgaruvchi (CURSOR) SQL operatori bilan bog'lanadi (odatda SELECT operatori bilan). Dasturning bajariladigan qismida kursor ochiladi (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...), keyin tegishli ishlov berish va nihoyat kursorni yopish (CLOSE<имя курсора>).

Relyatsion DBMSda munosabatlar bo'yicha operatsiyalarni bajarish uchun E. Codd tomonidan taklif qilingan nazariy so'rovlar tillari o'zlarining matematik asosiga ega bo'lgan ikkita til guruhidan foydalaniladi:

Relyatsion algebra;

relyatsion hisob.

Relyatsion algebrada barcha operatsiyalarning operandlari va natijalari munosabatlardir. Relyatsion algebra tillari protsessual bo'lib, relyatsion ma'lumotlar bazasiga nisbatan so'rov natijasida hosil bo'lgan munosabat munosabatga qo'llaniladigan relyatsion operatorlar ketma-ketligini bajarish orqali baholanadi. Operatorlar operandlar, ya'ni munosabatlar va aloqador operatsiyalardan iborat.

Coddning relyatsion algebra operatsiyalarini ikki guruhga bo'lish mumkin: asosiy to'plam-nazariy va maxsus relyatsion. Birinchi guruh operatsiyalari to'plam nazariyasining klassik operatsiyalarini o'z ichiga oladi: birlashma, farq, kesishish va mahsulot. Ikkinchi guruh haqiqiy ma'lumotlarni manipulyatsiya qilish muammolari bo'yicha an'anaviy to'plam nazariy operatsiyalarini ishlab chiqishni ifodalaydi va operatsiyalarni o'z ichiga oladi: proyeksiya, tanlash, bo'linish va qo'shilish.

Hisoblash tillari protsessual bo'lmagan (tavsiflovchi yoki deklarativ) va so'rovlarni kortejlar yoki munosabatlar sohalari qondirishi kerak bo'lgan birinchi tartibli predikat (funktsiya taklifi) yordamida ifodalashga imkon beradi. Bunday til yordamida bajarilgan ma'lumotlar bazasi so'rovi faqat kerakli natija haqidagi ma'lumotlarni o'z ichiga oladi. Ushbu tillar so'rovlarni yozish uchun qoidalar to'plamining mavjudligi bilan tavsiflanadi. Xususan, SQL ushbu guruh tillariga tegishli.

Ilova xususiyatlari SQL so'rovlari

SQL so'rovi SQL operatori yordamida yaratilgan so'rovdir. SQL so‘rovlariga qo‘shilish so‘rovlari, server so‘rovlari, boshqaruv so‘rovlari va quyi so‘rovlar misol bo‘la oladi.

Birlashma so'rovi - bu bir yoki bir nechta jadval yoki so'rovlarning maydonlarini (ustunlarini) yozuvlar natijalari to'plamidagi bitta maydon yoki ustunga birlashtirgan so'rov. Misol uchun, oltita sotuvchi har oyda mavjud bo'lgan tovarlarning inventarlarini boshqaruvga taqdim etadi. Qo'shilish so'rovini yaratish orqali siz ushbu tavsiflarni natijalar to'plamidagi yozuvlarda birlashtira olasiz va keyin qo'shilish so'rovi asosida jadval yaratish uchun so'rovni ishlab chiqishingiz mumkin.

Serverga so'rov buyruqlarni ODBC orqali SQL serveriga, masalan, Microsoft SQL Serverga uzatishni amalga oshiradi. Server so'rovlari ularni biriktirish o'rniga serverdagi jadvallar bilan bevosita ishlash imkonini beradi. Serverga so'rovni bajarish natijasi yozuvlarni yuklash yoki ma'lumotlarni o'zgartirish bo'lishi mumkin.

Tekshirish so'rovi Access yoki SQL Server jadvallari kabi ma'lumotlar bazasi ob'ektlarini yaratadi yoki o'zgartiradi.

Quyi so'rov boshqa tanlash yoki yangilash so'rovi ichidagi SQL SELECT iborasidan iborat. Ushbu ko'rsatmalar yangi maydonni aniqlash uchun so'rov shaklining Maydon qatoriga yoki maydonni tanlash shartini aniqlash uchun Kriteriyalar qatoriga kiritiladi. Quyi so'rovlar quyidagi amallarni bajarish uchun ishlatiladi:

Zaxira qilingan EXISTS yoki NO EXISTS so'zlari yordamida quyi so'rovda ba'zi natijalar mavjudligini tekshirish;

Asosiy so'rovda quyi so'rovda qaytarilgan qiymatlarga teng, kattaroq yoki undan kichik bo'lgan har qanday qiymatlarni qidiring (har qanday, IN yoki ALL deb zahiralangan so'zlardan foydalaning);

Quyi so'rovlar ichida pastki so'rovlarni yaratish (ichki so'rovlar).

Access-dagi SQL tili ekran shakllari, hisobotlarni ishlab chiqishda, shuningdek, VBA-da makro va dasturlarni yaratishda qo'llanilishi mumkin.

QBE va SQL tillarining aloqasi

Access-da QBE va SQL o'rtasida yaqin aloqa mavjud. Foydalanuvchi tomonidan to'ldirilgan QBE tilidagi so'rovlar jadvallari (shakllar, shakllar) to'g'ridan-to'g'ri bajarishdan oldin SQL ifodalariga aylantiriladi. Ya'ni, SQL tili so'rovlarni bajarish uchun ichki standartdir. Ushbu mexanizmning afzalligi shundaki, u Access tizimida mahalliy va masofaviy kompyuterlarda bajarish uchun so'rovlarni tayyorlashni birlashtirish imkonini beradi. Ikkinchi holda, SQL - xabar haqiqatda kompyuterga - so'rov serveriga uzatiladi.

Access-da so'rov uchta rejimdan (holatlardan) birida bo'lishi mumkin: Dizayn, SQL va Jadval. Dizayn rejimi noldan yangi so'rovni loyihalash uchun (Sehrgarlar yoki boshqa vositalardan foydalanmasdan) yoki mavjud so'rovning tartibini o'zgartirish uchun ishlatiladi. SQL rejimi SQL bayonotlarini kiritish yoki ko'rish uchun ishlatiladi. So'rov natijalari bilan ishlash uchun jadval rejimi qo'llaniladi.

Shakllar va hisobotlarda SQL

Displeylar va hisobotlardagi yozuvlarning asosiy manbalari jadvallar va so'rovlardir. Ikkinchi holda, so'rov ma'lumotlar bazasiga tayyor so'rov bo'lishi mumkin yoki shakl yoki hisobotni ishlab chiqishda yaratilgan.

Makroslarda SQL

Makroslar ma'lumotlar bazasi bilan ishlashda tez-tez takrorlanadigan amallarni bajarishni avtomatlashtirish uchun foydalaniladigan makroslarning bir qismidir. Makros argumentli bir yoki bir nechta makrosdir.

Makroslar ma'lumotlar bazasi oynasidan yoki ma'lum hodisalar sodir bo'lganda avtomatik ravishda chaqiriladi. Makros chaqiriladigan hodisa, masalan, forma maydonidagi tugmani bosish yoki ma'lumotlar bazasi oynasini ochish bo'lishi mumkin. Makrolar ma'lumotlar bazasi ob'ektlarida ba'zi amallarni bajarish bilan bir qatorda, boshqa makroslarni, Visual Basic dasturlarini va tashqi ilovalarni chaqirishi mumkin.

SQL-ga ega ko'plab makroslardan ikkitasi to'g'ridan-to'g'ri bog'liq: RunSQL Query (Run SQL) va OpenQuery (OpenQuery)

RunSQL so'rov makro tegishli SQL bayonotidan foydalangan holda o'zgartirish so'rovini yoki kirishni boshqarish so'rovini ishga tushiradi. Ushbu makros so'rovlarni saqlamasdan so'ldagi amallarni bajarish imkonini beradi. Saqlangan so'rovlarni makros yordamida ham bajarishingiz mumkin.

So'rovlarni o'zgartirish SQL iboralari quyidagi funktsiyalarni bajaradi: qo'shish (INSERT INTO), o'chirish (DELETE), jadval yaratish (SELECT ... INTO) va yangilash (UPDATE)

So'rovlarni nazorat qilish Bular quyidagi funksiyalarni bajaradigan SQL operatorlari: jadval yaratish (CREATE TABLE), jadvalni o‘zgartirish (ALTER TABLE), jadvalni tushirish (DROP TABLE), indeks yaratish (CREATE INDEX) va indeksni tushirish (DROP INDEX)

Yagona va talab qilinadigan so'l argument SQL so'rovini ishga tushiring SQL bayonotidir. SQL matni ko'rinishidagi makro argument - ko'rsatmalar so'l kiritish oynasiga qo'lda kiritiladi yoki SQL oynasidan ko'chiriladi, bu ko'pincha qulayroqdir.

makro OpenRequest tanlangan soʻrovni yoki oʻzaro soʻrovni (Maʼlumotlar jadvali, Dizayn va Koʻrib chiqish rejimlarida) ochishga, oʻzgartirish soʻrovini bajarishga yoki maʼlumotlarni kiritish soʻrovini bajarishga imkon beradi.

Makros uchta argumentni oladi: so'rov nomi, rejim va ma'lumotlar rejimi. Birinchi argument ochish uchun so'rov nomini belgilaydi va talab qilinadi. Ikkinchi argument so'rovni ochish rejimini belgilaydi (jadval, dizayn va ko'rish). Uchinchi argument so'rov uchun ma'lumotlarni kiritish rejimini tavsiflaydi (Qo'shish, o'zgartirish va faqat o'qish)

VBA dasturlarida SQL

VBA, xuddi makrolar kabi, Access ma'lumotlar bazasi ob'ektlarida takrorlanuvchi operatsiyalarni bajarishni avtomatlashtirish uchun mo'ljallangan.

Access VBA dasturlarini ishga tushirishning quyidagi usullarini taqdim etadi:

Dasturni hodisani boshqarish tartibiga kiritish;

Ifodada funksiyani chaqirish;

Sub protsedurani boshqa protsedurada yoki disk raskadrovka oynasida chaqirish;

Makrosda RunCode (RunCode) makrosining bajarilishi.

Funktsiyalar shakllar, hisobotlar yoki so'rovlarda hisoblangan maydonlarni belgilaydigan ifodalarda qo'llaniladi. Ifodalar so'rovlar va filtrlarda, shuningdek, makrolarda, VBA bayonotlari va usullarida va SQL bayonotlarida shartlarni belgilash uchun ishlatiladi. Subprotsedura boshqa protseduralardan chaqiriladigan umumiy VBA quyi dasturlarini o'z ichiga olishi mumkin.

Visual Basic for Applications dasturida SQL iboralari yordamida ma'lumotlar bazasi so'rovini bajarishni ko'rib chiqing.

So'rov ma'lumotlar bazasida ma'lum shartlarga javob beradigan yozuvlarni tanlaydi (tanlash so'rovi) yoki ma'lum shartlarga javob beradigan yozuvlar bilan belgilangan harakatlarni bajarish uchun ko'rsatma beriladi (o'zgartirish so'rovi).

So'rovlarni bajarishning quyidagi usullari mavjud:

Execute usulini chaqirish (o'zgartirish uchun SQL so'rovlarini bajarish uchun);

Maxsus QueryDef obyektini yaratish va bajarish;

OpenRecordset usuliga argument sifatida SQL bayonotidan foydalanish;

Mavjud QueryDef obyektida OpenRecordset usulini bajarish;

RunSQL va OpenQuery usullarini chaqirish.

Amalga oshirish usuli Agar siz ma'lumotlar bazasida yozuvlarni qaytarmaydigan bunday o'zgarishlarni amalga oshirmoqchi bo'lsangiz ishlatiladi. Masalan, yozuvlarni qo'shish yoki o'chirish operatsiyalari.

QueryDef obyekti ma'lumotlar bazasida saqlangan so'rov ta'rifini ifodalaydi. Uni kompilyatsiya qilingan SQL bayonoti sifatida ko'rish mumkin.

OpenRecordset usuli Recordset tipidagi ob'ektni unda keyingi amallarni bajarish uchun ochish uchun ishlatiladi.

RunSQL usuli makrosni bajaradi SQL so'rovini ishga tushiring VBA dasturida

OpenQuery usuli VBA dasturida OpenQuery makrosini bajaradi. U so'rovni ma'lumotlar jadvali, dizayn yoki ko'rinish ko'rinishida ochish uchun ishlatilishi mumkin. Bu ma'lumotlar bilan ishlashning quyidagi rejimlaridan birini o'rnatadi: qo'shish, o'zgartirish yoki faqat o'qish uchun.

So'rovni bajarish variantini tanlash dasturchi tomonidan hal qilinayotgan muammoning o'ziga xos xususiyatlarini hisobga olgan holda belgilanadi.

Rossiya Federatsiyasi Ta'lim vazirligi

Kuzbass davlat texnika universiteti

Kompyuter injiniringi kafedrasi

va axborot texnologiyalari

SQL-da so'rovlar

“Iqtisodiy hisob-kitoblarni avtomatlashtirish” kursi bo‘yicha “Korxonalarda iqtisodiyot va menejment” mutaxassisligi talabalari uchun laboratoriya ishlari bo‘yicha uslubiy ko‘rsatmalar.

Muallif: E.A. Bessonov

Kafedra majlisida tasdiqlangan Bayonnoma 23.06.2000 y. 11-son

Elektron nusxasi KuzGTU bosh binosi kutubxonasida saqlanadi

Kemerovo 2001 yil

SQL (Structured Query Language - tuzilgan so'rovlar tili)

boyqushlar) 1986 yildan beri. standart relyatsion ma'lumotlar bazasi tilidir. Xususan, u Access va Excel dasturlarida qo'llaniladi. SQL tili standarti da keltirilgan.

MS Access-da so'rovlar SQL tili yordamida saqlanadi va amalga oshiriladi. Ko'pgina so'rovlar grafik vositalar (shablon so'rovlari) yordamida yaratilishi mumkin bo'lsa-da, ular SQL bayonotlari sifatida saqlanadi. Ba'zi hollarda (masalan, quyi so'rovlarda) faqat SQL dan foydalanish mumkin. MS Access-da ushbu tilning dialekti ishlatiladi va quyida tavsiflanadi. Ko'p sonli SQL so'rovlari misollarini Northwind ma'lumotlar bazasida (MB) topish mumkin (I fayl:\Access\Sampapps\Nwind.mdb).

SQL boshqa yuqori darajadagi dasturlash tillaridan keskin farq qiladi.

1. SQL protsessual bo'lmagan tildir. U shunchaki nima qilish kerakligini e'lon qiladi va bajarish DBMS (ma'lumotlar bazasini boshqarish tizimi) ga yuklanadi.

2. SQL uchta qiymatli mantiqdan foydalanadi. An'anaviy mantiqiy TRUE va FALSE bilan bir qatorda NULL (NOMA'YOR yoki NO MA'LUMOT) ishlatiladi.

3. Amallar boshqa dasturlash tillarida bo'lgani kabi alohida elementlarda emas, balki butun ma'lumotlar to'plamida amalga oshiriladi.

SQL so'rovi bayonotlardan iborat. Har bir ko'rsatma bir nechta bandlarni o'z ichiga olishi mumkin.

Foydalanilgan jadvallar yoki so‘rovlarni tavsiflovchi va sintaksisga ega FROM bandisiz deyarli hech bir so‘rov to‘liq emas.

Jadvallardan

Jadvallar - ishlatiladigan jadvallar/so'rovlar va ularning munosabatlari.

Agar FROM bandida IN bandi mavjud bo'lsa (kvadrat qavslar bandning bu qismi ixtiyoriy ekanligini bildiradi), u holda zahiralangan IN so'zidan keyin jadvallar joylashgan ma'lumotlar bazasi nomi kelishi kerak (jadvallar deb taxmin qilinadi. joriy ma'lumotlar bazasidan foydalanilmaydi).

O'qituvchilardan

Agar so'rov ikkita jadvalga asoslangan bo'lsa, unda ularni birlashtirish usulini ko'rsatish kerak - quyidagilardan biri (o'quvchi ular bilan tanish deb taxmin qilinadi):

Dekart mahsuloti; INNER JOIN ichki birlashma; LEFT JOIN chap tashqi birlashma; RIGHT JOIN - o'ng tashqi birlashma.

Birlashish usulidan so'ng darhol ON Table1.Key = Table2.ForeignKey iborasini joylashtirishingiz kerak.

Key - 1-tomondagi kalit maydonining nomi. ForeignKey - N tomondagi bog'lovchi maydonning nomi.

Ma'lumotlar sxemasi

Rasmda quyidagi misollarning aksariyati uchun ishlatiladigan jadvalni birlashtirish sxemasi (ma'lumotlar sxemasi) ko'rsatilgan. Rasmdan, masalan, “Imtihonchilar” jadvalining “Mavzu” maydoni kalit maydoni (qalin bilan ajratilgan), “O‘qituvchi” maydoni esa “O‘qituvchilar” jadvalining chet el kaliti ekanligini ko‘rish mumkin. Belgilangan jadvallar orasidagi birlashma ma'lumotlar yaxlitligi bilan ichkidir. Buni bog'lovchi chiziqning oxiridagi 1 va ∞ belgilari tasdiqlaydi ("O'qituvchilar" - asosiy jadval, "Imtihonchilar" - bo'ysunuvchi jadval). Tashqi birlashmada siz jadvalni birlashtirish chizig'ida pastki jadvalga ishora qiluvchi o'qni ko'rishingiz mumkin. Bu shuni anglatadiki, agar bolalar jadvalida tegishli yozuvlar bo'lmasa ham, barcha yozuvlar asosiy jadvalda ko'rsatiladi. Masalan, siz o'qituvchilar ro'yxatini va fan nomlarini olishingiz mumkin. Agar

ba'zi o'qituvchi "Imtihonchilar" jadvalida yo'q, agar LEFT JOIN ishlatilsa, ushbu o'qituvchining mavzu nomi maydoni bo'sh bo'ladi.

FROM Examiners INNER JOIN Exams ON Examiners.Subject = Exams.Subject

FROM bandida zaxiralangan INNER JOIN so'zlaridan oldin 1-chi tomondagi jadval nomi (bizning holimizda "Imtihonchilar" jadvali) joylashgan. Agar FROM bandida ikkitadan ortiq jadval mavjud bo'lsa, u holda ikkita jadvalning qo'shilishi qavslar ichiga olinishi va boshqa jadvallar yoki birikmalar bilan birlashtirilganda bitta jadval sifatida ko'rib chiqilishi mumkin. Shu tarzda siz istalgan sonli jadvallar birligini tasvirlashingiz mumkin.

O'qituvchilardan ICHKI JOIN (Imtihonchilar

INNER JOIN imtihonlari

ON Examiners.Subject = Exams.Subject)

ON Teachers.Teacher = Examiners. Teacher Barcha ma'lumotlar sxemasi tasvirlangan (rasmga qarang).

SELECT iborasi jadvallar yoki so'rovlardan kerakli maydonlarni tanlaydi. Minimal variant formati:

Jadvallardan;

Maydonlar - vergul bilan ajratilgan iboralar va maydon nomlari to'plami. Misol

Guruh, talaba, imtihonlardan baho;

Agar ism FROM bandida keltirilgan bir nechta jadvalda takrorlansa, nom oldidan jadval nomi va nuqta qo'ying, masalan: [Imtihonchilar].O'qituvchi yoki [Imtihonlar]. [Element]

Agar jadval yoki maydon nomida boʻsh joy yoki boshqa maxsus belgi boʻlsa, bu nom kvadrat qavs ichiga olinishi kerak. Aks holda, qavslar ixtiyoriy.

DA Ushbu misolda jadval rejimida so'rov jadvalni qaytaradi

bilan "Guruh", "Talaba", "Baho" ustunlari sarlavhalari (shu tartibda). Ba'zan sarlavhadan boshqacha bo'lishi maqsadga muvofiqdir

maydon nomi. Bunday holda, maydon nomidan keyin zahiralangan AS so'zi va sarlavha (taxallus) qo'yilishi kerak, masalan:

Guruhni tanlang, Talaba nomi, baho

DA Bunday holda, "Talaba" sarlavhasi o'rniga "Ism" paydo bo'ladi. Agar

ichida sarlavha bir nechta so'zdan iborat bo'lsa, u kvadrat qavs ichiga olinishi kerak.

Agar siz jadvalning barcha maydonlarini ko'rsatishingiz kerak bo'lsa, u holda maydon argumenti yulduzcha yoki "Jadval.*" shaklida ko'rsatilishi kerak.

O'qituvchilarni TANlang.* O'qituvchilardan;

"O'qituvchilar" jadvalidagi barcha 5 ta maydon ko'rsatiladi.

Ba'zan maydon qiymatini emas, balki maydon qiymatlari bo'yicha hisob-kitoblar natijasini qaytarish talab qilinadi. Bunday holda, maydon nomi o'rniga siz ifodani ko'rsatishingiz kerak. Ifodalarni yozish qoidalari so'rovlar tuzuvchisida qo'llaniladigan qoidalar bilan bir xil.

Imtihonlardan Oʻrtacha([Baho]) [Oʻrtacha] sifatida TANGLASH;

So'rov "O'rtacha" sarlavhali ustunda bitta raqamni qaytaradi

barcha o‘quvchilar baholarining o‘rtacha arifmetik qiymatidir. Misol

Count([Instructor]) [Instructors Soni] sifatida Instruktorlardan TANLASH;

"O'qituvchilar soni" sarlavhasi ostida "O'qituvchilar" jadvalining "O'qituvchi" maydoni bo'sh bo'lmagan qatorlar soni joylashtiriladi (va u har doim ham bo'sh emas, chunki u asosiy hisoblanadi). Bu o'qituvchilar soni, chunki har bir yozuvda boshqa o'qituvchilar sonidan farq qiladigan o'qituvchi raqami mavjud.

DA SELECT so'zidan keyin darhol SELECT iborasi bo'lishi mumkin

predikat yoziladi - ALL, DISTINCT, DISTINCTROW, TOP N so'zlaridan biri.

ALL predikati barcha yozuvlarni, hatto ularda dublikatlar bo'lsa ham, qaytarish kerakligini aytadi.

DISTINCT tanlangan maydonlarda takroriy yozuvlarni ko'rsatishni taqiqlaydi. DISTINCT predikatidan foydalanish Query Builder xususiyatlari varaqidagi Noyob qiymatlar xususiyatini Ha ga o'rnatishga teng.

DISTINCTROW faqat tahlil qilingan jadvallarning barcha maydonlari so'rovga kiritilmagan bo'lsa, natijaga ta'sir qiladi. Agar so'rovda faqat bitta jadval mavjud bo'lsa, predikat e'tiborga olinmaydi. DISTINCTROW predikati butunlay takrorlanadigan yozuvlarni istisno qiladi. DISTINCTROW predikatidan foydalanish Query Builder xossalar sahifasida Noyob yozuvlar xususiyatini Ha ga o'rnatishga teng.

Top N predikati to'plamning boshida yoki oxirida joylashgan, ushbu maydon qiymatlari bo'yicha o'sish yoki kamayish tartibida tartiblangan N yozuvlarni qaytarish uchun ishlatiladi. Saralash FROM bandidan keyin ORDER BY bandi yordamida belgilanadi.

SELECT ko'rsatmalari.

ORDER BY so'zlaridan keyin maydon nomini va ASC (ko'tarilish, ixtiyoriy) yoki DESC (pasayish) so'zini joylashtirishingiz kerak. Quyidagi SQL bayonoti sizga eng yaxshi 5 talaba ro'yxatini olish imkonini beradi.

akademik ishlash

1-jadval

O'rtacha ball

Medvedev

Vorobyov

TOP 5 Talaba, [GPA] NI TANLANG

[O'rtacha] DESC BO'YICHA BUYURTMA;

Imtihonlardan DISTINCT [Talaba] TANLANING

[Talaba] tomonidan BUYURUM;

So'rov familiyaning o'sishi bo'yicha tartiblangan talabalar ro'yxatini qaytaradi.

SELECT iborasining FROM bandidan keyin yozishingiz mumkin

WHERE sharti shaklidagi WHERE bandi

Shart - manba jadvalidagi har bir yozuv uchun baholanadigan mantiqiy ifoda.

Agar shart rost bo'lsa, yozuv (tanlash bandidagi maydonlar ro'yxatidagi maydonlar to'plami) natijalar to'plamiga kiritiladi, agar noto'g'ri bo'lsa, u qo'shilmaydi.

SELECT DISTINCT Group, Student

Imtihonlardan

QERDA Bal = 2;

Bakalavriat talabalari ro‘yxati tuzilmoqda. Misol

WHERE [Lavozim]="Dotsent" YOKI [Daraja]="PhD." [to'liq ism] BO'YICHA BUYURUM;

Dotsent ilmiy unvoni yoki texnika fanlari nomzodi ilmiy darajasiga ega bo‘lgan o‘qituvchilar ro‘yxati chiqariladi. Ushbu misolda predikatni qo'llashning hojati yo'q, chunki yozuvlar turli o'qituvchilardan va takrorlash mumkin emas.

Satr ifodalarini tanlashda siz hisob natijasi mos kelishini tekshiradigan Expression Like operator shablonidan foydalanishingiz mumkin. shablonli ifodalar. Shablon maxsus maqsadli belgilardan foydalanishi mumkin:

* har qanday belgilar soni;

Har qanday xarakter.

DA kvadrat qavslar belgi bo'lgan yoki bo'lmagan diapazonni ko'rsatish uchun ishlatilishi mumkin.

A dan F oralig'idagi belgi. [!A-F] belgisi A-F oralig'ida emas.

Oʻqituvchilardan [Ism] ni tanlang

QAYERDA [Ism] “B*” YOKI [Ism] “Sch*” kabi;

DA olingan to'plam D yoki S harflari bilan boshlangan o'qituvchilarning familiyalarini o'z ichiga oladi.

X “P###” LIKE

Yozma shart P harfi bilan boshlanadigan 5 ta belgidan iborat satrlar bilan qanoatlantiriladi. Undan keyin A-F oralig'idagi harf kelishi kerak. Satr 3 ta raqam bilan tugashi kerak.

Agar har bir so'rovni bajarishdan oldin tanlov shartlarini o'zgartirish zarur bo'lsa, quyidagi shakldagi jumladan foydalanish qulay:

PARAMETERS matnlari;

Matnlar - vergul bilan ajratilgan matnlar ro'yxati.

Har bir matndan keyin ma'lumotlar turi bo'sh joy bilan ko'rsatiladi. Parametrlar bilan so'rovni bajarganingizda, so'rovlar dizayneri oynasini ochishingiz va filtrlash shartlariga o'zgartirish kiritishingiz shart emas. Buning o'rniga foydalanuvchidan so'rov vaqtida kerakli shartni kiritish so'raladi. PARAMETRELAR bandidagi har bir matn uchun ekranda dialog oynasi paydo bo'ladi, bu erda tavsifdagi har bir matn maslahat rolini o'ynaydi - aynan nimani kiritish kerak. Muloqot oynasiga ko'rsatilgan turdagi ma'lumotlarni kiriting.

Agar PARAMETERS bandi ishlatilsa, u boshqa barcha iboralar, jumladan, SELECT iborasi oldida paydo boʻlishi va nuqta-vergul bilan tugashi kerak.

PARAMETRELAR [Boshlanish sanasini belgilang] DATETIME, [tugash sanasini belgilang] DATETIME;

WHERE va HAVING bandlarini tanlash shartlarida siz ma'lumotlar turlarini ko'rsatmasdan matndan foydalanishingiz mumkin. So'rov bajarilganda, matn kiritilgan qiymat bilan almashtiriladi.

PARAMETRELAR [Guruhni belgilang] MATN; TANLASH Talaba, sinf

Imtihonlardan

WHERE [Group]=[Specify group] and [Item]=1;

So'rov ko'rsatilgan guruh talabalarining fan bo'yicha baholarini 1 kod bilan qaytaradi.

GROUP BY bandi maydonlarning belgilangan ro‘yxatidagi (maydonlaridagi) yozuvlar guruhini bitta yozuvga birlashtiradi. Agar SELECT iborasi guruh funktsiyasini o'z ichiga olsa (masalan, O'rtacha yoki Sum), natija to'plamidagi yozuv uchun qiymat hisoblanadi - yozuvlar guruhi uchun jami. Masalan, agar siz "Imtihonlar" jadvalidagi yozuvlarni mavzu bo'yicha guruhlasangiz, "Ovg" funktsiyasidan foydalanib, siz mavzu bo'yicha o'rtacha ball olishingiz mumkin. Mavzu va guruhlar bo‘yicha guruhlash ko‘rsatilgan fan bo‘yicha o‘quvchilar guruhlarining o‘rtacha balllarini olish imkonini beradi.

GROUP BY ixtiyoriy. Agar SELECT bandida mavjud bo'lsa, u FROM bandidan keyin qo'yiladi.

GROUP BY bandidan foydalanilganda, SELECT bandining maydonlar ro‘yxatidagi barcha maydonlar GROUP BY bandining maydonlar ro‘yxatiga kiritilishi yoki SQL guruhi funksiyasiga argument sifatida ishlatilishi kerak.

Agar guruh funktsiyalaridan foydalanilsa va GROUP BY bandi bo'lmasa, u holda asl so'rov yozuvlarining butun to'plami guruh rolini o'ynaydi.

Imtihonlardan Guruh, Talaba, Oʻrtacha([Balo]) [Oʻrtacha] AS ni tanlang

[Guruh],[Talaba] boʻyicha GURUHLASH;

Har bir talaba uchun uning baholarining o'rtacha arifmetik qiymati hisoblanadi.

Ixtiyoriy HAVING bandi GROUP BY dan keyin paydo bo'lishi kerak. U guruhlangan yozuvlardan qaysi biri natijalar to'plamiga kiritilishini belgilaydi. HAVING dagi shart xuddi WHERE dagi kabi normal mantiqiy ifodadir. WHERE va HAVING bir vaqtning o'zida SELECT bayonotida bo'lishi mumkin. Bu holda WHERE guruhlashdan oldin yozuvlarni filtrlaydi va HAVING guruhlangan yozuvlarni (guruhlarni) filtrlaydi.

PARAMETRELAR [Element nomini kiriting] MATN; Guruh, mavzu, oʻrtacha([Baho]) SIQA [Oʻrtacha] INTER JOIN imtihonlarini imtihonchilardan tanlang

ON Examiners.Subject=Exams.Subject

WHERE [Mavzu nomi]=[Mavzu nomini kiriting] GROUP BY Guruh, Talaba

O'RNATISH ([Score])>=4,5 Va min ([Baho])>2;

So'rov GPA bilan talabalar ro'yxatini qaytaradi. Ro'yxatga ikkitasi bo'lmagan va o'rtacha ball kamida 4,5 bo'lgan talabalar kiradi.

TRANSFORM operatori o'zaro so'rovni yaratish uchun ishlatiladi. O'zaro so'rov bilan taqdim etilgan ma'lumotlar tanlangan so'rovga qaraganda ixchamroq ko'rsatiladi. Sintaksis:

TRANSFORM Function SELECT ...;

Funktsiya - jadval hujayra ma'lumotlarini qayta ishlaydigan SQL guruhi funktsiyasi Maydon - qiymatlari sarlavhaga aylanadigan maydon yoki ifoda

kami ustunlari.

Ma'lumotlar jadvali so'rovi maydon uchun aniq qiymatlar bo'lsa, shuncha ustunga ega. Misol uchun, agar maydon oylarning nomlarini qaytarsa, unda 12 tagacha ustun bo'ladi, ularning sarlavhalari o'sish tartibida tartiblanadi (avgust, aprel ... yanvar). Maydon argumentidan so'ng siz IN(qiymatlar_ro'yxati) bandini qo'yishingiz mumkin. qiymat_roʻyxatidagi sobit qiymatlar vergul bilan ajratiladi. IN bandi mavjud bo'lganda, har bir maydon qiymati value_list dagi qiymatlar bilan taqqoslanadi. Agar mos keladigan bo'lsa, funktsiyani hisoblash natijasi tegishli ustunda ko'rsatiladi. Haqiqiy ma'lumotlarga mos kelmaydigan sobit sarlavhalar qo'shimcha ustunlar yaratish uchun ishlatilishi mumkin.

PIVOT bandidan foydalanish Query Builder xususiyatlari varaqidagi "Ustun sarlavhalari" xususiyatini belgilashga teng.


Microsoft Access SQL va ANSI SQL ni solishtirish Microsoft Access SQL asosan ANSI-89 (1-darajali) standartiga mos keladi. Ba'zi ANSI SQL xususiyatlari Microsoft Access SQL da ishlatilmaydi Microsoft Access SQL Access 2000 da ANSI SQL tomonidan qo'llab-quvvatlanmaydigan zahiradagi so'zlar va funksiyalardan foydalanadi ( Tilni ANSI SQL-92 standartiga yaqinlashtiradigan MS Jet 4.0) kengaytmalari kiritildi - rejim faqat Jet uchun MS OLE DB Provayderidan foydalanganda mavjud.


SELECT buyruq sintaksisi (Microsoft Access) SELECT [ predikat ] ( * | jadval.* | [jadval.] maydon_1 [, [jadval.] maydon_2 [,...]]) FROM ifoda [,...] FROM bandi SELECT roʻyxati Maydonlar FROM ifodasi Ifoda ma'lumotlarni olish uchun bir yoki bir nechta jadvallarni belgilaydigan ifodadir. Bu ifoda bitta jadval nomi, saqlangan so‘rov nomi yoki INNER JOIN, LEFT JOIN yoki RIGHT JOIN operatsiyalarining natijasi bo‘lishi mumkin. ICHKI JOIN, LEFT JOIN O‘NG QO‘SHILMA.


SELECT bayonoti argumentlari Predikat (ALL, DISTINCT, DISTINCTROW yoki TOP) tanlash shartlaridan biridir. Predikatlar qaytarilgan yozuvlar sonini cheklash uchun ishlatiladi. Agar hech biri mavjud bo'lmasa, sukut bo'yicha ALL (SQL bayonotida ko'rsatilgan shartlarga mos keladigan barcha yozuvlarni tanlaydi) SQL DISTINCT - tanlangan maydonlarda takroriy qiymatlarni o'z ichiga olgan yozuvlarni o'z ichiga olmaydi. DISTINCTROW Shaxsiy takroriy maydonlar emas, balki butun takroriy yozuvlar asosidagi ma'lumotlarni o'tkazib yuboradi. Agar so'rovda faqat bitta jadval yoki barcha jadvallardagi barcha maydonlar bo'lsa, DISTINCTROW predikati e'tiborga olinmaydi. TOP n - ORDER BY bandida tasvirlangan diapazon boshida yoki oxirida joylashgan ma'lum miqdordagi yozuvlarni qaytaradi. TANLASH ]] 5 ta eng koʻp boʻlimlar jadvalidan: TOP 5 ta xodimni TANlang.[Boʻlim kodi], Xodimlar soni (xodim.Ismi) AS.Xodimlar GURUHIGA BOʻLGAN.[Boʻlim kodi] TARTIB BOʻYICHA BUYURT (xodim.Ism) DESC ;


SELECT bayonoti argumentlari jadvali - bu yozuvlar tanlanishi kerak bo'lgan jadvalning nomi. EGA KIRISH OPSIONASI BILAN - so'rov bo'yicha ishlaydigan foydalanuvchiga so'rov egasi bilan bir xil ruxsatlarni berish uchun xavfsiz ishchi guruh ko'p foydalanuvchili muhitda foydalaniladi. field_1, field_2 - ma'lumotlar tanlanishi kerak bo'lgan maydonlarning nomlari. Agar siz bir nechta maydonlarni qo'shsangiz, ular belgilangan tartibda olinadi. Alias_1, Alias_2 - jadvaldagi asl ustun nomlari o'rniga ustun sarlavhalari bo'ladigan nomlar. Ifoda - tanlanishi kerak bo'lgan ma'lumotlarni o'z ichiga olgan bir yoki bir nechta jadvallarning nomlari ExternalDatabase - ifoda argumenti bilan ko'rsatilgan jadvallarni o'z ichiga olgan ma'lumotlar bazasi nomi, agar ular joriy ma'lumotlar bazasida bo'lmasa. Xodimni tanlang.Ism, [ish haqi]*Xodimdan 0,5 AS Bonus; Xodimdan O'rtacha_ish haqi AS O'rtacha(xodim.maosh) ni tanlang;


Bir nechta jadvallarni birgalikda qayta ishlash SELECT xodim.Ism, mavzu.[qisqa mavzu nomi] FROM xodim INNER JOIN (mavzu INNER JOIN [element egalik] ON mavzu.[Item ID] = [element egalik].[intizom kodi]) ON xodim. Kod = [elementlarga egalik].[xodimlar kodi];




Between...Va 1-ibora 2 VA 3-ifoda o'rtasida (Microsoft Access SQL da 2 ifoda 3- ifodadan katta bo'lishi mumkin, lekin ANSI SQLda emas). xodim.ismi, xodim.ish haqini TANLASH xodim QAYERDAN ((((xodim.maosh) 1000 dan 2000 gacha)); So'rov: Xodimning nomini, xodimning ish haqini QAYERDAN xodimni tanlang ((((xodim. ish haqi) 2000 dan 1000 gacha)); xatoga yo'l qo'ymaydi va bir xil javob beradi xodim.ismi, xodim.ish haqi FROM xodim QAYERDAN (((ishchi.maosh) 15000)); Xodimning nomi, xodim. ish haqi NI xodim QAYERDAN TANGLASH ((((xodim. ish haqi) 1000 dan 2000 gacha emas));


Naqsh belgilari Har xil naqsh belgilari Like predikati bilan ishlatiladi. MS Access SQL ANSI SQL shablonining belgi bir belgi? _ (pastki chiziq) belgilar guruhi * % belgilar_roʻyxatidagi bitta belgi [ belgilar_roʻyxati] belgilar_roʻyxatida bitta belgi yetishmayapti [! belgilar roʻyxati] yoʻqolgan Oxirgi ikkita variant faqat kirish imkoniyatidir Access 2000 da ANSI SQL-92 rejimida siz ANSI joker belgilaridan foydalanishingiz mumkin. Belgilarni bir xil so‘rovda aralashtirib bo‘lmaydi. SELECT xodimi.Ism FROM xodim QAYER (((xodim.Ism) “D*” kabi));


GROUP BY SELECT bandi Fields FROM jadvali roʻyxati QAYER Tanlash sharti guruhlangan Maydonlar yozuvlarni guruhlash uchun foydalaniladigan maydonlarning nomlari (10 tagacha). Guruhlanadigan Fields argumentidagi maydon nomlarining tartibi ushbu maydonlarning har biri uchun guruhlash darajasini belgilaydi. Yozuvlarni guruhlashdan chiqarib tashlash uchun WHERE bandidan va guruhlashdan keyin yozuvlarga filtr qo‘llash uchun HAVING bandidan foydalaning. HAVING GROUP BY bandidan foydalanilganda, SELECT iborasining maydonlar ro'yxatidagi barcha maydonlar GROUP BY bandiga kiritilishi yoki SQL agregat funktsiyasi uchun argument sifatida ishlatilishi kerak. 5 dan ortiq xodimi bo'lgan bo'limlar: hamkorni SELECT[Bo'lim kodi], Count(xodim nomi) AS [Xodimlar soni] FROM hamkor GROUP BY hamkor [Bo'lim kodi] HAVING (((Son(xodim nomi))>5 )); 5));">




Quyi soʻrov. Predikat mavjud. Hamkorni SELECT, Count(comp.employee) AS number_attest_company FROM comp WHERE (((Mavjud (Tanlash DISTINCT hamkor, hamkor FROM hamkor INNER JOIN ex ON hamkor = hamkor misol)) False)) GROUP BY hamkor; False)) GROUP BY BY company;"> False)) GROUP BY BY;"> False)) GROUP BY company;" title="(!LANG: Subquery. Predikat mavjud. SELECT company, Count(emp.emp.) AS number_attest_emp . FROM op. WHERE (((Mavjud (SELECT DISTINCT op. firmasi, op. op. FROM op. INNER JOIN ex. ON op. op. = inst. op.)) False)) GROUP BY op. firma;"> title="Quyi soʻrov. Predikat mavjud. Hamkorni SELECT, Count(comp.employee) AS number_attest_company FROM comp WHERE (((Mavjud (Tanlash DISTINCT hamkor, hamkor FROM hamkor INNER JOIN ex ON hamkor = hamkor misol)) False)) GROUP BY hamkor;"> !}








QBE Query Builder yordamida quyi so'rovni yaratish Agar siz maydon shartlarini aniqlash uchun quyi so'rovdan foydalanayotgan bo'lsangiz, maydon ustunidagi Tanlash mezonlari qatoridagi katakka SELECT iborasini kiriting. SELECT iborasi qavs ichiga olinishi kerak.








Yozuvlar o'chirilmoqda. SQL so'rovi (hosil qilingan) DISTINCTROW talabasini DELETE. Name FROM student WHERE (((student.Name)="Burlak G. N."));


DELETE bayonoti O'chirish so'rovi faqat belgilangan maydonlarning mazmunini emas, balki butun yozuvlarni o'chiradi. Muayyan maydon uchun ma'lumotlarni o'chirish uchun mavjud qiymatlarni Null qiymatlari bilan almashtiradigan yozuvni yangilash so'rovini yarating. Belgilangan qidiruv shartlarisiz o'chirish so'rovi jadvaldagi barcha yozuvlarni o'chiradi. DROP buyrug'idan farqli o'laroq, jadval tuzilishi va barcha xususiyatlar saqlanib qoladi


Yozuvlar o'chirilmoqda. SQL so'rovi So'rovi: DELETE * FROM student WHERE student.Name="Burlak GN"; xuddi shunday natija beradi.



















35





41



Access DBMSda so'rovlarning ikki turi mavjud: QBE - namuna bo'yicha so'rov va SQL(Structured Query Language) - tuzilgan so'rovlar tili. Namunaviy so'rov "So'rovlar tuzuvchisi" oynasida maxsus so'rov shaklini to'ldirish orqali shakllantiriladi. SQL - so'rovlar dasturchilar tomonidan SQL ketma-ketligidan yaratiladi - ko'rsatmalar. SQL, qoida tariqasida, dasturchilar tomonidan so'rov formasida shakllantiriladi, u "Yaratish" yorlig'idagi "So'rovlar tuzuvchisi" buyrug'i bilan ochiladi va "View" menyusidan "SQL Mode" tanlanadi. SQL tili ma'lumotlar bilan ishlash uchun mo'ljallangan, ya'ni. relyatsion ma'lumotlar bazalarida ma'lumotlarni yaratish, o'zgartirish va boshqarish uchun.

Shuni ta'kidlash kerakki, ANSI-89 SQL va ANSI-92 SQL standartlariga mos keladigan bir nechta SQL so'rov usullari (ANSI-89 SQL rejimida va ANSI-92 SQL rejimida so'rovlar) mavjud.

Ko'rsatmalar SQL-dagi ma'lumotlar to'plamining tavsifini o'z ichiga oladi. SQL bayonotlari bo'laklardan iborat (SELECT, FROM, WHERE va boshqalar). Takliflar SQL tilida atamalar (operatorlar yoki buyruqlar, identifikatorlar, konstantalar va boshqalar) iborat. Bayonot bayon bilan boshlanib (TANISH, CREATE, INSERT, UPDATE, DELETE va hokazo buyruqlardan biri) nuqtali vergul bilan tugaydi. Asosiy SQL iboralari: SELECT, FROM va WHERE.

Masalan, SQL bayonoti:
Students.StudentId ni tanlang
Talabalardan;
"SELECT Students.StudentId" bandidan va "FROM Students" bandidan iborat.

SELECT bandi o'z ichiga oladi operator SELECT va identifikator"Students.StudentCode". Bu yerda “StudentCode” maydonining to‘liq nomidan oldin ma’lumotlar bazasidagi “Talabalar” jadvalining nomi qo‘yiladi. SELECT - kerakli ma'lumotlarni o'z ichiga olgan maydonni belgilaydi. FROM bandi FROM bandi va “Talabalar” identifikatoridan iborat. FROM - SELECT bandida ko'rsatilgan maydonlarni o'z ichiga olgan jadvalni belgilaydi.

Shuni ta'kidlash kerakki, SQL tilida so'rovni shakllantirishda uning sintaksisini hisobga olish kerak. SQL tilining sintaksisi ingliz tili sintaksisiga asoslanganligiga qaramay, SQL tili versiyalarining sintaksisi turli DBMSlar uchun farq qilishi mumkin.

So'rovlarning bir nechta turlari mavjud: tanlash, yangilash, yozuvlarni qo'shish va o'chirish, o'zaro so'rov, jadvallarni yaratish va o'chirish, jadvalga qo'shilish va boshqalar. Eng keng tarqalgani tanlov so'rovidir. Tanlash so'rovlari jadvallardan foydalanuvchiga kerakli ma'lumotlarni tanlash uchun ishlatiladi. Ular faqat tegishli jadvallar uchun yaratilgan.

Access 2003 yoki 2007 DBMS da SQL so'rovlarini ko'rish uchun so'rovni model bo'yicha loyihalash uchun faol oynada View/Mode SQL buyrug'ini bajarish kerak (1-rasm).


Guruch. bitta.

Access 2003 ma'lumotlar bazasidan talabalarning ishlash mezoni "Score=5" (2-rasm) bo'yicha ma'lumotlarni tanlash uchun SQL bayonotini (SELECT) olamiz.



Guruch. 2.

SELECT operatoridan quyidagicha (1-rasm) SQL tilidagi ma'lumotlar to'plamini tavsiflaydi: SELECT - maydonlar nomlarini belgilaydi, oldidan ma'lumotlarni o'z ichiga olgan jadvallar nomlari; FROM - jadvallarni va ularning munosabatlarini jadvallarning asosiy maydonlari orqali aniqlaydi (buning uchun INNER JOIN ... ON konstruktsiyasi qo'llaniladi), ular asosida ma'lumotlar tanlanadi; WHREME - maydonlarni tanlash shartlarini belgilaydi; ORDER BY - "Talabalar" jadvalining "Familiya" maydonining qiymatlarini o'sish tartibida (sukut bo'yicha, o'sish tartibida tartiblash) saralash usulini aniqlaydi.

Ma'lumotlar bazasidan ma'lumotlarni olish bo'yicha ko'rsatmalardan kelib chiqqan holda, SQL tilida ma'lumotlar bazasidan nimani olish kerakligi tasvirlangan, bajarish esa DBMSga ishonib topshirilgan, chunki SQL tilida dasturni bajarishni boshqarishning o'ziga xos elementlari yo'q.

  • Sergey Savenkov

    qandaydir "oz" sharh ... go'yo qayergadir shoshayotgandek