1-qadam: Savollar berish


Nimalarga e’tibor qaratilishi kerak


Download 192.66 Kb.
bet2/2
Sana26.11.2020
Hajmi192.66 Kb.
#153401
1   2
Bog'liq
uzbek koders ma'lumotlar tahlili jarayonlari

Nimalarga e’tibor qaratilishi kerak


"Parch & Posey" kompaniyasining ma’lumotlar bazasida 5 ta jadval mavjud (aslida 5 ta elektron jadval):

  1. web_events (veb hodisalar)

  2. accounts (hisob raqamlar)

  3. orders (buyurtmalar)

  4. sales_reps (savdo vakillari)

  5. region (hudud)

Bu jadvallarni har birini alohida elektron jadval sifatida ko‘rishingiz mumkin. Har bir elektron jadvaldagi ustunlar jadval nomidan pastda keltiriladi. Masalan, region (hudud) jadvalida 2 ta ustun mavjud: 'id' va 'name' nomli. web_events (veb hodisalar) jadvali esa 4 ta ustunga ega.

"Qarg‘aning oyog‘gi"ga o‘xshagan belgi barcha jadvallarni bir bilan bog‘lab turadi va bitta jadvaldagi ustunlar boshqa jadvaldagi ustunlar bilan bog‘liqligini ko‘rsatib turadi. Ushbu birinchi darsda SQL bilan bitta jadval bilan ishlashni o‘rganasiz. Keyingi darsda SQL va nisbiy ma’lumotlar bazasi bilan ishlaganda nima sababdan ushbu bog‘liqliklar juda muhimligini bilib olasiz.


Kirish


SQL tilida so‘rovlar yozishga kirishib ketishimizdan avval, SQL va ma’lumotlar bazasidan foydalanish bu qadar ommabop bo‘lib ketish sabablarini ko‘rib chiqaylik.

SQLni til sifatida ta’riflash muhim farqlovchi belgiga ega. Shu sababli, "SQL"dagi oxirgi harf tilni anglatadi. SQL ushbu darsimizda foydalaniladigan ma’lumotlar bazasidan tashqari barcha sohalarda ishlatiladi. Shuni e’tiborga olgan holda, SQL ma’lumotlar bazasi bilan ishlashda eng ommabop til hisoblanadi. Ushbu darsga, ma’lumotlar bazasini bir nechta "excel" elektron jadvallarini bir joyda saqlangan holati sifatida ko‘rishingiz mumkin. Hamma ma’lumotlar bazalari ham "excel" elektron jadvallari kabi bir joyda saqlanmaydi, lekin bu darsimizda shunday fikr yuritishimiz asosli fikrga ega.


Nima sababdan ma’lumotlarni tahlil qiluvchilar SQLdan foydalanadi?


An’anaviy nisbiy ma’lumotlar bazasini ishlatishning bir nechta asosiy afzalliklari mavjud. Ushbu afzalliklarni SQLdan foydalangan holda ishlatamiz. Ulardan 5 tasi quyidagilardir:

  • "SQL"ni tushunish oson.

  • An’anaviy ma’lumotlar turi yordamida ma’lumotlar bilan ishlash to‘g‘ridan to‘g‘ri amalga oshiriladi.

  • An’anaviy ma’lumotlar turi bizga ma’lumotlarni tekshirishni va ko‘paytirishni imkonini beradi.

  • SQL bir vaqtni o‘zida bir nechta jadvallarni tahlil qilish uchun juda foydali vosita hisoblanadi.

  • "Google Analytics" kabi asboblar panelidan tashqari SQL yanada murakkab masalalarni tahlil qilish imkonini beradi.

SQLda ma’lumotlar bilan ishlashni o‘rganish mobaynida birinchi bo‘lib yuqoridagi afzalliklarni o‘rganib chiqasiz.

Tushunib turibman, kod yozishni tezroq boshlashga sabringiz tobora kamayib bormoqda. Balkim, bu siz uchun qanday dasturlash tillarida bo‘lsa birinchi marta kod yozishingiz bo‘lishi mumkin. Qiyinchiliklar va mashaqqatlardan iborat oldingizda turgan yo‘lni bizning rahbarligimiz ostida va qo‘llab quvvatlashimiz yordamida


