Psevdonimlar

All lectures for UZ purposes
Daraja, Dars
Mavjud

Ustunlar nomlarini o'zgartirish

Shuningdek, ustunlar nomlarini tushunib olishimiz kerak. Bizda name va id nomlari takrorlanmoqda, lekin ular har xil ma'lumotni o'z ichiga oladi. Boshqa tomondan, birinchi ustun id va employ_id ustuni bor, ular bir xil ma'lumotni o'z ichiga oladi.

Keling, kerakli ustunlarni kiritib, bir xil nomli ustunlarni qayta nomlaydigan so'rovlar yozamiz:

SELECT task.id AS task_id, task.name AS task_desc, task.deadline AS deadline, employee.id AS employee_id, employee.name AS emp_name, employee.occupation AS emp_occupation FROM employee, task WHERE employee.id = task.employee_id 

Bu so'rovning natijasi quyidagicha bo'ladi:

task_id task_desc deadline employee_id emp_name emp_occupation
1 Frontenddagi xatoni tuzatish 2022-06-01 1 Ivanov Ivan Dasturchi
2 Backenddagi xatoni tuzatish 2022-06-15 2 Petrov Petr Dasturchi
7 Hayotdan bahra olish (NULL) 4 Rabinovich Moysha Direktor
3 Coffee sotib olish 2022-07-01 5 Kirianko Anastasiya Ofis-menejer
4 Coffee sotib olish 2022-08-01 5 Kirianko Anastasiya Ofis-menejer
5 Coffee sotib olish 2022-09-01 5 Kirianko Anastasiya Ofis-menejer
8 Hayotdan bahra olish (NULL) 6 Vaska mushuk

Ajoyib, tushunarsiz ustun nomlari bilan bog'liq muammo muvaffaqiyatli hal qilindi. So'rov biroz cho'zilib ketdi, lekin natijaviy jadvalda hammasi aniq. Qo'shimcha ustunlar yo'q.

Jadval aliaslari

Bazida jadval nomlari juda uzun bo'lib, so'rovda ko'p joy egallaydi. Shuning uchun SQL yaratuvchilari, xuddi ustunlarda bo'lgani kabi, jadval aliaslarini ko'rsatish imkoniyatini taklif qilishgan.

Aliaslarning umumiy ko'rinishi (jadvalning psevdonimlari) quyidagicha:

FROM jadval1 psevdonim1, jadval2 psevdonim2 

Keling, oldingi so'rovimizni qisqa psevdonimlardan foydalanib qayta yozamiz:

SELECT t.id AS task_id, t.name AS task_desc, t.deadline AS deadline, e.id AS employee_id, e.name AS emp_name, e.occupation AS emp_occupation  FROM employee e, task t  WHERE e.id = t.employee_id 

O'qishga qulaylik biroz pasaydi, ammo bu aslida jadval nomlari oddiy va tushunarli bo'lganligi sababli. Shunday bo'lishi ham mumkin:

SELECT task.id AS task_id, task.name AS task_desc, task.deadline AS deadline, employee.id AS employee_id, employee.name AS emp_name, employee.occupation AS emp_occupation  FROM  Microsoft_it_department_employee employee, Year2022_priority_task task WHERE employee.id = task.employee_id 

Bu holda aliaslar haqiqatan ham foydali, to'g'rimi? ;)

Birlamchi kalit

Yana jadval haqida muhim ma'lumot. Task jadvalida employee_id ustuni borligini eslaysizmi? Bu orqali employee jadvalidagi xodim ID sini ko'rsatdik.

Agar biz bir jadvaldan boshqa bir jadvalning satrlariga murojaatni amalga oshirmoqchi bo'lsak, murojaat qilingan jadvalda ID ustuni bo'lishi kerak, buni birlamchi kalit deb atashadi — PRIMARY KEY.

Ko'pincha bu maxsus qo'shilgan ustun bo'lib, uning qiymati turi — int. Jadvalga yozuvlar qo'shilganda SQL avtomatik ravishda ushbu ustun qiymatini belgilaydi.

Bu kalitlar bo'yicha ko'p narsa hal qilinadi:

  • turli jadvallarni bir-biriga bog'lash;
  • id bo'yicha tez qidirish va filtratsiya;
  • ma'lumotlar bazasidagi ma'lumotlarning yaxlitligi (mavjud bo'lmagan id ga havolalar yo'q);
  • hech kim murojaat qilmaydigan ma'lumotlarni o'chirish;
  • va ko'plab boshqa narsalar.

Aytib o'tgancha, ba'zan jadvalda deb atalmish tabiiy kalit mavjud bo'ladi. Bu qandaydir ustun bo'lib, u o'z ichida noyoblikni nazarda tutadi. Misol uchun, biz xodimlar jadvaliga quyidagilarni qo'shishga qaror qildik:

  • Ularning kompaniyaga kelish tartibi;
  • Soliq raqami;
  • Pasport raqami va seriyasi.

Ba'zida ma'lumotlar bazasini loyihalashtiruvchilar tabiiy kalitdan birlamchi kalit sifatida foydalanishadi, lekin ko'pincha ularni alohida ishlatishadi. Axir yozuvlarni o'chirish, o'zgartirish mumkin va shunga o'xshash ishlarda.

Internetda tashrif buyuriluvchi saytlaringizda sizning to'liq ismingizdagi qarzlarni boshqa bir kishiga osgan holatlarini o'qigan bo'lsangiz kerak? Bu xuddi noyob kalit tushunchasiga bog'liq. Banklarga va boshqa tashkilotlarga FIO va tug'ilgan yil bo'yicha odamni topish juda qulay bo'ladi. Va bu 99% hollarda odamni aniqlash uchun etarli.

Lekin qolgan <1% — bir xil ism va bir xil tug'ilgan yil bilan bo'lgan to'liq ismlar. Har birimizning hayotimizda bundaylar bo'lmasligi mumkin, lekin davlat miqyosida bundaylar mavjud. Agar siz software yozayotgan yoki DB loyihalashtirayotgan bo'lsangiz, shuni bilish foydali bo'lishi mumkin.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION