Өгөгдлийг эрэмбэлэх

SQL-операторт эрэмбэлэх дарааллыг зааж өгөөгүй бол өгөгдлийг хүснэгтэд байгаа байрлалын дагуу татан ирнэ. Энэ нь бичлэгүүд хүснэгтэд нэмэгдсэн дараалал байж болно. Гэхдээ бичлэгүүд дараа нь өөрчлөгдөх, утсгах зэрэг ажиллагаанд хамрагдсан бол дараалал нь ӨСУС үлдсэн зайг хэрхэн ашигласнаас шалтгаалах болно.
SELECT оператораар татан авч байгаа өгөгдлүүдийн дарааллыг тогтоохдоо ORDER BY гэсэн түлхүүр үгийг ашиглана.

SELECT prod_name FROM Products ORDER BY prod_name;

Командын үр дүн

Энэ бичлэг нь Өгөгдлийг татан авах хичээлд гарсан жишээтэй ижил боловч ORDER BY нь ӨСУС-д татан авсан өгөгдлүүдийг prod_name баганаар цагаан толгойн үсгийн дараалалаар эрэмбэлэхийг зааж өгнө. Тоонууд нь үсгүүдээс кодын хувьд өмнө байрладаг тул энд тоонуудаар эхэлсэн нэрүүд өмнө нь гарч ирсэн болно.

Хэд хэдэн баганаар эрэмбэлэх

Өгөгдлийг хэд хэдэн баганаар эрэмбэлэх шаардлага их тохиолддог. Жишээлбэл ажилчдын нэрсийг овог нэрээр нь, бүтээгдхүүнийг нэр, үйлдвэрлэсэн хугацаагаар эрэмбэлэх гэх мэтээр. Өгөгдлийг хэд хэдэн баганаар эрэмбэлэхийн тулд ORDER BY –д эрэмбэлэгдэх багануудын нэрийг таслалаар тусгаарлан бичиж өгдөг.

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price, prod_name;

Командын үр дүн

Энэ жишээ нь Products хүснэгтээс 3 баганыг татан эхлээд үнээр нь дараа нь нэрээр нь эрэмбэлэж байна. Олон баганаар эрэмбэлэхдээ ORDER BY -д заагдсан дарааллын дагуу эрэмбэлэгдэнэ. Өөрөөр хэлбэл дээрх жишээгээр prod_price талбарт ижил утгатай хэд хэдэн мөр байсан тохиолдолд үр дүн prod_name талбараар эрэмбэлэгдэнэ.

Баганы байрлалаар эрэмбэлэх

Эрэмбэлэх дарааллыг багануудын нэрээр өгөхөөс гадна баганы харьцангуй байрлалаар (энгийнээр баганы дугаараар) өгч болно. Жишээлбэл

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY 2, 3; 

Командын үр дүн

Операторын бичлэг нь ORDER BY д зөрж байгаа хэдий ч үр дүн өмнөхтэйгээ ижил байна. Энд эрэмбэлэх дарааллыг баганы нэрээр биш SELECT операторт байрлаж байгаа дарааллаар ORDER BY 2 гэдэг нь SELECT операторын баганы жагсаалтын 2 -р багана буюу prod_price –г зааж байгаа юм. Эндээс ORDER BY 2,3 нь ORDER BY prod_price, prod_name гэсэнтэй ижил болно. SELECT операторт нэрийг нь заагаагүй баганаар эрэмбэлэхэд энэ аргыг ашиглаж болохгүй.

Эрэмбэлэх дарааллыг тогтоох

Өгөгдлийг эрэмбэлэх анхдагч нөхцөл нь (А гаас Я) буюу өсөх дараалал байдаг хэдий ч  ORDER BY –д (Я гаас А) буурах дарааллыг өгч болдог. Үүнийг DESC гэсэн түлхүүр үгийн тусламжтайгаар хийнэ. Доорх жишээн дээр бүтээгдхүүний үнүүд буурах дарааллаар эрэмбэлэгдэж байна. Өөрөөр хэлбэл хамгийн эхэнд хамгийн их үнэтэйгээс эхэлнэ гэсэн үг.

SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC, prod_name;

Командын үр дүн