Biznes nega ma’lumotlar bazasini afzal ko‘radi


  1. ma’lumotlarning yaxlitligi ta'minlanadi - faqat kerakli ma’lumotlar kiritiladi va faqat ma’lum foydalanuvchilar ma’lumotlar bazasiga ma’lumotlarni kirita oladilar.



ma’lumotlarga tez-tez kirish mumkin - SQL sizga ma’lumotlar bazasida saqlangan ma’lumotlardan natijalarni juda tez olishga imkon beradi. Natijalarni tez olish uchun kod optimallashtiriladi.



  1. ma’lumotlar osongina almashiladi - bir nechta shaxslar ma’lumotlar bazasida saqlanadigan ma’lumotlarga kirishlari mumkin va ma’lumotlar barcha ma’lumotlar bazasiga kirish huquqiga ega bo'lgan har bir foydalanuvchi uchun bir xil natijalarga erishishga imkon beradi.

SQL ma’lumotlar bazasida saqlanadigan ma’lumotlar to‘g‘risida asosiy tushunchalar:

  1. Ma’lumotlar bazasidagi ma’lumotlar "Excel" elektron jadvallari kabi jadvallarda saqlanadi.
    Asosan, ma’lumotlar bazasini bir nechta "Excel" elektron jadvallari kabi ko‘rishingiz mumkin. Har bir jadval qator va ustunlarga ega. Har bir qator bitim, shaxs, tashkilotga oid ma’lumotlarni saqlasa, har bir ustun esa qatorlarga tegishli biron bir nom, joy, yagona "id" kabi ma’lumotlarni o‘z ichiga oladi.



  2. Bitta qatordagi barcha ma’lumotlar ma’lumot turi jihatidan bir xil bo‘lishi shart.
    Butun bir ustun miqdoriy, diskret yoki biron bir matn turi hisoblanadi. Buning ma’nosi shundaki, ma’lum bir ustundagi bitta qatorda ma’lumot matn bo‘lsa, ushbu ustundagi barcha qatordagi ma’lumotlar matn turidagi ma’lumotlar turiga o‘zgarib ketishi mumkin. Buning oqibati chalkash natijalarga olib keladi, masalan, shu ustundagi qatorlardagi ma’lumotlar bilan ishlagan holda arifmetik hisob amallarini qilmoqchi bo‘lsangiz!



  3. Ustunlarning ma’lumot turlaridagi izchilligi ma’lumotlar bazasi bilan ishlashni tezlashtiradigan asosiy omillardan biri hisoblanadi.
    Ko‘pincha, ma’lumotlar bazasi o‘z ichiga ko‘pgina ma’lumotlar sig‘diradi. Shuning uchun jadvallardagi ustunlar bir xil turdagi ma’lumotlardan iborat bo‘lishi ma’lumotlar bazasidan ma’lumotlar olishni tezlashtiradi.

Ma’lumotlar bazasining turlari

SQL ma’lumotlar bazasi


Har xil maqsadlar uchun ishlatiladigan ko‘pgina har xil turdagi SQL ma’lumotlar bazalari mavjud. Ushbu kursda "Postgres" ma’lumotlar bazasini ishlatamiz va u ommabop ochiq kodli ma’lumotlar bazasi hisoblanib, to‘liq tahliliy funksiyalari mavjud kutubxonaga ega.

Ommabop bir nechta ma’lumotlar bazasi quyidagilar:



  1. MySQL

  2. Access

  3. Oracle

  4. Microsoft SQL Server

  5. Postgres

"SQL"ni "Python", "Scala" va "HaDoop" kabi boshqa dasturiy til muhitlarida ham yozishingiz mumkin.

Kichik farqlar


