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 баазыг оруулсан болно. Өгөгдлийн сангийн бүтэц зохион байгуулалтын талаар Хавсралтаас үзээрэй.

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

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

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

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

Програмчлалын хэлнүүдийн адилаар SQL нь өгөгдлийг боловсруулах функцуудтэй байдаг.
Функц гэдэг нь өгөдлүүдийг боловсруулах, удирдах ажиллагааг хөнгөвчилөхөд зориулагдсан үйлдлүүд юм. Функцын жишээгээр бид өмнөх хичээлд мөрийн араас хоосон тэмдэгтийг устгахад ашигласан RTRIM() функцыг нэрлэж болно.
Юуны өмнө функцыг хэрхэн ашиглах талаар авч үзэхээс өмнө SQL-д функц ашиглах нь тодорхой асуудал үүсгэдэг гэдгийг тэмдэглэх нь зүйтэй. Бүх ӨСУС-д дэмждэг SQL операторуудаас (жишээ нь SELECT) ялгаатай нь ӨСУС-д төрөл бүрийн функцуудыг ашигладаг. Зөвхөн цөөн тооны функцууд зарим ӨСУС-д ижилхэн хэлбэртэй байдаг. Гэхдээ бүх төрлийн функцууд ӨСУС бүрд байдаг хэдий ч тэдгээрийг ашиглах нь ихээхэн зөрөөтэй байдаг. ӨСУС-д функцын ялгаатай байдлыг доорх хүснэгтээс харна уу.

  Нээгдсэн тоо: 2529 Нийтийн

Өгөдлийн сангийн хүснэгтээс мэдээлэл татан авах операторыг SELECT гэдэг. SELECT оператороор хүснэгтээс мэдээлэл татахдаа дор хаяж юу татан авах гэж байгаа, хаанаас татах гэсэн хоёр зүйлийг зааж өгнө.

Нэг баганыг татан авах

SELECT prod_name FROM Products;

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

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

SQL хэлний SELECT операторыг ашиглан хийж болох хамгийн хүчтэй үйлдэл нь хүснэгтүүдийг нэгтгэх болно. Иймээс нэгтгэл түүний бичлэгийн дүрмийг нарийн судлах нь SQL хэлийг эзэмших үйл явцын хамгийн чухал хэсэг байдаг.
Юуны өмнө нэгтгэлийг үр дүнтэй эзэмшихийн тулд холбоост /relation/ өгөгдлийн санг байгуулах үндэс, холбоост хүснэгтүүд гэдэг ойлголтын талаар тайлбарлах хэрэгтэй. Хичээлээр энэ ойлголтын тухай бүрэн хэмжээнд авч үзэхгүй хэдий ч хичээлийн материал танд хангалттай ойлголтыг өгч чадна.

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

Өдрийн хуваарьт 5 хичээл ордог. Тэгвэл 11 хичээлээс зохиож болох хуваарийн хувилбарын тоог ол. Нэг хичээл өдөрт нэг удаа л орно.

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

 

y=8x3 ба y=8x функцуудын графикаар хязгаарлагдсан дүрсийн талбайг ол.

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

 

тэгшитгэлийн язгуурууд x1 , x2 , x3 бол

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