SQL хэлний хичээлүүд ( 23 )

Та ямарч программ зохиож байлаа гэсэн өгөгдлийн санг ашиглах нь бараг тодорхой зүйл. Хэрэглэгч бүртгэх, мэдээлэл хадгалах, хайлт хийх гээд эдгээр бүх үйлдлүүдийг энгийн хялбараар хийх хамгийн сайн энгийн арга бол өгөгдлийн санг ашиглах юм. Файлын системээр энэ бүгдийг шийдвэрлэнэ гэвэл маш их хөдөлмөр шаардах болно. Өнөөдрийн байдлаар өгөгдлийн баазыг удирдах хамгийн өргөн дэлгэрсэн хэл болох SQL юм. Энэ хэлийг эзэмшихгүйгээр программ бичнэ гэдэг хүнд. Өгөгдлийн сангийн программ зохиогчид гэсэн тусгай ажил, мэрэгжил хүртэл бий.

Хичээлийн материалуудыг үзэхэд таниас тусгай бэлтгэл, их хугацаа шаардахгүй бөгөөд жишээнүүд MicroSoft Access, MicroSoft  SQL Server, MySql, Oracle, PostgreSQL, IMB DB2 гэх мэт өргөн дэлгэрсэн өгөгдлийн санг удирдах системүүдэд /ӨСУС/ ажиллана.

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

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

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

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

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

SQL-ийн өгөгдөл татах үйлдэл нь үр дүнгийн олонлог гэж нэрлэгдэх мөрийн цуглуулгатай ажилладаг. Өгөгдөл татах операторын нөхцлөөс хамааран үр дүнгийн олонлог нь хоосон эсвэл түүнээс их мөрүүд байна. Энгийн SELECT операторыг ашиглан эхний эсвэл сүүлийн, эсвэл дараагийн 10 мөрийг татан авах боломжгүй байдаг. Зарим үед мөрүүдийг шууд эсвэл тонгоруулсан дарааллаар нэг эсвэл хэд хэдэн удаа харах шаардлага гардаг. Энэ зорилгод курсорыг ашигладаг.

Курсор гэдэг нь серверт хадгалагдсан өгөгдлийн санд хандах шаардлага юм. Курсор нь SELECT операторын ажиллагаагаар бий болсон үр дүнгийн олонлог болохоос SELECT оператор биш.

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

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

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

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

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

Бидний энд хүртэл үзсэн SQL үйлдлүүд нь нэг оператораар нэг буюу хэсэг хүснэгтэд хандаж байснаараа энгийн байсан. Гэхдээ SQL үйлдлүүд нь бүгд тийм ч хялбархан биш. Нарийн үйлдлүүдийг гүйцэтгэхэд хэд хэдэн операторыг ашиглах явдал гардаг. Дараах тохиолдолыг авч үзье.

  • Захиалгыг боловсруулах явцад тухайн бүтээгдхүүн агуулахад байгаа эсэхийг шалгах
  • Хэрвээ бүтээгдхүүн агуулахад байгаа бол тухайн бүтээгдхүүнийг захиалсан тухай тэмдэглэл хийж агуулахад байгаа барааны үлдэгдлийг өөрчлөх
  • Бүтээгдхүүн агуулахад байхгүй бол захиалгыг аваад нийлүүлэгчтэй холбогдох
  • Харилцагчид захиалгын талаар мэдээллэх

гэх мэтээр маш олон янзын тохиолдол байж болно.

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

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

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

SQL хэл нь өгөгдлийн сангийн мэдээллүүдийг удирдаад зогсохгүй өгөгдлийн сан болон хүснэгтүүдтэй хамааралтай үйлдлүүдийг гүйцэтгэх боломжтой байдаг. Хүснэгтийг үүсгэх хоёр янзын арга байдаг.

  1. Ихэнх ӨСУС нь өгөгдлийн санд хүснэгт үүсгэх, тэдгээрийг удирдах интерактив администраторын хэрэгсэлтэй байдаг.
  2. Хүснэгтүүдийг SQL хэлний операторуудын тусламжтайгаар удирдаж болно

Хүснэгтийг програмын аргаар үүсгэхдээ SQL хэлний CREATE TABLE операторыг ашиглана. Та интерактив хэрэгсэл ашиглан хүснэгтийг удирдах бүх ажиллагаа нь танд мэдэгдэхгүй боловч үнэндээ SQL хэлний операторуудыг ашиглан хийгддэг гэдгийг хэлэх нь зүйтэй.
Хүснэгтийг үүсгэх операторын бүхий л боломжийг үзэх нь манай хичээлийн зорилго биш. Бид зөвхөн үндсэн ойлголтыг үзэх болно. Таны ӨСУС-ийн онцлогоос хамаарсан нэмэлт боломжуудын тухай мэдэхийг хүсвэл ӨСУС-ийн бичиг баримтыг сайтар үзээрэй.

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

Ямар нэгэн хүснэгтийн өгөгдлийг засварлахдаа UPDATE операторыг ашигладаг. Энэ операторыг хоёр янзаар ашигладаг.

  1. Хүснэгтийн тодорхой бичлэгийг өөрчлөх
  2. Хүснэгтийн бүх бичлэгийг өөрчлөх

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

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

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

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

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

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

Дийлэнх SQL шаардлага нь нэг болон хэсэг хүснэгтүүдээс өгөгдөл татахдаа нэг оператор ашигладаг. Үүнээс гадна SQL нь SELECT операторыг олон удаа ашиглан олон шаардлагыг биелүүлэн үр дүнг нэг хүснэгт байдлаар авах боломжтой байдаг. Эдгээр хосолсон шаардлагуудыг голдуу нэгдсэн буюу төвөгтэй /нарийн/ шаардлага гэж нэрлэдэг. Ийм төрлийн шаардлагууд голдуу дараах тохиолдолд бидэнд хэрэгтэй болно.

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

Бид өмнө нь Тооцоологдох талбар үүсгэх хичээлд хүснэгтийн баганад завсарын нэр /alias/ хэрхэн өгөх тухай үзсэн. Үүнээс гадна SQL нь хүснэгтийн нэрэнд завсарын нэр /alias/ олгох боломжой байдаг. Энэ нь дараах хоёр үндсэн шалтгаантай.

  1. SQL-ийн илүү богино бичлэг
  2. Нэг SELECT операторт нэг хүснэгтийг олон дахин ашиглах боломжийг нээнэ

Дараах операторыг авч үзье

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

Арифметик прогресийн 5-р гишүүн 8,4 харин 10-р гишүүн 14,4 тэнцүү бол энэ прогресийн 22-р гишүүнийг ол.

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

 

Дарааллын эхний n гишүүний нийлбэр томьёогоор өгөгджээ. Хэрэв энэ дараалал геометр прогресс бол q -г ол, арифметик прогресс бол d -г ол.

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

 

бол M·N=?

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