Yuqoridagi SQL ma’lumotlar bazalari o‘rtasida kichik sintaksis va mavjud funksiyalar jihatidan farqlar mavjud bo‘lishi mumkin -- masalan, "MySQL" ma’lumotlar bazasi "Postgres" kabi ma’lumotlarni o‘zgartirishga doir funksiyalarga ega emas. "Postgres" ma’lumotlar bazasi bilan ishlash jarayoni "SQL"ni boshqa muhitdagi ma’lumotlar bazasi va freymvorklar bilan ishlatishga taalluqli bo‘ladi. Ishlatish jarayonidagi farqlar bo‘yicha hujjatlar bilan tanishib chiqing. Aksariyat SQL ma’lumotlar bazasiga oid hujjatlarni osongina "Google" qidiruv platformasi orqali topishingiz mumkin.

Ushbu maqola "SQL"ning 3 ta asosiy turlarini taqqoslaydi: SQLite, PostgreSQL, va MySQL.

Siz "PostgreSQl"dan ushbu kursdagi darslarda foydalanasiz, lekin uni kompyuteringizga yuklab olishingiz shart emas. Dars davomida SQLdan foydalanishingiz uchun platformamizda "ish joyi" bilan ta‘minlanasiz. "PostgreSQL"ni yuklab olishingiz uchun ushbu havolaga o‘ting.

Kod operatorlarini tushunish SQLda ishlashni asosi hisoblanadi. Ushbu operatorlardan bir nechtasi quyidagilarni o‘z ichiga oladi:


  1. "CREATE TABLE"(Jadval yaratish) operatori ma’lumotlar bazasida yangi jadval yaratadi.

  2. "DROP TABLE"(Jadvalni o‘chirish) operatori ma’lumotlar bazasidan jadvalni o‘chiradi.

  3. "SELECT"(Tanlash) operatori ma’lumotlar bazasidan ma’lumotlarni o‘qiydi va ko‘rsatadi. Ushbu ma’lumotlarni o‘qish va ko‘rsatish "query"(so‘rov) deb ataladi.

SELECT operatori tahlilchilar tomonidan ishlatiladigan oddiy operator hisoblanadi va siz ushbu operatorlar haqida kurs davomida o‘rganib borasiz!

Bu yerda har bir so‘rovlarda yoziladigan SQL buyrug‘i bilan tanishib chiqdingiz: SELECT ... FROM ....



  1. SELECT buyrug‘i qaysi ustun(lar)dan ma’lumotlarni olishingizni ko‘rsatadi.



  2. FROM esa qaysi jadval(lar)dan ustun tanlashingizni belgilaydi. Ushbu jadvalda ustunlar mavjud bo‘lishi kerakligiga e’tibor qarating.

Ma’lumotlarni jadvaldagi barcha ustunlardan ta’minlanishini istasangiz, "*" belgisini quyidagicha ishlatasiz:

  • SELECT * FROM orders

"SELECT" buyrug‘i ma’lumotlar bazasida ushbu ustunlar bilan yangi jadval yaratmasligini esda tuting. Ushbu buyruq faqatgina ma’lumotlarni natijalar sifatida chiqarishga ishlatiladi.

Ushbu kursda "SQL SELECT" kod operatorini har bir so‘rovlaringizda ishlatasiz lekin bundan tashqari bir nechta kod bloklarini va operatorlarni o‘rganasiz. Ular yordamida ma’lumotlaringiz to‘g‘risida yanada murakkabroq so‘rovlarni amalga oshirishingiz mumkin.


Birinchi SQL kodingiz


Boshlab olishingiz uchun, yuqoridagi SQL ish maydonida joylashgan o‘ng tomondagi panelga terishni boshlang va avvalgi videolavhada ko‘rgan so‘rovongizni ishlating. 1 raqami oldidan terishni boshlasangiz bo‘ladi.

SELECT *


FROM orders;

SQL kodni terganizdan so‘ng, ko‘k rangdagi "EVALUATE" tugmasini so‘rovni yuklash uchun bosishingiz mumkin. Bu jarayon bir oz vaqt oladi. "EVALUEATE" tugmasini bosishni o‘rniga control + Enter tugmasini birgalikda bosib so‘rovni yuklashingiz mumkin. Xatolikka duch kelsangiz, "EVALUATE" tugmasini yopib qo‘yishingiz mumkin shuning uchun so‘rovni yuklash uchun ikkinchi yo‘l ma’qul hisoblanadi!

