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

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

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

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

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

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

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

SELECT оператор нь SQL шаардлагыг илэрхийлнэ. Бидний өмнө үзсэн бүх SELECT операторууд нь өгөгдлийг нэг хүснэгтээс татах энгийн SQL шаардлага байсан.

Шаардлага – Ямар нэгэн SQL операторыг хэлнэ. Гэхдээ энэ хэллэг нь голдуу SELECT операторт хамаарагдана.

SQL хэлэнд дэд шаардлага үүсгэж болдог. Яагаад дэд шаардлага хэрэгтэй болсон вэ? Энэ ойлголтыг жишээгээр тайлбарлах нь илүү.

Санамж: MySQL ӨСУС-ийн 4.1 ээс дээш хувилбар дэд шаардлагыг дэмждэг

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

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

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

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

Цэсийг нээх хаах ажиллагааг хариуцах компонентийг боловсруулсан тул энэ хичээлээр програмийн удирдах цэсийг…

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

 

Математикийн үйлдлүүдэд нэг ба тэг тоонууд онцгой шинжүүдтэй. Үржих үйлдэлд нэг ба тэг

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

 

Давталт (Iterator) паттерн нийлмэл обьектын бүх элементүүдэд тэдгээрийн дотоод бүтцийг задлахгүйгээр хандах абстракт интерфейсийг тодорхойлдог. C# хэл дээр…

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

 

Тодорхой нөхцөлд жишээ нь тоог тэгд хуваах гэх мэт тохиолдолд систем өөрөө онцгой нөхцлийн генерацийг хийдэг. Гэхдээ C#

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

 

Програмийг удирдах цэсийг нээх болон хаах ажиллагааг хариуцах компонентийг боловсруулъя. Үүний тулд төслийн components хавтаст Navigation хавтасыг үүсгээд…

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

 

Арифметикийн үндсэн 4 үйлдлийн нэг бол үржих. Нэмэх , хасах үйлдлийн талаар…

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

 

Шаблоны арга (Template Method) хэв дэд классуудад алгоритмын бүтцийг өөрчлөхгүйгээр зарим алхамуудыг дахин тодорхойлох боломж олгосон ерөнхий алгоритмыг…

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

 

Гурвалжны медиантай холбоотой бодлогууд шалгалт шүүлэгт ихээр орж ирдэг. Иймээс гурвалжны медиан, түүний шинжүүдийг бүрэн мэддэг байх хэрэгтэй.

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

 

Бүх онцгой нөхцлүүдийн суурь бол Exception төрөл. Төрөлд онцгой нөхцлийн талаарх мэдээллийг авч болох хэдэн шинжийг тодорхойлсон байдаг.…

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

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

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

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

 

ABCD трапецийн бага диагонал BD=6 бөгөөд суурьтай перпендикуляр. Трапецийн AD=3, DC=12 бол B, D мохоо өнцгийн нийлбэрийг ол.

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

 

Геометрийн шалгалтанд сурагчид шалгалтын асуултуудаас нэг асуулт ирнэ. Сурагч "Дотоод өнцөг" сэдвийн асуултуудад хариулах магадлал 0,35 харин "Багтаасан тойрог" сэдвийн асуултуудад хариулах ммагадлал 0,2 байжээ. Шалгалтын асуултуудад энэ хоёр сэдэвт хоёуланд зэрэг хамаарах асуулт байхгүй бол сурагчид энэ хоёр сэдвийн аль нэгэнд нь хамааралтай асуулт ирэх магадлалыг ол.

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