Monday, September 26, 2011

Жолооны курст

Ингэж нэг төлбөрийн мөнгө олж жолооны курст ч суудаг юм байж. Жолооны үнэмлэхтэй болно гэдэг чинь машинтай болоход нилээн том алхмаар ойртлоо гэсэн үг. Энэ бол том ажил. Үгүй ядаж хэн нэгний машиныг гуйж нэг тойрч ирэх эрхтэй болно шүү дээ. Болохгүй юм ерөөс байхгүй. Гэхдээ одоогоор зөвхөн сургалтандаа сууж, дадлагажиж байгаа ч юм шиг яваад байгаа болохоос шалгалтандаа тэнцэж, жолооч болох эсэхээ ёстой бүү мэд. Өгөөмөр зан нь хөдөлвөл эзэн нь хичээгээгүй ч заяа нь хичээх биз ээ.
Зарим мэддэг ч юм шиг энгийн зүйлүүд хэлэхгүй л бол анзаарагддаггүй. Манай багшийн ийн ярьсан нь надад их таалагдлаа.
"...Зам дээрхи тусгаарлах зурвасын үүрэг гүйцэтгэгч хашаануудыг ямар учраас барьсаныг ойлгохгүй юм. Магадгүй ЗГ-ын эсвэл ИХ-ын нэг нөхрийн хамсаатан нь хашааны бизнес эрхэлдэг байлгүй. Манайхан дүрэм журмыг огт тоодоггүй дураараа дургиж, дунд чөмгөөрөө жиргэдэг сонин улсууд. Будгийн наймаа ашигтай санагдвал замын ирмэг ч юм уу, тэмдгүүдийг эсвэл уулзварыг дүрэм ёсны өнгө үү, үгүй юү хамаагүй уран зураг зурж байгаа юм шиг л будаад хаячихна.
Энэ хашааг одоо юу гэж ойлгох вэ? Хүн бусад амьтнаас оюун ухаанаараа, сэтгэж чаддагаараа ялгарна. Гэтэл манайд яажийна, хүнийг мал шиг хашаанд хорьж, хүчээр журамд оруулжийна. Эсвэл манай ард иргэд үнэхээр тийм арга хэмжээ авахаас наашгүй юм болов уу?
Эндээс хүүхдүүд ямар сургамж авах вэ? Зам хөндлөн гарахдаа явган хүний гарцаар биш "хашааны завсраар" гардаг юм байна гэсэн ойлголт авна.
...Эцэг эхчүүд хүүхдээ машины урьд талын суудал дээр авч суудаг нь маш буруу. Хүн ямар нэгэн гэнэтийн аюул тулгарахад далд ухамсраасаа өгсөн дохионы дагуу хамгийн түрүүнд өөрийгөө хамгаалах арга хэмжээ авдаг учраас хүүхдээ хамгаалах биш, харин ч бамбай болгон барьчихна. Тийм учраас хүүхдээ хойд талын суудалд суулгаж байгаарай...
... Хаана ч байхгүй нэр томъёонууд бий болжээ. "Нүхэн гарц" ч гэнэ үү? Анх нэг сэтгүүлч нэрийг нь мэддэггүй болохоор зурагтаар нүхэн гарц гэж ярьсан юм байна л даа. Тэрнээс хойш бүгд тэгж нэрлэсэн, хотын дарга хүртэл ярилцлага өгөхдөө нүхэн гарц гэсэн зогсжийлээ. "Нүхэн гарц" биш "Явган хүний гарам" гэж нэрлэдэг юм шүү дээ..."
Багшийн энэ зөвлөгөөг л хүргэхийг зорилоо. Сонссон сайн зүйлээ бусдад хүргэх нь сонсогчийн үүрэг ээ гэж.

Бие дааж програмчлал сурах

Нэг уншигчийн маань бие дааж програмчлал сурах боломжтой юу, боломжтой бол ямар арга байж болох талаар зөвлөгөө өгөөч гэсэн хүсэлтийн дагуу энэ бичлэгээ тавилаа.