Derek o‘qituvchingiz FROM demo.order kabi "namunaviy" jadvallardan foydalanyatganiga e’tibor berishingiz mumkin (u shunday qilishni keyingi darslarda ham davom ettiradi), lekin siz so‘rovlaringizni jadval nomlarini chapdagi sxemada ko‘rsatilgandek, FROM orders kabi "demo" so‘zi olib tashlangan holda yozishingiz kerak.

Barcha SQL so‘rovlarda "SELECT" va "FROM" operatorlari


Har bir so‘rov kamida SELECT va FROM kodlarini o‘z ichiga oladi. SELECT mavjud kodlarda ma’lumotlarni ko‘rsatish uchun ustunlarni joylashtirib chiqasiz. FROM mavjud kodlarda esa ma’lumotlarni olish uchun *jadvallarni joylashtirib chiqasiz.

Sizning navbatingiz


Try writing your own query to select only the idaccount_id, and occurred_at columns for all orders in the orders table.

So‘rov kodining natijasini tekshirish


So‘rovingizni amalga oshirganingizda xato to‘g‘risidagi xabarga duch kelsangiz, bu muammo emas! Dasturchilar doimiy ravishda xatoliklarga duch kelishadi! Xatolar bilmaganlaringzni o‘rganish uchun imkoniyatlar hisoblanadi. :)

Xatoning mazmuni nimadan iborat ekanligini ko‘ring, so‘rovingizni sintaksisini izohlaringiz yoki darsning videosi lavhasida yoki matnida berilgan ko‘rsatmalarga solishtirgan holda tekshiring va o‘zgartirishlar kiriting. So‘ngra qaytadan so‘rov yuboring. O‘z xatolaringizdan nimalar o‘rganganizni ko‘ring hamda ushbu xatoni yana takrorlamaslik uchun eslatma yozib qo‘ying.

"Muvaffqaqiyatli bajarildi!" degan xabarni ko‘rsangiz, demak hech qanday sintaksis xatolar qilmagansiz va so‘rovingizni a’lo darajda amalga oshirgansiz. Lekin bu siz kutgan natijani berdi degani emas! Olgan natijangizni tahlil qilish va siz kutgan natijani olganligingiz faqat sizga bog‘liq.

Keyingi sahifalarni har bir testdan keyin so‘rovlaringizni biz bergan yechim bilan solishtirgan holda ko‘rib chiqishingiz mumkin. Biz sizga shuni tavsiya qilamizki, har qanday yechimga qarashdan oldin so‘rovni mustaqil yozishga harakat qiling. :)


Sxema jadvallarini yuklab olish

(Ushbu darsning ba‘zi bir talqinlarida, "Parch & Posey" kompaniyasining ma’lumotlar bazasini sinfxonangizni chap qismida joylashgan "Resources" bo‘limidan kompyuteringizga yuklab olishingiz mumkin, lekin bu amallarni bajarishingiz umuman shart emas.)

QLda bosh va kichik harflarni ishlatish


SQL so‘rovlari bosh va kichik harflarni yozgan holda ham to‘g‘ri ishlashi mumkin. Boshqacha qilib aytganda, SQL so‘rovlari harflarning katta yoki kichikligiga ahamiyat bermaydi. Quyidagi so‘rov:

SELECT account_id


FROM orders

ushbu so‘rov bilan bir xil:



select account_id


from orders

hamda bu so‘rovdan ham farqi yoq:



SeLeCt AcCoUnt_id

FrOm oRdErS

Ammo, "SELECT" va "FROM" operatorlarini hamma harflarini bosh harf bilan yozganingizga va shu vaqtni o‘zida jadval va ustunlarning nomalarini kichik harflar bilan yozganligingizga e’tibor bergan bo‘lsangiz kerak. Bunga sabab, SQLda kod yozganda bosh yoki kichik harflar bilan yozishni ahamiyati yoq bo‘lsada, SQL buyruqlarini, "SELECT" va "FROM" kabi barcha buyruqlarni bosh harflar bilan yozish va buyruqlardan tashqari barchasini kichik harflar bilan yozish ommabop va keng tarqalgan tajribalardan biri hisoblanadi.

