SQL гэж юу вэ?

Та энэ хичээлийг уншиж байна гэдэг нь танд ямар нэгэн байдлаар өгөгдлийн сантай ажиллах шаардлага байгаа гэдгийг баталж байна. SQL хэл нь яг үүнд зориулагдсан ойлгохын тулд юуны өмнө өгөгдлийн сангийн технологийн үндсэн ойлголтуудтай танилцах нь маш чухал.
Бид өгөгдлийн санг бараг өдөр бүр ашиглаж байдаг. Жишээ нь өөрийн майлыг шалгахдаа нэр, нууц үгээ оруулах, интернетээс ямар нэгэн мэдээллийг хайх, ажил дээрээ байгууллагынхаа дотоод сүлжээнд нэвтрэх, банкны картын үлдэгдлээ шалгах г.м маш олон жишээг дурьдаж болно.  Гэсэн хэдий ч бараг ихэнх хүмүүст өгөгдлийн сан гэж юу болох нь ойлгомжгүй хэвээрээ үлддэг. Иймээс бид хичээлээ өгөгдлийн сантай хамааралтай хамгийн чухал тодорхойлолтуудаас эхэлье.

Өгөгдлийн сан гэж юу вэ?

Өгөгдлийн сан гэсэн ухагдхууныг маш олон хэлбэрээр тайлбарладаг боловч бид / SQL  талаас илүү түлхүүгээр / өгөгдлийн сан гэдгийг ямар нэгэн байдлаар зохион байгуулагдсан мэдээллийн цуглуулга гэж үзье. Энгийнээр өгөгдлийн санг баримт бичиг хадгалдаг шүүгээ гэж ойлгоход болно. Шүүгээ гэдэгт ямар мэдээллүүд болон тэдгээр нь ямар зохион байгуулалттай гэдгээс үл хамааран зүгээр л мэдээлэл хадгалагдаж байгаа биет байрлалыг ойлгоно.
Өгөгдлийн сан гэдэг нь зохион байгуулалт бүхий / голдуу файлууд эсвэл хэсэг файлууд байна. / өгөгдлүүдийг хадгалах контейнер /сав/ юм.

Хүснэгтүүд / Tables /

Хүмүүс шүүгээнд бичиг баримтаа хадгалахдаа тэдгээрийг холилдуулахгүйн тулд хавтсанд хадгалдаг. Өгөгдлийн санд эдгээр хавтсыг хүснэгт гэж нэрлэдэг.
Хүснэгт гэж тодорхой төрлийн өгөгдлүүдийг зохион байгуулалттайгаар хадгалж байгаа файл юм. Хүснэгт нь харилцагчдын жагсаалт, бүтээгдхүүний нэрсүүд гэх мэтээр төрөл бүрийн мэдээллийг хадгална. Хүснэгтэд нэг төрлийн мэдээллийг хадгалах хэрэгтэй. Жишээ нь нэг хүснэгтэд харилцагчдын болон захиалгын жагсаалтыг хольж болохгүй. Энэ нь тухайн жагсаалтаас мэдээлэл татан авахад хүндрэл үүсгэдэг. Ийм тохиолдолд тухайн мэдээллүүдийг хоёр хүснэгт болгон салгах хэрэгтэй. Өгөгдлийн сангийн хүснэгт бүр нь өөрийн давтагдахгүй нэртэй байх шаардлагатай.

Баганууд болон өгөгдлийн төрлүүд  / Column and Data type /

Хүснэгт нь багануудаас бүрдэх бөгөөд тэдгээрт хүснэгтийн мэдээллийн тордорхой хэсэг байрлана. Багана нь хүснэгтийн нэг талбар юм. Хүснэгт нь нэг буюу түүнээс илүү талбартай байна. Жишээ нь харилцагчдын хүснэгтийн нэг талбар /багана/ -т код, нөгөө талбарт нэр, гуравдах талбарт хаяг г.м
Багана бүр нь энэ баганад байж болох мэдээллийн тодорхой төрөлтэй байдаг. Жишээ нь талбар нь захиалгын тоог илэрхийлсэн мэдээлэл агуулах бол энэ талбар нь тоон төрлийн байх, хэрвээ нэрийг хадгалах бол текст төрлийн байх г.м
Өгөгдлийн төрөл гэдэг нь баганад хадгалах өгөгдлийн шинжийг хэлнэ. Баганы өгөгдлийн төрлийг зөв сонгох нь өгөгдлийн санг зохион байгуулах цаашид ашиглахад чухал үүрэгтэй байдаг.

Мөрүүд / Rows /

Хүснэгтийн өгөгдлүүд мөрөнд хадгалагдана. Бичлэг бүр нь өөрийн мөрөнд байна. Жишээ нь харилцагчдын жагсаалтын хүснэгтэд харилцагч бүрийн мэдээлэл нь тусдаа мөрөнд байрлах ба хүснэгтийн мөрийн тоо нь харилцагчдын хүснэгтийн бичлэгийн тоотой тэнцүү байна.
Мөр гэдэг нь хүснэгтийн бичлэг юм. Өгөгдлийн санд мөрийг бичлэг гэж авч үздэг.

