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

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 гэсэн үгний товчлол юм.

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

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

Энэ хичээлээр бид SQL хэлний нилээд чухал болоод хүндхэн ойлголтууд болох хязгаарлалт, индекс, триггер гэсэн өгөгдлийг удирдах өргөтгөсөн боломжуудын талаар авч үзнэ.

Хязгаарлалт гэж юу вэ?

Холбоост өгөгдлийн сан нь өгөгдлүүдийг олон хүснэгтүүдэд хадгалж байдаг бөгөөд хүснэгт бүр нь өөр хүснэгтүүдийн өгөгдлүүдтэй холбогдолтой мэдээллийг хадгалж байдаг. Нэг хүснэгтийг нөгөө хүснэгттэй холбохдоо түлхүүрийг ашигладаг. Эндээс хобоосын түвшингийн бүрэн байдал гэсэн ойлголт гарч ирнэ. Холбоост өгөгдлийн санг зохих ёсоор ажиллуулахын тулд түүний хүснэгтүүдийн мэдээллүүд зөв орсон байх шаардлагатай. Жишээ нь Orders хүснэгтэд захиалгын мэдээлэл харин OrderItems хүснэгтэд захиалгын нарийвчилсан мэдээллийг хадгалахын тулд та OrderItems хүснэгтэд байх захиалгын дугаар нь Orders хүснэгтэд яг байгаа гэдэгт итгэлттэй байх ёстой. Мөн түүнчлэн Orders хүснэгтэд байх харилцагчийн дугаар нь Customers хүснэгтэд орхигдсон байх ёсгүй.

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

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

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

SELECT оператор нь SQL-д хамгийн их хэрэглэгддэг команд. Гэхдээ үүний зэрэгцээ SQL-д их хэрэглэдэг 3 оператор байдаг бөгөөд эдгээрийг бид ашиглаж сурсан байх ёстой. Эдгээрийн нэг нь INSERT гэх ба нэрнээсээ л оператор нь өгөгдлийн сангийн хүснэгтэд бичлэг нэмэж оруулахад ашиглагдах нь ойлгомжтой. Бичлэг нэмэх хэдэн аргууд байдаг.

  • Нэг бүтэн мөр нэмэх
  • Нэг мөрийн хэсгийг нэмэх
  • Шаардлагын үр дүнг нэмэх

Санамж:  Клиент-сервер бүтэцтэй сиситемд INSERT ашиглахын тулд ӨСУС-д хандах онцгой эрхтэй байхыг шаардаж магадгүй. Ийм эрх танд байгаа эсэхийг шалгаарай.

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

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

Хуваах нь нэг тоо нөгөө тоонд хэдэн удаа агуулагдаж буй тодорхойлох арифметикийн үйлдэл.
Хуваалтыг нэг бус удаа…

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

 

Зуучлагч (Mediator) нь олон тооны обьектууд бие биетэйгээ холбоос үүсгэхгүйгээр харилцан ажиллах боломжийг хангах загварчлалын хэв юм. Ингэснээр…

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

 

Делегатууд хичээлд ухагдхууны талаар дэлгэрэнгүй үзсэн ч жишээнүүд делегатийн хүчийг бүрэн харуулж чадахааргүй байсан.…

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

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

илэрхийллийг хялбарчил.

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

 

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

 

prob09_163_01Зурагт өгсөн ABC гурвалжны AN=9, BM=12 байх медианууд перпендикуляр ба O цэгт огтлолцох бол ONCM дөрвөн өнцөгтийн талбайг ол.

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