Buyruq so‘zlarni bosh harf bilan yozish so‘rovlarni o‘qilishini osonlashtiradi va bu o‘z navbatida yanada murakkabroq so‘rovlar yozganizda katta ahamiyat kasb etadi. Hozircha, SQL so‘rovlaringizni osonroq o‘qilishini ta’minlash yaxshi odat.

Boshqa bir eslatma: SQL jadvallarida saqlangan matn ko‘rinishidagi ma’lumot bosh harf yoki kichik harf bilan yozilishi mumkin va matnli ma’lumotlarni bunday yozilishi SQLda farqli bo‘ladi.

Jadvallarda va o‘zgaruvchi nomlarida bo‘sh joy qoldirib ketmang


Ustun nomlarida pastki chiziqni yozish va bo‘sh joylar qoldirmaslik ommabop tajriba. SQLda bo‘sh joylar bilan ishlash bir oz qiyin. "Postgres"da esa, agarda ustun yoki qator nomlarida bo‘sh joy mavjud bo‘lsa, bunday ustun/qator nomlarini qo‘shtirnoqqa olgan holda murojaat etishingizga to‘g‘ri keladi (Masalan: FROM "Table Name" FROM table_name bilan solishtirsak). Boshqa muhitlarda ularni to‘rtburchak qavsga olinganligini ko‘rishingiz mumkin(Masalan: FROM [Table Name]).

Use White Space in Queries


SQL so‘rovlari bo‘sh joylarni inobatga olmaydi, shuning uchun kodlaringiz orasiga xohlagan miqdorda bo‘sh joylar va qatorlar qo‘shib ketishingiz mumkin va so‘rovlar bir xilligicha qolaveradi. Ushbu so‘rov

SELECT account_id FROM
orders

quyidagi so‘rov bilan bir xil:



SELECT account_id

FROM orders

va mana bu so‘rov bilan ham (lekin, iltimos, bunday so‘rovlarni hech qachon yozmang):



SELECT account_id
FROM orders

Nuqtali vergullar


SQL muhitiga qarab, so‘rovingiz bajarilishi uchun uning oxirgi qismida nuqtali vergul kerak bo‘lishi mumkin. Boshqa muhitlarga keladigan bo‘lsak, ular nuqtali vergul masalasiga yengilroq talab qo‘yadi, ya’ni ba’zi bir joylarda uni ishlatishingiz mumkin yoki yo‘q. Lekin har bir kod bayonotini nuqtali vergul bilan tugatish yaxshi tajriba hisoblanadi va bu orqali bir vaqtning o‘zida birdan ko‘p so‘rovlar bajarishingiz mumkin agarda ishlayotgan muhitingiz bunga ijozat bersa.

Eng ilg‘or tajribalar:



SELECT account_id

FROM orders;

Biz ishlayotgan muhitda nuqtali vergul qo‘yish talab etilmaydi:



SELECT account_id

FROM orders

Anchagina qoidalar bilan tanishib chiqdik! Endi esa keling bir nechta so‘rovlar yozamiz. Xatolar qilasiz, lekin bu o‘rganishning bir qismiga kiradi, shunga xavotirga o‘rin yo‘q!


ORDER BY kod bayonoti har qanday ustundagi ma’lumotlarni saralashga imkon beradi. "Excel" yoki "Google Sheets" elektron jadvallari bilan tajribangiz bo‘lsa, u holda ORDER BY funksiyasini ishlatib ustundagi ma’lumotlarni saralashga o‘xshash bo‘ladi. Asosiy farq shundan iborat bo‘ladiki, ORDER BY funksiyasini SQL so‘rovlarida ishlatish "Excel" yoki "Sheets" dasturlarida saralashga solishtirganda ushbu so‘rovning natijalari uchun vaqtinchalik ta’sirga ega bo‘ladi.