Програмчлалын хэл сурч, программист болох нь ямар нэгэн хэрэглээний програм дээр ажиллаж сурахаас өөр ойлголт бөгөөд суралцагчаас ихээхэн хүчин чармайлт, мэдлэг чадвар шаардна. Гэхдээ боломжгүй, хүршгүй оргил бас биш. Харин Билл Гэйтс (Microsoft) ч юм уу Ларри Пэйж эсвэл Сергей Брин (Google) шиг болох гэвэл бас өөр асуулт л даа. Магадгүй төрөлхийн техникийн онцгой ухаантай, тийм хүн болох гэж заяагдсан хүмүүс л тийм амжилтанд хүрдэг байх. Энэ нь үнэмшилтэй сонсогдож байгаа ч үнэн хэрэгтээ хүн болгон л цагаан цаас шиг төрдгийг хэн хэнгүй л мэднэ. Генээс хамаарч болдог ч Bill Gates өмгөөлөгчийн гэр бүлээс, Steve Jobs (Apple) улс төрчийн гэр бүлээс гаралтайг та бүхэн мэдэх биз ээ. Эндээс харахад хэний хэн болж төрснөөс үл хамааран IT-ийн хувьсгал хийх боломж хэн хэнд ч байгаа мэт горьдлого төрж байгаа биз? Тийм ээ, энэ бол боломжтой. Би түүнд итгэдэг.
Програмчлал сурахад зайшлгүй шаардлагатай зүйл бол математик. Хэрэв таны математикийн мэдлэг муу аваас программист болох боломж хаалттай л гэсэн үг. Учир нь програм бичихэд асуудлыг зөв томъёолж, шийдвэрлэх нь хамгийн гол асуудал юм. Дараагийн мэдэх ёстой зүйл бол мэдээж англи хэл. Монгол хэл дээр бичигдсэн програмчлал, IT-ын ном, сурах бичиг, материал маш ховор учраас англи хэл дээрхи материал ашиглахаас өөр гарцгүй. Англи хэлийг хэр зэрэг сайн мэдэх нь таны мэдлэгт төдий чинээ тус нэмэр болдог нь тодорхой. Гэвч ядаж л Гүүглээс англиар асууж чаддаг түвшний англи хэлтэй байхад програмчлалын хэлнүүдйиг судалж сурахад асуудалгүй. Хамгийн гол нь IT-ийн салбар нь бусад салбарыг бодвол сонирхолтой бас хөгжилтэй.
Бие дааж судлахад илүү их зүйл толгойдоо бат хоногшиж үлддэг ч анхан шатны мэдлэгийг багшийн тусламжтайгаар олж авах нь цаг хугацааны хувьд хэмнэлттэйгээс гадна ихээхэн үр дүнтэй байдаг. Надад тохиолдож байсан л даа. (Хэдэн долоо хоног судалж учрыг нь олоогүй зүйлийг хоёрхон цаг заалгахад мэдэж авч байсан удаа.)
Програмчлал сурах алхмуудыг дараалуулан бичвэл:
- Математик - Англи хэл - Алгоритмчлал - Доод түвшний програмчлалын хэл(Pascal, C/C++ дээр бодлого бодох) - Дээд түвшний програмчлалын хэл/технологи(Java, C#, VB, PHP, Өгөгдлийн сан удирдах системүүд: MySQL, MS SQL, Oracle г.м)
Энэ миний хувийн бодол л доо. Гэхдээ олон хүн үүнтэй санал нийлнэ. Юу хэлснээс хэн хэлсэн нь чухал байдаг боловч програмчлал сурахыг хүсэгч танд энэхүү зөвлөгөө маань хэрэг болно гэж найдаж байна.
Дараах сайтуудыг ашиглаарай
www.java2s.com
www.codeproject.com
www.roseindia.net
www.oracle.com
www.lynda.com
www.coder.mn

Saturday, September 24, 2011

SELECT, WHERE, AND, OR, ORDER BY

SQL SELECT Statement - SQL SELECT үйлдэл

SELECT үйлдэл нь Өгөгдлийн сангийн өгөгдлүүдийг сонгож харахад хэрэглэгдэнэ.
Үр дүн нь үр дүнгийн хүснэгтэнд хадгалагдах бөгөөд түүнийг result-set (Үр дүнгийн олонлог) гэж нэрлэдэг.

Формат
1. SELECT баганы_нэр(-үүд) FROM хүснэгтийн_нэр
2. SELECT * FROM хүснэгтийн_нэр

Жишээ.
SELECT LastName, FirstName FROM Student

SELECT * FROM Student
* тавьсанаар хүснэгтийн бүх бичлэгийн харуулна.

SELECT DISTINCT үйлдэл

Хүснэгтэнд зарим баганууд давхардсан (ижил) утга агуулсан байдаг. Хэрэв тийм хүснэгтээс ялгаатай утгуудыг сонгож харах шаардлагатай бол DISTINCT үйлдлийг ашигладаг. (Distinct - Ялгаатай)

Формат
SELECT DISTINCT баганы_нэр(-үүд)
FROM хүснэгтийн_нэр

WHERE түлхүүр үг

WHERE түлхүүр үг нь бичлэг(өгөгдөл)-үүдийг тодорхой нөхцөлийн дагуу шүүж харуулна.

Формат
SELECT баганы_нэр(-үүд)
FROM хүснэгтийн_нэр
WHERE нөхцөл

Жишээлбэл, "Student" Хүснэгтээс "СБ-3-7" гэсэн хаягтай сурагчдыг сонгож харъя.
SELECT * FROM Student WHERE Address = 'СБ-3-7'

Текстэн болон огноон төрлийн утгын 2 талд нь дан кавычка('') тавигдана.

Жишээ. "Student" хүснэгт нь төрсөн огноо гэсэн огноон(Datetime) төрөлтэй баганатай байг. 1992.05.05-нд төрсөн оуютнуудыг харахдаа:
SELECT * FROM Student WHERE BirthDate = '1992.05.05'

WHERE үйлдэлтэй хамт хэрэглэгддэг операторууд

Sunday, September 18, 2011

SQL-ийн синтаксис

Өгөгдлийн сангийн хүснэгтүүд - Database Tables
Өгөгдлийн сан нь ихэнхдээ нэг болон хэд хэдэн хүснэгт агуулсан байдаг. Хүснэгт бүр нь нэртэй байна (Ж, "Student", "Book", г.м). Хүснэгт нь бичлэг(мөр)-үүд агуулдаг.
Жишээ. "Student" хүснэгт

ID

LastName

FirstName

Address

1

Дорж

Бат

БЗ-3-10

2

Дэлгэр

Дулмаа

СБ-3-7

3

Баасан

Солонго

СО-4-32


Дээрхи хүснэгт нь 3 мөр(бичлэг), 4 баганатай (ID, LastName, FirstName, Address) байна.

SQL үйлдлүүд - SQL Statements
Өгөгдлийн сан дээр ямарваа үзэгдлийг SQL үйлдлүүдийн тусламжтайгаар гүйцэтгэдэг. Жишээлбэл, дээрхи "Student" хүснэгтийн бүх өгөгдлийг харах үйлдэл нь дараах байдалтай байна.
SELECT * FROM Student

- SQL нь том жижиг үсэг ялгадаггүй (Not case sensitive)
Зарим өгөгдлийн сан удирдах систем дээр SQL үйлдлийн дараа ; (цэг таслал) тавихыг шаарддаг. Ж, MySQL. SQL SERVER, MS ACCESS-т шаардлагагүй.

DML ба DDL
SQL-ийг дотор нь DML(Data Manipulation Language - Өгөгдөл удирдах хэл), DDL(Data Definition Language - Өгөгдөл тодорохойлох хэл) гэж 2 ангилж болно.

Куэринүүд (Query) болон өөрчлөх, шинэчлэх коммандууд нь DML-д орно. Үүнд:
- SELECT - Өгөгдлийн сангаас өгөгдөл сонгож харуулах
- UPDATE - Өгөгдлийн сангийн өгөгдлүүдийг өөрчилж шинэчлэх
- DELETE - Өгөгдлийн сангаас өгөгдөл устгах
- INSERT INTO - Өгөгдлийн санд шинэ өгөгдөл оруулах

DDL нь өгөгдлийн сан, өгөгдлийн сангийн хүснэгт үүсгэх болон устгах, түүнчлэн индекс(түлхүүр) тодорхойлох, хүснэгтүүдийн хооронд холбоос үүсгэх
зэргээс бүрддэг. Хамгийн их хэрэглэгддэг DDL-үүд:
- CREATE DATABASE - шинэ өгөгдлийн сан үүсгэх
- ALTER DATABASE - Үүсгэгдсэн өгөгдлийн санг өөрчилж засах
- CREATE TABLE - Шинэ хүснэгт үүсгэх
- ALTER TABLE - Үүсгэгдсэн хүснэгтийг өөрчилж засах
- DROP TABLE - Хүснэгт устгах
- CREATE INDEX - Индекс үүсгэх
- DROP INDEX - Индекс устгах

Thursday, September 8, 2011

SQL(Structured Query Language)-ийн тухай


SQL гэж юу вэ?
- SQL - Structured Query Language(Structured - Бүтэцлэгдсэн, Query - Асуулт, Language - Хэл)
- SQL нь өгөгдлийн сантай (Database) харьцдаг, мөн түүнийг удирддаг.
- SQL нь ANSI(American National Standards Institute - Америкийн Үндэсний Стандартын Хүрээлэн) стандарттай

SQL-ийн боломжууд
- Куери биелүүлэх (Execute queries)
- Өгөгдлийн сангийн өгөгдлүүдийг харах (Retrieve data)
- Өгөгдлийн санд өгөгдөл оруулах (Insert records)
- Өгөгдлийн сангийн өгөгдлүүдийг өөрчилж, шинэчлэх (Update records)
- Өгөгдлийн сангаас өгөгдөл устгах (Delete records)
- Шинэ өгөгдлийн сан үүсгэх (Create new databases)
- Өгөгдлийн сан дотор шинэ Хүснэгт үүсгэх (Create new tables)
- Өгөгдлийн сан дотор Stored Procedure үүсгэх (Create Stored Procedures)
- Өгөгдлийн сан дотор View үүсгэх (Create Views)
- Хүснэгт, Процедур болон Виеунүүдэд тусгай эрх олгох. (Set permissions)

Дараа дараагийн бичлэгээр SQL-ийг ашиглах, MySQL, SQL Server, Oracle зэрэг өгөгдлийн сан удирдах систем дээр ажиллах, өгөгдлийг удирдах талаар хүргэх болно. SQL нь хэдийгээр ANSI стандарттай ч олон ялгаатай хувилбаруудтай. Гэхдээ үндсэн коммандууд нь (Ж: SELECT, UPDATE, DELETE, INSERT, WHERE) хоорондоо адилхан болон их төсөөтэй байдаг.