Анхдагч түлхүүр / Primary key /

Хүснэгтийн мөр бүрт тухайн мөрийг давхардахгүй байдлаар илэрхийлэх баганууд байх ёстой. Жишээ нь харилцагчдын хүснэгтэд ийм талбар нь харилцагчийн код /дугаар/, захиалгын хүснэгтэд захиалгын номер байх жишээтэй.
Хүснэгтийн мөр бүрийг давхардахгүй байдлаар илэрхийлэх баганыг /эсвэл багануудыг/ анхдагч түлхүүр гэнэ. Анхдагч түлхүүрээр хүснэгтийн баганыг тодорхойлно. Ийм түлхүүргүйгээр хүснэгтийн мөрийн мэдээллийг устгах, өөрчлөх үйлдлийг хийхэд ихээхэн хүндрэл үүсгэдэг.
Хүснэгтэд анхдагч түлхүүр байх албагүй боловч өгөгдлийн сангийн хүснэгт хоорондын холбоо, мэдээлэл боловсруулахад энэ нь чухал үүрэгтэй тул ихэнх програм зохиогчид хүснэгт бүрт анхдагч түлхүүрийг тавьж өгдөг.
Дараах нөхцлүүдийг хангаж байгаа ямарч баганыг анхдагч түлхүүрээр сонгож болно. Үүнд:

  • Хүснэгтийн хоёр өөр мөр анхдагч түлхүүрийн талбарт ижил утга авахгүй
  • Анхдагч түлхүүрийн талбарт мөр бүр нь тодорхой утгатай байх /Хүснэгтийн анхдагч түлхүүрийн багана NULL утга авч болохгүй/
  • Анхдагч түлхүүрийн баганы утганд өөрчлөлт оруулах боломжгүй байх
  • Анхдагч түлхүүрийн баганы утгыг дахин ашиглахгүй байх /Хүснэгтийн бичлэгийг устгасны дараа түүний анхдагч түлхүүрийн утгыг өөр мөрөнд олгож болохгүй/
    зэрэг болно

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

SQL гэж юу вэ?

SQL гэдэг нь Structured Query Language буюу / орчуулах шаардлагагүй товчлолоор нь ойлгоход болно / гэсэн үгний товчлол юм. SQL нь өгөгдлийн сантай ажиллахад зориулагдан зохиогдсон хэл бөгөөд өгөгдлийн сангийн мэдээллийг татан авах, мэдээллийг өгөгдлийн санд бичих үйлдлийг энгийн, үр дүнтэйгээр гүйцэтгэх үүрэгтэй. SQL-ийн давуу талууд нь

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

Иймээс SQL-ийг сурах хэрэгтэй.

Стандарт SQL нь стандартын хороогоор /ANSI / батлагдсан бөгөөд ANSI SQL гэж нэрлэгддэг. Ихэнх том ӨСУС-д  ANSI SQL-г дэмжин ажилладаг.
Ямарч хэлийг сурах хамгийн шалгарсан арга бол түүнийг практик дээр турших явдал байдаг. Иймд SQL-ийн командуудыг туршин үзэхийн тулд танд өгөгдлийн сан хэрэгтэй болно. Хичээлүүдэд ашиглагдаж байгаа жишээнүүд бүгд бодит баазтай ажиллаж байгаа ба туршилтын баазыг эндээс татан аваарай. Ашиглахад хялбарыг бодон архивт зөвхөн MicroSoft Access баазыг оруулсан болно. Өгөгдлийн сангийн бүтэц зохион байгуулалтын талаар Хавсралтаас үзээрэй.

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

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

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

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

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

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

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

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

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

Өмнөх хичээлээс бид хүснэгтийн өгөгдлүүдийн дүнг SQL статик функцээр хэрхэн авахыг мэдсэн. Гэхдээ бид өгөгдлүүдийн дүнг хүснэгтийн бүх бичлэгүүдийн хувьд WHERE-д заагдсан нөхцлийн дагуу авч байсан.
Тэгвэл бидэнд нийлүүлэгч хэдэн бараа санал болгосныг нийлүүлэгч бүрээр мэдэх шаардлагтай болсон гэж бодъё. Энэ асуудлыг шийдвэрлэхэд бид групп /бүлэг/-ыг хэрэглэнэ. Бүлэглэх нь бүх өгөгдлүүдийг логик хэсгүүдэд хувааснаар бидэнд энэ хэсгүүдэд статик функцуудыг ашиглах боломж олгодог.

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

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

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

 

тэгшитгэлийн завсар дахь шийдийг ол.

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

 

-ийн x4 -ийн коэффициентийг ол.

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