Boshqacha qilib aytganda, SQL so‘rovida "ORDER BY" funksiyasini ishlatganizda natijangiz vaqtinchalik saralanadi va keyingi so‘rovingiz yana saralanmagan ma’lumotlarga duch keladi. Keng tarqalgan jadvallar bilan ishlaydigan dasturlardan farqli bo‘lishini esimizda tutishimiz kerak, chunki "ORDER BY" funksiyasida ustun bo‘yicha elektron jadvallarni saralaganda, ushbu ustundagi ma’lumotlarni o‘zgartiradi toki siz bu o‘zgarishlarni orqaga qaytarmaganizga qadar yoki saralashni o‘zgartirmaganizga qadar. Bu SQL so‘rovning ma‘nosi va funksiyasini ajratib ko‘rsatadi.



ORDER BY kod bayonoti so‘rovlarda har doim SELECT va FROM kod bayonotlaridan keyin keladi. Agarda LIMIT buyrug‘ini ishlatayotgan bo‘lsangiz, ORDER BY funksiyasi undan oldin keladi. Ko‘proq buyruqlarni o‘rganishingiz bilan, kod bayonotlarini tartibi ahamiyat kasb etib boradi.

Ekspert tavsiyasi


Yodingizda tuting, ORDER BY kod bayonotingizda DESC funksiyasi ustunni pasayish tartibida saralashga olib keladi, oddiy holatda ORDER BY o‘sish tartibida saralaydi

WHERE bayonotidan foydalanib, bajarilishi shart bo‘lgan jadval asosida jadvallarning kichik guruhini ko‘rsatishimiz mumkin. Shuningdek,WHERE buyrug‘ini ma’lumotlarni filtrlash sifatida ham ko‘rishingiz mumkin.

Yuqoridagi videolavhada ushbu jarayon qanday bajarilishini ko‘rishingiz mumkin va kelgusi ma’ruzamizda WHERE kod bayonoti bilan ishlashda foydali bo‘lgan ba’zi operatorlar haqida o‘rganasiz.



WHERE bayonotlarida ishlatiladigan umumiy belgilar quyidagilardan iborat:

  1. > (...dan katta)



  2. < (...dan kichik)



  3. >= (...dan katta yoki teng)



  4. <= (...dan kichik yoki teng)



  5. = (...ga teng)



  6. != (...ga teng emas)

WHERE iborasi sonli bo‘lmagan ma‘lumotlarda ham ishlatilishi mumkin. Bu yerda biz = va != operatorlaridan foydalanishimiz mumkin. Matnli ma’lumotlar bilan ishlayotganingizda bitta belgili qo‘shtirnoqdan foydalanishingiz kerak, qo‘shtirnoqni o‘zidan emas(asl matnda qo‘shtirnoq bo‘lsa, ehtiyot bo‘ling).

Odatda, WHERE operatorini sonli bo‘lmagan ma‘lumotlar maydonlari bilan ishlatayotganimizda, LIKENOT yoki IN operatorlaridan foydalanamiz. Bu operatorlar bilan dars oxirigacha tanishib chiqasiz!



1."Exxon Mobil" kompaniyasi uchun accounts jadvalida "name", "website" va asosiy aloqalarni ("primary_poc")ni qo‘shish uchun hisoblar jadvalini filtrlang.

SELECT name
, website, primary_poc

FROM accounts

WHERE name = 'Exxon Mobil';

Yig‘ilgan ustunlar


Mavjud ustunlarni birlashtirish orqali yangi ustun yaratish yig‘ilgan ustun (yoki "hisoblangan" ustun) deb nomlanadi. Odatda siz AS kalit so‘zidan foydalanib yangi ustuningizga nom yoki "taxallus" berishni istaysiz.

Ushbu yig‘ilgan ustun va uning taxalluslari vaqtincha bo‘lib, faqat so‘rovingiz davomida mavjud bo‘ladi. Yana so‘rov yuborib jadvalga kirsangiz, ushbu vaqtinchalik yangi ustun mavjud bo‘lmaydi.

Mavjud ustunlardan yangi ustunni matematik ifoda yordamida olsangiz, bu matematik operatorlar foydali bo‘ladi:


  1. * (Ko‘paytirish)

  2. + (Qo‘shish)

  3. - (Ayrish)

  4. / (Bo‘lish)

Ushbu misolni ko‘rib chiqing:

SELECT id, (standard_amt_usd/total_amt_usd)*100 AS std_percent, total_amt_usd

FROM orders

LIMIT 10;

Bu yerda biz buyurtma uchun standart qog‘oz foizini topish uchun standart qog‘oz dollar miqdorini buyurtmaning umumiy miqdoriga ajratamiz va ushbu yangi ustunni "std_percent" deb nomlash uchun AS kalit so‘zini ishlatamiz. Xohshingizga qarab, natijani ko‘rish uchun ushbu so‘rov natijasini keyingi sahifada ishga tushirishingiz mumkin.


Amaliyotlar tartibi


Amaliyotlar tartibini eslab qolishga yordam berish uchun matematikadan "PEMDAS"ni eslaysizmi? Eslay olmasangiz, ushbu havolani ko‘rib chiqing. SQLda arifmetik operatorlarni ishlatishda xuddi shunday amaliyotlar tartibi qo‘llaniladi.

Quyidagi 2 ta bayonotlar har xil natijalarga ega:



  1. Standard_qty / standard_qty + gloss_qty + poster_qty

  2. standard_qty / (standard_qty + gloss_qty + poster_qty)



  1. Har bir buyurtma uchun standart qog‘ozning narxini topish uchun "standart_amt_usd"ni "standart_qty"ga ajratadigan ustun yarating. Natijalarni dastlabki 10 ta buyurtma bilan cheklang hamda "id" va "account_id" maydonlarini kiriting.

SELECT id, account_id, standard_amt_usd/standard_qty AS unit_price

FROM orders

LIMIT 10;



  1. Har bir buyurtma uchun poster qog‘ozidan keladigan daromadning foizini topadigan so‘rov yozing. Faqat "_usd" bilan tugaydigan ustunlardan foydalanishingiz kerak. (Buni "total" ustunidan foydalanmasdan bajarishga harakat qiling.) "Id" va "account_id" maydonlarini ham ko‘rsating. Eslatma - ushbu savolga to‘g‘ri yechim topsangiz xatoga duch kelasiz. Buning sababi shundaki, ma’lumotlarning kamida bittasi formulada nolga bo‘linadi. Ushbu muammoni hal qilish yo‘lini keyinchalik kurs davomida bilib olasiz. Hozircha, birinchi savolda bo‘lgani kabi, dastlabki hisob-kitoblarni faqat 10 ta buyurtma bilan cheklab qo‘yishingiz va bu bilan muammoni keltirib chiqaradigan ma’lumotlardan saqlanasiz.



SELECT id, account_id,

poster_amt_usd/(standard_amt_usd + gloss_amt_usd + poster_amt_usd) AS post_per

FROM orders

LIMIT 10;
E'tibor bering, yuqoridagi operatorlar ma’lumotni bitta qator uchun ustunlar bo‘ylab birlashtiradi. Agar siz ma‘lum bir ustunning qiymatlarini bir necha qatorlar bo‘ylab birlashtirishni istasangiz, biz buni maxsus funksiyalar (aggregation)lar bilan qilamiz. Kurs yakuniga qadar bu masalani ko‘rib chiqamiz!

Keyingi mavzularda siz Mantiqiy operatorlar haqida o‘rganasiz. Ular quyidagilardan iborat:



  1. LIKE
    Bu sizga WHERE va = kabi amallarni bajarishga imkon beradi, biroq bunda siz nima qidirishni aniq bilmasligingiz ham mumkin.



  2. IN
    Bu sizga WHERE va = kabi amallarni bajarishga imkon beradi, biroq bittadan ko‘p bo‘lgan shartlar bilan.



  3. NOT
    Bu IN va LIKE bilan ishlatiladi, barcha o‘xshash bo‘lmagan NOT LIKE yoki tarkibida bo‘lmagan NOT IN shartlari bilan.



  4. AND & BETWEEN
    Bu sizga barchasi to‘g‘ri bo‘lgan amallarni birlashtirishga imkon beradi.



  5. OR
    Bu sizga kamida biri to‘g‘ri bo‘lgan amallarni birlashtirishga imkon beradi.

