8:54 AM MySQL, SQL гэж юу вэ? | |
Танилцуулга Єнєєдєр бид PHP, MySql гэж их сонсох боллоо. Энэ нь интернет болон е-худалдаа ендер хегжиж , алдартай том компаниас авахуулан энгийн хувь хvн хvртэл еерийн гэсэн WEB сайт-тай болж байгаатай холбоотой билээ. Ингээд та бvхэнд динамик WEB бvтээхэд ашигладаг PHP (server side script language), мен MySql егегдлийн бааз-тай ажиллахад зориулагдсан SQL (Structured Query Language) – н талаар сонирхуулья. MySql гэж юу вэ? Дээр егуулсэнчлэн , РНР нь (server side script language) бегеед, энэ хэлний тусламжтайгаар бичсэн командийг WEB сервер эхэлж гуйцэтгээд дараа нь browser уруу илгээн таньд харуулна. Датабейс-с (database) ямар нэгэн хэрэгтэй мэдээллээ татаж авахад эхлээд та датабейс-ээ байгуулсан байх хэрэгтэй. Yvний тулд бидэнд MySql хэрэг болох билээ. Яг ямар уурэг гуйцэтгэдэг , мен яаж ажилладагийг удахгуй таньд бичих болно. Еренхийдээ бол энэ нь нэгэн багц програм бегеед их хэмжээнтй мэдээллийг зохион байгуулах, нягт нямбай , эмх цэгцтэйгээр хадгалж байдаг билээ. MySql нь бас РНР тусламжтайгаар мэдээлэлтэй хурдан шуурхай , амархан харьцах боломжийг бидэнд егч чаддаг. MySql нь бас GNU (General Public License) –тэй учир ихэнхи платформ–той таарч ажиллана. Ууний дотор ихэнхи Unix терлийн платформ (Linux гэх мэт) орно. Тэр ч байтугай Мас OSX болон Windows9x/ME/NT/2000 –тай ажиллах чадвартай билээ. Датабейс сервер (бидний хувьд MySql) маань их хэмжээний мэдээллийг зев зохистой, зохион байгуулалттай хадгалж байдаг нэгэн терлийн программ юм. Бид РНР скрипт хэлний тусламжтайгаар эдгээр мэдээлэлтэй хурдан шуурхай харьцах боломжтой болно. Жиш: Та РНР-д, датабейс-д хандаж Онигоо (Jokes) гэсэн жагсаалтийг олоод таний ВЕБ хуудсанд гаргаж харуул! гэсэн комманд еглее гэж бодьё. Шинээр бичигдсэн Онигоо (jokes)–д маань датабейс-д орон хадгалагдсаар байх болно. Бид MySql, PHP-г хэрэглэснээрээ 2 давуу талтай болно. Yvнд : 1. Шинээр Онигоо (jokes) бичигдэх болгонд нэг шинэ НТМL (Hypertext Marking Language) бичих хэрэггуй болно. Зевхен нэг РНР скрипт бичсэн байхад л хангалттай. За, бvгдээрээ одоо дээрхи жишээндээ яаж мэдээллээ (jokes) датабейс-дээ хадгалахийг харья. Датабейс нь нэг болон хэд хэдэн хvснэгт (table) –c бvрдэх бєгєєд , хvснэгт (table) – нь дотроо things (юм - нэгж мэдээлэл) –ын жагсаалтыг агуулдаг. (Жиш: 8 ангийн датабейс: Бидний жишээ болгон авсан онигоо (jokes) датабейсд, онигоонууд (Jokes) гэсэн хvснэгт (table) байх хэрэгтэй. Хvснэгт (table) болгон єєрийн гэсэн талбар (fields)–тай байна. Мєр болгонд бид нэг онигоо (JokeText) болон онигоо бичигдсэн он сар єдрєє (JokeDate) хадгална. ID Эрэмбэ дараалалтай болгохын vvднээс бид "ID” гэсэн баганыг нэмж орууллаа. Энэ нь бидэнд онигоогоо хурдан олоход маань туслах билээ. Дээрхи хvснэгт (table) нь 3 багана (column), 2 мєр (row) –с бvрдэж байна. Мєр болгон онигооны ID (дугаар), онигооны бичлэг (JokeText), онигоо оруулсан едер (JokeDate) –тай байна. Эдгээрийг ойлгосноор бид одоо MySql -тэй эхлэн ажиллахад бэлэн боллоо. MySql –ыг ажиллуулах MySql датабейстэй ажиллах стандард интерфейс нь MySql серверийн software –ыг ажиллуулан комманд бичихээс эхэлнэ. Yvний тулд бидэнд MySql клиент программ хэрэг болох бегеед таны компьютерд MySql сервер software суулгагдсан бол дээрхи клиент программ нь сервертэй-гээ хамт нэгэн directory-д байгаа. Энэ клиент программ-н нэр нь MySql.ехе юм. Жиш: (Миний РС маань Windows vйлдлийн системтэй, магадгvй таньд єєр YС байж болох юм. Гэхдээ энэ клиент программ дотор орсон vед бол YС-ын ялгаа бараг гарахгvй болно..) С:\mysql\bin Хэрвээ та РНР , Apache MySql-г нэгэн зэрэг суулгадаг PHPTriad-ыг ашигласан бол C:\apache\mysql\bin C:\Program Files\PHPTriad\Apache Group\Apache\Mysql\bin гэсэн газар байгаа. Хэрвээ та еерийнхээ компютер деер WEB server суулгаагуй, WEB hosting-н WEB server ащиглаж байгаа бол MySql server-тэй холбогдох 2 арга зам байна. 1. Теlnet болон SSH (Secure Shell) холбоог ашиглан WEB host сервер-тэйгээ холбогдон тэндээсээ mysql клиент программаа ажиллуулах. 2. http://www.mysql.com/ вэб хуудаснаас mysql инсталл программаа хуулж аваад еерийнхее компютер дээр суулгах. Энэ нь vнэ телбергуй бегеед Windows болон Linux vйлдлтйн систем-тэй ажиллах чадвартай. Хэрэв таньд энэ талаар илvv мэдээлэл хэрэгтэй бол манай «MySql болон РНР яаж суулгах вэ?» гэсэн єгvvлэлийг уншина уу? Ингээд нэгэнт MySql клиент программаа ажиллуулсны дараа коммандын мер гарч ирнэ. mysql –h hostname –u username –p - hostname –н оронд та MySql- server ажиллуулж байгаа компютерийн hostname болон IP аддресаа бичих хэрэгтэй. Хэрвээ клиент программ маань сервертэйгээ хамт нэг компютер дээрээс ажиллаж байгаа нехцелд: - username –нь MySql user name. Хэрвээ та MySql server-ийг єєрийн компютер дээрээ суулгасан бол - р нь таниас password-ыг тань асуух болно. Эдгээр бvх зуйлийг зев хийсэн бол клиент программ (mysql.exe) ажиллуулснаар комманд бичих мер маань бэлэн болж дараахь байдалтай харагдана. mysql> Ингээд бид датабейстэйгээ холбогдон ажиллах зам маань нээгдлээ. Эхлээд сервер дээр бэлэн байгаа датабейсээ харцгаая ! Дараахь коммандыг бичээд Enter дараарай! Гэхдээ цэг таслалаа (;) бичихээ мартав аа! Энэ нь коммандын маань тегсгелийг зааж байгаа юм. mysql>show databases; MySql-server дээрхи датабейсыг таньд харуулах болно. Бидний саяхан суулгасан сервер маань дараахь байдалтай харагдана. Database Mysql 2 rows in set (0.11 sec) Сервер маань еерее «mysql» датабейсээ ашигладаг бегеед vvндээ хэрэглэгчдийн явсан мер, тэдний нууц уг болон юу хийснийг нь хадгалж vлддэг. «test» гэсэн датабейс нь зугээр л нэг энгийн датабейс юм. Yvнийг устшаж, хард дискний зайг чєлєєлж болно ба ингэхийг MySql-д "dropping” гэж нэрлэдэг. mysql>drop database test; Дээрхи коммандыг бичээд enter дарснаар MySql «test» гэсэн датабейс-г устгаад, "Query OK” гэсэн хариу егне. (Yйлдлийг гуйцэтгэв). Нэг анхаарах зуйл бол коммандаа бичээд «enter» дарсан л бол таниас «Та энэ vйлдлийг хийхийг яг хvсэж байна уу?» гэж анхааруулж асуухгvйгээр шууд гvйцэтгэх болно. Єєр угээр хэлбэл «Ам алдвал барьж болохгуй» гэдэг болох тул энэ «drop» гэсэн комманд-тай анхааралтай ажиллах хэрэгтэй. Цааш ургэлжлуулэн явахаас емне , MySql –н коммандын мер нь заавал semicolon - цэг таслал (;) –р тєгсєх ёстой гэдгээ дахин сануулъя! semicolon (;) –оо бичээгуй тохиолдолд MySql нь таныг коммандаа бичиж дуусаагуй байна гээд коммандын 2-дагч мерийг гаргана. mysql>show databases гээд enter дарахад -> 2дагч мер гарч ирнэ. Учир нь та semicolon (;) бичихээ мартсан байна. Та одоо ч гэсэн оройтоогvй бегеед semicolon (;) бичихэд ->; бvх зvйл хэвийн болно. Mysql>show Нэлээн урт коммандыг хэд хэдэн коммандын меренд салгаж бичиж болох бегеед харин коммандынхаа тегсгелд л semicolon (;) бичихэд хангалттай. Та коммандаа бичиж байхдаа алдаа гаргаснаа харвал Mysql>droop database \ c Энд та drop гэхийг droop гэж алдчан байна. \ с гэж бичсэнээр Mysql> гэсэн шинэ меренд очоод дахин коммандаа зев болгон бичнэ уу! Та Mysql клиент программаас гарахыг хусвэл Mysql>quit Гэж бичээд л болоо. SQL гэж юу вэ? Mysql клиент программыг юу хийхийг нь хэлж егдег коммандуудын багцыг SQL (Structured Query Language) гэж нэрлэнэ. SQL – "sequell” - "сий-кvэ-эл” гэж дуудна. MySql нь датабейс сервер талын программ. Датабейс байгуулах (бvтээх, зохиох) Бугдээрээ MySql сервер-ээ еерийн компютер дээрээс ажиллуулан шинэ датабейс vvсгэе ! Датабейс vvсгэх нь арчихтайгаа адил тун амархан билээ. Mysql>create database jokes; Бид датабейс-ээ онигоо (jokes) гэж нэрлэлээ. Та датабейс-ээ еерийн хvссэн дуртай нэрээрээ нэрлэж болно. Харин WEB Host-н MySql сервер дээр ажиллаж байгаа хумууст датабейс нь цаанаасаа vvсгэгдэн, еерийн гэсэн нэртэй байх тул датабейсээ дураараа нэрлэх боломжгvй билээ. ОК, одоо бидэнд онигоо (jokes) гэсэн датабейс байна. Харин одоо энэ онигоо (jokes) гэсэн датабейс дээрээ ажиллая гэж MySql-дээ хэлье. Mysql>use jokes; Ингэснээр бид онигоо (jokes)-тойгоо ажиллах бvрэн эрхтэй болов оо. Гэвч одоогоор бидэнд хvнд харуулчих онигоо байхгvй байгаа. Иймд онигоонуудыг маань хадгалж байх хvснэгт (table) хэрэгтэй болж байна. Хvснэгт (table) хийх Хvснэгт (table) маань эмзэг тул бидний бичих коммандууд маань жаахан хvнд хэцvv болж байна. Тэгэхдээ та буу сандар, хvнд хэцvv гэдэг нь, drop create шиг амархан биш ээ л гэсэн vг. Хvснэгт (table) vvсгэх коммандын еренхий хэлбэр нь: Mysql>create table table_name ( Ингээд онигооныхоо "Jokes” хvснэгт (table) –аа хийцгээе. Бидэнд 3 багана хэрэгтэй: ID - Дугаар Mysql>create table Jokes ( Яасан? Хvн аймаар харагдаж байна уу? Би ч гэсэн анх хараад айж байсан юм. Харин хэд хэд оролдоод vзсэний дараа гайгvй юм байна лээ. За, эдгээрийг жаахан тайлбарлая. Эхний мер маань ердее л Jokes гэсэн table хий гэдгийг хэлж байна. Та хэрвээ дээрхи коммандуудыг зев бичсэн бол MySql "Query OK” гэж таньд харуулснаар бид онигоо (Jokes) гэсэн table-аа хийчихлээ. Та ямар нэгэн зев бичгийн алдаа гаргасан бол , MySql таны бичсэн комманд алдаатай байна гэсэн бичиг таньд харуулна. Алдаагаа засан коммандаа дахин бичээрэй. Одоо бугдээрээ сая хийсэн онигоо (Jokes) гэсэн table-аа vзэж харъя. Mysql>show tables; Гэсэн комманд егехед Tables in jokes 1 row in set (0.11 sec) Энд бидний датабейс-д байгаа jokes нэртэй бvх table-н жагсаалт харагдаж байна. Одоогоор бидэнд зевхен ганц онигоо (Jokes) гэсэн нэртэй хvснэгт (table) байна. Одоо энэ онигоо (Jokes) хvснэгт (table)-даа юу байгааг харъя. Mysql>describe Jokes; Field Дээрх хvснэгт (table)-с харахад, тэнд 3 багана (columns) байх ба энэ нь 3 мер хэлбэртэй харагдаж байна. Одоо онигоо (Jokes)-гоо хvснэгтдээ яаж оруулах талаар узье. Юуны емне хvснэгт (table) яаж арчдагийг (устгахыг) мэдэж авцгаая. Mysql>drop table table_name; Хvснэгтэд мэдээлэл (онигоо) оруулах Бид онигоо (jokes) гэсэн датабейс, онигоо (Jokes) гэсэн хvснэгт (table) хийчихсэн билээ. Одоо ингээд шинэ шинэ онигоонууд бичиж оруулах маань л vлдлээ. Mysql>insert into table_name set Єєр нэг хэлбэр нь Mysql>insert into table_name Одоо єєрсдийнхєє жишээн дээр онигоогоо датабейсдээ оруулцгаая. Дээрх хоёр хэлбэрийг хэрхэн ашиглахыг тус тус vзvvлэе: Mysql>insert into Jokes set Эсвэл еереер: Mysql>insert into Jokes Хоёр дахь хэлбэрт column –ых нь дараалал values (егегдел)-ынхээ дараалалтай харилцан тохирч байх ёстойг анхаарна уу ! Ингээд бид онигоогоо (мэдээлэлээ) датабейсдээ оруулж чаддаг болчихлоо. Харин одоо оруулсан онигоо (мэдээлэлээ, data) –гоо яаж узэж болох талаар vзэцгээе. Хадгалсан мэдээлэл (онигоог) vзэх Датабейс-д хадгалсан мэдээллээ vзэх комманд нь SELECT бегеед энэ нь SQL хэлний хамгийн ярвигтай комманд билээ. Учир нь бид мэдээллээ маш олон терлеер vзэж болох билээ. Бидний авч байгаа онигоо жишээн дээр бид зевхен онигоогоо харах болохоор SELECT комманд нь амархан байх болно. Доорх коммандыг бичсэнээр Jokes хvснэгт (table) байгаа бvx онигоог vзvvлнэ. Mysql>select * from Jokes; Гарч ирэх эмх цэгцгvй жагсаалтыг хараад та гайхах болно. Учир нь бидний оруулан бичсэн онигоо (JokeText) маань нэг мернеес урт тул дараагийн меренд шилжуулэн жагсаасан байна. Уунийг эмх цэгцтэй харагдуулах арга нь; Mysql>select ID, left (JokeText,20), JokeDate from Jokes; Гэж бичсэнээр онигооны эхний 20 vсгийг харуулах бегеед жагсаалт маань ч эмх цэгцтэй харагдана. Хэрвээ та онигоонуудаа он сар едреер нь дугаарлан харъя гэвэл; Mysql>select ID, JokeDate from Jokes; Yр дvн нь: ID JokeDate 2 rows in set (0.3 sec) За ингээд л урагшлаад л байна шсс дээ. Одоо бид мэдээллээ (онигоо) дугаар, он сар едреер нь харахаас гадна мен онигооны эхний 20 vсгийг харж чаддаг боллоо шуу дээ. Хэрхэн COUNT гэсэн function ащиглан хэдэн онигоо манай датабейсд хадгалагдсаныг мэдэцгээе. Mysql>select count (*) from Jokes; Бидний харж байгаагаар ердее л ганцхан бидний бичсэн л онигоо байна. WHERE function-г ашиглан онигооныхоо жагсаалтыг улам нарийн, нямбай болгон харж чадна. Жишээ нь: 2000-04-01 –с хойш бичигдсэн онигоонуудыг харахын тулд дараахь коммандыг бичихэд л хангалттай. Mysql>select count (*) from Jokes Мен vvний адилаар: Mysql>select count (*) from Jokes 2000-04-01 –с емне бичигдсэн онигоонуудын тоог харуулна. Ямар нэгэн тодорхой vг агуулсан онигоог олоход LIKE тvлхvvр vгийг хэрэглэнэ. Mysql>select JokeText from Jokes Мен нэгэн зэрэг олон нехцел биелуулсэн (2000-04-01 –с 2002-08-16 хооронд бичигдсэн, chicken гэдэг уг агуулсан) онигоог жагсааж болно. Yvний тулд: Mysql>select JokeText from Jokes Одоо та еерее бие даан нэлээн хэдэн онигоо датабейсдээ оруулаад энэ SELECT, LIKE, WHERE, COUNT, INSERT гэсэн функц болон тvлхvvр vгнуудээр тоглон дасгал сургууль хийгээрэй ! Хадгалсан мэдээллээ (онигоо) засан еерчлех Мэдээллээ (онигоо) датабейс-н хvснэгтэд оруулсны дараа та зев бичлэгийн алдаагаа засах, хамт байрлуулсан мэдээллээ солих хэрэг гарч болно. Ийм тохиолдолд та UPDATE коммандыг ашиглах болно. UPDATE комманд нь INSERT коммандын утгын багана (column values), SELECT коммандын зарим элементийг агуулдаг. Еренхий хэлбэр нь; Mysql> update table_name set Жищээ болгон тvрvvхэн оруулсан онигоондоо зарим нэгэн еерчлелт хийе: Mysql> update Jokes set Ингэснээр бид chicken гэдэг уг агуулсан мсэдээлэл (онигоо) болгоныг олоод бичигдсэн он сар едрийг нь 1990-04-01 болгон еерчилж байна. Хадгалсан мэдээллээ (онигоо) устгах Мэдээлэл устгах, арилгах нь «аюулын» амархан тул энэ коммандтай болгоомжтой харьцахыг сануулж байна! Mysql> delete from table_name WHERE conditions ; Chicken гэдэг vгтэй онигоонуудыг бvгдийг нь хvснэгт (table) –с арчихын тулд; Mysql>delete from Jokes гээд л болоо. Харин: Mysql>delete from Jokes ; гэснээр таны хvчээ гаргаж бутээсэн Jokes хvснэгт (table) тань vгvйрэн хоосорч, ямар ч мэдээлэл vгvй хоосон авдар болон хоцорно. Иймд DELETE –тэй туйлын болгоомжтой харьцахыг дахин сануулъя ! Тегсгел vг Бид Mysql датабейс сервер болон SQL хэлний талаар vндсэн еренхий мэдлэгтэй болж авлаа. Бидний сурсан коммандууд маань хамгийн энгийн, ерген хэрэглэгддэг коммандууд юм. Энэ удаад бид зевхен нэг хvснэгт (table) бутээж, тvvнтэйгээ ажиллахыг сурлаа. Улам сайн, боловсронгуй датабейс хийхийн тулд олон хvснэгт (table) –тай зэрэг ажиллаж , тэдгээрийг хооронд нь зев зохион байгуулж сурах хэрэгтэй. Ингээд энэ хичээлээс сурч, ойлгож авсан Mysql датабейс сервер болон SQL хэлний ундсэн мэдлэг дээрээ тулгуурлан цааш гvнзгийруулэн суралцаж мэдлэг боловсролоо дээшлуулэн олон сайхан датабейс, динамик WEB site –ын эзэн болоорой гэж ерєєе !!! Note: Санаа бодол, ойлгохгуй болон асууж лавлах зуйль байвал зохиогчид е-майл бичэх буюу Асуулт Самбарын Developer's World хэсэгт хандана уу! Зохиогчын э-mail: Byamba.Erdene@yahoo.com Холбогдох Линкvvд http://www.mysql.com/ | |
|
Total comments: 0 | |