MySQL, SQL гэж юу вэ? - 20 April 2011 - Welcome To UNITCaroline.clan.su :)
Home » 2011 » April » 20 » MySQL, SQL гэж юу вэ?
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 уруу илгээн таньд харуулна.
WEB сервер – Apache , IIS гэх мэт.

Датабейс-с (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) бичих хэрэггуй болно. Зевхен нэг РНР скрипт бичсэн байхад л хангалттай.
2. Онигоо (jokes) – гоо єєрийн ВЕБ хуудсандаа гаргахийн тулд ердее л датабейс-дээ оруулсан байхад л боллоо. Yлдсэнийг нь РНР маань автоматаар хийчихнэ.

За, бvгдээрээ одоо дээрхи жишээндээ яаж мэдээллээ (jokes) датабейс-дээ хадгалахийг харья.

Датабейс нь нэг болон хэд хэдэн хvснэгт (table) –c бvрдэх бєгєєд , хvснэгт (table) – нь дотроо things (юм - нэгж мэдээлэл) –ын жагсаалтыг агуулдаг.

(Жиш: 8 ангийн датабейс:
-> Датабейс: 8 анги
-> Table: Эрэгтэй, эмэгтэй
-> Эрэгтэй table-н Things: Батаа, Болдоо, Баяраа, Дондог, Лувсан гэх мэт..
-> Эмэгтэй table-н Things: Нараа, Сараа, Навчаа, Цэцгээ гэх мэт…)

Бидний жишээ болгон авсан онигоо (jokes) датабейсд, онигоонууд (Jokes) гэсэн хvснэгт (table) байх хэрэгтэй. Хvснэгт (table) болгон єєрийн гэсэн талбар (fields)–тай байна. Мєр болгонд бид нэг онигоо (JokeText) болон онигоо бичигдсэн он сар єдрєє (JokeDate) хадгална.

ID
JokeText JokeDate
1 Why did the chicken cross the road ? 2001-04-01
2 Knock – knock ! Who is there ? 2002-08-14

Эрэмбэ дараалалтай болгохын 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 аддресаа бичих хэрэгтэй. Хэрвээ клиент программ маань сервертэйгээ хамт нэг компютер дээрээс ажиллаж байгаа нехцелд:
- h localhost эсвэл -h (IP аддресс) гэж бичиж болно.

- username –нь MySql user name. Хэрвээ та MySql server-ийг єєрийн компютер дээрээ суулгасан бол
- h localhost –u root –p гэх болно.

- р нь таниас password-ыг тань асуух болно.

Эдгээр бvх зуйлийг зев хийсэн бол клиент программ (mysql.exe) ажиллуулснаар комманд бичих мер маань бэлэн болж дараахь байдалтай харагдана.

mysql>

Ингээд бид датабейстэйгээ холбогдон ажиллах зам маань нээгдлээ.

Эхлээд сервер дээр бэлэн байгаа датабейсээ харцгаая !

Дараахь коммандыг бичээд Enter дараарай! Гэхдээ цэг таслалаа (;) бичихээ мартав аа! Энэ нь коммандын маань тегсгелийг зааж байгаа юм.

mysql>show databases;

MySql-server дээрхи датабейсыг таньд харуулах болно. Бидний саяхан суулгасан сервер маань дараахь байдалтай харагдана.

Database

Mysql
test

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
->databases;

Нэлээн урт коммандыг хэд хэдэн коммандын меренд салгаж бичиж болох бегеед харин коммандынхаа тегсгелд л semicolon (;) бичихэд хангалттай.

Та коммандаа бичиж байхдаа алдаа гаргаснаа харвал

Mysql>droop database \ c

Энд та drop гэхийг droop гэж алдчан байна. \ с гэж бичсэнээр

Mysql>

гэсэн шинэ меренд очоод дахин коммандаа зев болгон бичнэ уу!

Та Mysql клиент программаас гарахыг хусвэл

Mysql>quit
Bye

Гэж бичээд л болоо.

SQL гэж юу вэ?