Дээрх жишээнээс харвал DESC -г зөвхөн prod_price баганад тавьж өгсөн болохоор бүтээгдхүүний үнэ буурах дарааллаар харин prod_name багана нь ердийн өсөх дарааллаар эрэмбэлэгдсэн байгаа нь харагдаж байна. Эндээс хэрвээ та хэд хэдэн баганаар буурах дарааллаар эрэмбэлэхийг хүсвэл буурах эрэмбэтэй багана бүрийн ард DESC түлхүүр үгийг тавьж өгөх шаардлагатай.
DESC гэсэн үг нь DESCENDING гэсэн үгний товчлол бөгөөд энэ хоёр үгний алиныг ч ашиглаж болно. Харин анхдагч утга болох ASC нь ASCENDING гэсэн үгний товчлол юм.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 2561 Төлбөртэй

Багцын боловсруулалт нь SQL үйлдлүүдийн багц нэг бол бүгд биелэгдэнэ эс бол бүгд биелэгдэхгүй гэсэн зарчмаар өгөгдлийн сангийн бүрэн бүтэн байдлыг хангаж өгдөг.

Шинэ захиалга нэмэх үйлдэл нь дараах алхамуудаас бүрдэнэ.

  • Өгөдлийн санд харилцагчийн тухай мэдээлэл байгаа эсэхийг шалгана. Хэрвээ мэдээлэл байхгүй бол нэмнэ
  • Харилцагчийн дугаарыг авна
  • Orders хүснэгтэд харилцагчийн хүснэгттэй холбоо бүхий харилцагчийн дугаар бүхий шинэ мөр нэмнэ
  • Orders  хүснэгтэд нэмэгдсэн шинэ мөрөөс захиалгын дугаарыг авна
  • Захиалгад орсон бараа бүрээр OrderItems хүснэгтэд захиалгын дугаараар Orders  хүснэгттэй, бүтээгдхүүний дугаараар Products хүснэгттэй холбогдсон шинэ мөрийг нэмнэ

  Нээгдсэн тоо: 1609 Төлбөртэй

Хааяа өгөгдлүүдийг жагсаалтаар татахгүйгээр дүгнэх шаардлага гардаг. Энэ зорилгоор SQL-д тусгай функцууд байдаг. Эдгээр функцуудыг ашигласан SQL шаардлагуудыг тайлан мэдээ, судалгаанд өргөн ашигладаг. Жишээ нь

  • Хүснэгтийн нийт эсвэл ямар нэгэн нөхцлийг хангах мөрийн тоог олох
  • Хүснэгтийн баганы дүнг олох
  • Тодорхой баганаас хамгийн их, хамгийн бага эсвэл дундаж утыг хайх г.м

  Нээгдсэн тоо: 1884 Төлбөртэй

Үзүүлбэр /view/ - энэ бол виртуал хүснэгт. Хүснэгт өгөгдөл хадгалж байхад үзүүлбэр шаардлагууд хадгалж өгөгдлүүдийг хэрэгцээтэй үед татаж байдагт эдгээрийн гол ялгаа оршино. Үзүүлбэр /view/-г илүү ойлгохын тулд тодорхой жишээ авч үзье. Хүснэгтүүдийн нэгтгэл хичээлд үзсэн жишээг харъя. Энд бид 3 хүснэгтээс SELECT оператораар өгөгдөл татсан.
Жич: Үзүүлбэр гэдэг орчуулга нь нэг их оновчтой болоогүй байж болох талтай. Иймд орчуулгын оронд view гэдэг хэллэгээр нь шууд сурах нь дөхөмтэй байж болно.

  Нээгдсэн тоо: 1977 Бүртгүүлэх

Өгөгдлийн сангийн хүснэгтүүд нь асар их мэдээллийг агуулж байдаг тул хүснэгтийн бүх мөрийг татах шаардлага бага гардаг. Ихэвчлэн хүснэгтийн мэдээллийн нэг хэсгийг ямар нэгэн үйлдэлд зориулан татан авах нь элбэг тохиолдоно. Ийм тохиолдолд өгөгдлийг татан авахдаа хайлтын нөхцлийг хэрэглэнэ. Үүний тулд SELECT операторыг WHERE гэсэн түлхүүр үгтэй цуг ашиглана. Жишээ нь

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 264

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 344

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 312

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 411

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 456

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 485

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 570

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 650

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 687

 
Энэ долоо хоногт

тэгшитгэлийн хувьд утгыг ол

Нээгдсэн тоо : 2764

 

тэгшитгэлийн хамгийн их сөрөг язгуурыг ол.

Нээгдсэн тоо : 1087

 

тэнцэтгэл b -ийн ямар утганд биелэх вэ?

Нээгдсэн тоо : 716