LIKE operatori matn bilan ishlashda juda foydali hisoblanadi. WHERE kod bayonoti ichida LIKE dan foydalanasiz. LIKE operatori ko‘pincha "%" bilan ishlatiladi. Yuqoridagi google sintaksisida ko‘rganimizdek, "%" ma’lum bir belgilar to‘plamiga olib keladi yoki muayyan bir belgilar to‘plamidan keyin keladi. LIKE operatoriga yuborgan matningiz uchun bitta belgili qo‘shtirnoq ishlatishingiz kerakligini unutmang, chunki kichik va katta harflar matn ichida bir xil bo‘lmaydi. 'T' harfini qidirish 't' harfini qidirish bilan bir xil emas. Boshqa SQL muhitida (sinfxonadan tashqari) bir yoki ikki belgidan iborat qo‘shtirnoqdan foydalanishingiz mumkin.

Umid qilamanki, SQL bilan ishlash siz uchun osonlashib bormoqda, chunki biz ko‘proq dasturlarlashda amaliy ahamiyat kasb etgan amallarni bajarishga o‘tmoqdamiz, ammo bu bilan har qanday amaliy qo‘llab bo‘ladigan holatlarini ko‘rsatib bera olmasligimizni anglatadi. Umid qilamanki, siz ushbu turdagi amaliy ahamiyatga ega dasturlashdan muayyan hududdagi telefon raqamini yoki to‘liq ismni eslay olmagan holda aniqlash uchun foydalanishingiz mumkin


accounts jadvalidan foydalangan holda quyidagilarni toping

  1. Nomlari "C" harfi bilan boshlanadigan barcha kompaniyalar.

SELECT name

FROM accounts

WHERE name LIKE 'C%';

2.Nomida "one" so‘zini o‘z ichiga olgan barcha kompaniyalar.


SELECT name

FROM accounts

WHERE name LIKE '%one%';
3.Nomi "s" harfi bilan tugaydigan barcha kompaniyalar.

SELECT name

FROM accounts

WHERE name LIKE '%s';

37-dars


IN operatori raqamli va hamda matnli ustunlar bilan ishlashda qo‘llaniladi. Ushbu operator = belgisidan foydalanishga imkon beradi, lekin ma’lum bir ustunning bir nechta elementlari uchungina. Ma‘lumotlar olish uchun bitta, ikkita yoki ko‘pgina ustun qiymatlarini tekshirishimiz mumkin, ammo barchasi bir xil so‘rov doirasida bajariladi. Kelgusi tushuntirishlarimizda yuqorida ta’kidlab o‘tilgan vazifalarni bajarishni OR operatori bilan ham uddalasangiz bo‘ladi, lekin IN operatori bunday so‘rovlarni yozishning yanada qulayroq usuli hisoblanadi.

Ekspert maslahati


Ko‘pgina SQL muhitlarida, "Udacity"ning sinfidan tashqarida, siz bitta yoki ikki belgili qo‘shtirnoqdan foydalanishingiz mumkin va matn ichida apostrof ishlatgan taqdiringizda qo‘shtirnoqdan foydalanishingizga to‘g‘ri keladi.

"Udacity"ning SQL ish maydonlarida apostrofni quyidagi ko‘rinishda ishlatishingiz mumkin. Masalan, 'Macy's' bizning ish maydonimizda ushbu ko‘rinishda bo‘ladi 'Macy''s'.



38-dars

"IN" operatorini ishlatishga doir savollar


  1. "Walmart", "Target" va "Nordstrom" uchun hisobning nameprimary_poc va sales_rep_id hossalarini topish uchun accounts jadvalidan foydalaning.



SELECT name
, primary_poc, sales_rep_id

FROM accounts

WHERE name IN ('Walmart', 'Target', 'Nordstrom');


  1. "Organic" yoki "adwords" kanali orqali murojaat qilgan shaxslar to‘g‘risidagi barcha ma‘lumotlarni topish uchun web_events jadvalidan foydalaning.

SELECT *

FROM web_events

WHERE channel IN ('organic', 'adwords');


Download 192.66 Kb.

Do'stlaringiz bilan baham:
1   2




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