Mysql клиент программыг юу хийхийг нь хэлж егдег коммандуудын багцыг SQL (Structured Query Language) гэж нэрлэнэ.

SQL – "sequell” - "сий-кvэ-эл” гэж дуудна.
SQL дахь коммандуудыг "queries” гэнэ.
SQL нь олон терлийн датабейс-тай ажиллах боломжтой стандард хэл юм. (MySql Database, Microsoft database гэх мэтийн датабейс-д ихэнхи коммандууд нь хоорондоо тестэй).
Ер нь SQL, MySql хоёр нь юугаараа ялгаатай юм бэ ?

MySql нь датабейс сервер талын программ.
SQL нь бидний датабейс-тайгаа харьцаж байгаа хэл юм.

Датабейс байгуулах (б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 (
->column_1_name column_1_type column_1_details,
-> column_2_name column_2_type column_2_details,
->………………….
->);

Ингээд онигооныхоо "Jokes” хvснэгт (table) –аа хийцгээе. Бидэнд 3 багана хэрэгтэй:

ID - Дугаар
JokeText - Онигооны бичлэг
JokeDate - Онигооны бичэгдсэн едер

Mysql>create table Jokes (
- >ID int not null auto_increment primary key,
- >JokeText text,
- > JokeDate date not null
- > );

Яасан? Хvн аймаар харагдаж байна уу? Би ч гэсэн анх хараад айж байсан юм. Харин хэд хэд оролдоод vзсэний дараа гайгvй юм байна лээ. За, эдгээрийг жаахан тайлбарлая.

Эхний мер маань ердее л Jokes гэсэн table хий гэдгийг хэлж байна.
2 дахь меренд ID – Дугаар гэсэн бvхэл тоон утгатай (integer буюу int) нэг багана бvтээе гэж байна. Бусад нь багана vvсгэхэд хэрэглэдэг тусгай хэмжигдэхуунууд.
not null = NULL утга авахгvй байх
auto_increment = Хэрэглэгч тусгай дугаартай онигоо оруулаагvй нехцелд дарааллаар нь дугаарлана.
primary key = хvснэгтийнхээ гол тvлхvvр талбар нь болох, ингэснээр утга давтагдахгvй бєгєєд, автоматаар индекслэгднэ.

Та хэрвээ дээрхи коммандуудыг зев бичсэн бол MySql "Query OK” гэж таньд харуулснаар бид онигоо (Jokes) гэсэн table-аа хийчихлээ. Та ямар нэгэн зев бичгийн алдаа гаргасан бол , MySql таны бичсэн комманд алдаатай байна гэсэн бичиг таньд харуулна. Алдаагаа засан коммандаа дахин бичээрэй.

Одоо бугдээрээ сая хийсэн онигоо (Jokes) гэсэн table-аа vзэж харъя.

Mysql>show tables;

Гэсэн комманд егехед

Tables in jokes
Jokes

1 row in set (0.11 sec)

Энд бидний датабейс-д байгаа jokes нэртэй бvх table-н жагсаалт харагдаж байна. Одоогоор бидэнд зевхен ганц онигоо (Jokes) гэсэн нэртэй хvснэгт (table) байна.

Одоо энэ онигоо (Jokes) хvснэгт (table)-даа юу байгааг харъя.

Mysql>describe Jokes;

Field
Type Null Key Default Extra
ID Int (11) Yes Primary 0 Auto
JokeText Text Yes Null Increment
JokeDate Date Yes 0000-00-00

Дээрх хvснэгт (table)-с харахад, тэнд 3 багана (columns) байх ба энэ нь 3 мер хэлбэртэй харагдаж байна.

Одоо онигоо (Jokes)-гоо хvснэгтдээ яаж оруулах талаар узье.

Юуны емне хvснэгт (table) яаж арчдагийг (устгахыг) мэдэж авцгаая.

Mysql>drop table table_name;

Хvснэгтэд мэдээлэл (онигоо) оруулах

Бид онигоо (jokes) гэсэн датабейс, онигоо (Jokes) гэсэн хvснэгт (table) хийчихсэн билээ. Одоо ингээд шинэ шинэ онигоонууд бичиж оруулах маань л vлдлээ.
Ууний тулд бид INSERT гэдэг комманд ашиглах бегеед еренхий хэлбэр нь дараахь байдалтай байна.

Mysql>insert into table_name set
-> columnName1 = value1,
-> columnName2 = value2,
-> ……………….
->;

Єєр нэг хэлбэр нь

Mysql>insert into table_name
-> (columnName1, column2, ……)
-> values (value1, value2, ……..);

Одоо єєрсдийнхєє жишээн дээр онигоогоо датабейсдээ оруулцгаая.

Дээрх хоёр хэлбэрийг хэрхэн ашиглахыг тус тус vзvvлэе:

Mysql>insert into Jokes set
-> JokeText = " Why did the chicken cross the road ? To get the other side ”,
-> JokeDate = "2002-08-15”
-> ;

Эсвэл еереер:

Mysql>insert into Jokes
-> (JokeText, JokeDate)
-> values (" Why did the chicken cross the road? To get the other side ”, "2002-08-15”) ;

Хоёр дахь хэлбэрт 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
1 2002-08-16

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
-> where JokeDate > = "2000-04-01” ;

Мен vvний адилаар:

Mysql>select count (*) from Jokes
-> where JokeDate < = "2000-04-01” ;

2000-04-01 –с емне бичигдсэн онигоонуудын тоог харуулна.

Ямар нэгэн тодорхой vг агуулсан онигоог олоход LIKE тvлхvvр vгийг хэрэглэнэ.

Mysql>select JokeText from Jokes
-> where JokeText like "% chicken %” ;

Мен нэгэн зэрэг олон нехцел биелуулсэн (2000-04-01 –с 2002-08-16 хооронд бичигдсэн, chicken гэдэг уг агуулсан) онигоог жагсааж болно.

Yvний тулд:

Mysql>select JokeText from Jokes
-> where JokeText like "% chicken %” and
-> JokeDate >= "2000-04-01” and
-> JokeDate <= "2002-08-15” ;

Одоо та еерее бие даан нэлээн хэдэн онигоо датабейсдээ оруулаад энэ SELECT, LIKE, WHERE, COUNT, INSERT гэсэн функц болон тvлхvvр vгнуудээр тоглон дасгал сургууль хийгээрэй !

Хадгалсан мэдээллээ (онигоо) засан еерчлех

Мэдээллээ (онигоо) датабейс-н хvснэгтэд оруулсны дараа та зев бичлэгийн алдаагаа засах, хамт байрлуулсан мэдээллээ солих хэрэг гарч болно. Ийм тохиолдолд та UPDATE коммандыг ашиглах болно. UPDATE комманд нь INSERT коммандын утгын багана (column values), SELECT коммандын зарим элементийг агуулдаг. Еренхий хэлбэр нь;

Mysql> update table_name set
->col_name = new_value, ………….
->where conditions;

Жищээ болгон тvрvvхэн оруулсан онигоондоо зарим нэгэн еерчлелт хийе:

Mysql> update Jokes set
->JokeDate = ” 1990-04-01”
->where JokeText like "% chicken %” ;

Ингэснээр бид chicken гэдэг уг агуулсан мсэдээлэл (онигоо) болгоныг олоод бичигдсэн он сар едрийг нь 1990-04-01 болгон еерчилж байна.

Хадгалсан мэдээллээ (онигоо) устгах

Мэдээлэл устгах, арилгах нь «аюулын» амархан тул энэ коммандтай болгоомжтой харьцахыг сануулж байна!

Mysql> delete from table_name WHERE conditions ;

Chicken гэдэг vгтэй онигоонуудыг бvгдийг нь хvснэгт (table) –с арчихын тулд;

Mysql>delete from Jokes
->where JokeText like "% chicken %” ;

гээд л болоо. Харин:

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/
http://www.php.net/
http://www.phpgeek.com/

Views: 401 | Added by: Бямба-Эрдэнэ | Rating: 0.0/0
Total comments: 0
Name *:
Email *:
Code *: