مەبەست لە MySQL سیستەمێکی بەڕێوەبردنی بنکەدراوەی پێکەوەبەستراوە (RDBMS) کە کورتکراوەى Relational DataBase Management System. کە پتر لە ١١ ملیۆن جار دامەزراوە لەسەر ڕاژەکارەکانی جیهان.
MySQL کە بە مای ئێس کیو ئیڵ (یان مای سیکوێل) ئەخوێنرێتەوەو یەکێکە لە بەربڵاوترین بەڕێوەبەرایەتی بنکەدراوەی ژێدەرکراوە (open source)، هاوکات بەشێوەی بازرگانیش ئامادەکراوە. MySQL لەسەر بنەمای SQLـەکە کورتکراوەی (Structured Query Language)ـە. MySQL زۆر بەربڵاوەو بەشێکە لە LAMP کە M لەوێدا مەبەست لێی MySQL ـە. ئەم بنکەی دراوەیە بەکاردەهێنرێت لەگەڵ زۆر لە زمانەکانی پرۆگرامکردن بۆ نموونە وەک PHP , Perl ...هتد.
MySQL لەلایەن کۆمپانیایەکی سویدی هاتۆتە بەرهەم بەناوی MySQL AB، کە ئەمیش لە ۲٦ـی مانگی شوباتی ۲۰۰۸ـدا کڕدرا لەلایەن کۆمپانیای زلهێزی Sun Microsystems. لە نیسانی ٢٠٠٩ دا کۆمپانیای ئۆراکل Oracle Corporation کە خاوەنی گەورەترین بنکەدراوەی بازرگانییە، کۆمپانیای سەنی Sun Microsystems کڕی، نەخشەی کارەکانی ئۆراکل تاکوو ئەمڕۆ نادیارە، کە لەزۆر شوێندا پێشەواکانی ژێدەرکراوە نیگەرانی خۆیان دەربڕیوە و دەخوازن ئۆراکل دەست لە MySQL هەڵبگرێت.
MySQL بەزۆری لە پرۆژە و نەرمەکاڵا سەربەستەکاندا بەکاربراوە، وەکوو Wordpress, phpBB ..هیتر، جگەلەوەش لە پرۆژەکانی ویکیپیدیا و گووگل دا پشتی پێبەستراوە.
سەرەتایەک بۆ MySQL
MySQL یەکێکە لە هەرە خێراترین/ئاسان بەکارهێنانترین سیستەمی بەڕێوەبردنی بنکەی دراوە کە بەکاردەهێنرێت/بەکارهێنراوە لە بوارە بازرگانییە بچووک/گەورەکاندا. MySQL زۆر بەناوبانگ بووە بەهۆی چەندین هۆوە لەوانە:
١. سەرچاوەیەکی کراوەیەو سەرەڕای بەهێزی پێویست بە هیچ نرخێک ناکات بۆ بەکارهێنانی.
٢. دەتوانریت دابمەزرێت لەسەر زۆر لە سیستەمەکارگێڕییەکان وە هەروەها لەگەڵ زمانەکانی وەک PHP, PERL, C, C++, JAVA کاردەکات.
٣. کارکردنی زۆر خێرایەو لەگەڵ بڕێکی زۆری زانیاری کارکردنی بەشێوەیەکی باشە.
٤. زۆر هاوڕێیە لەگەڵ پهپ (php)ـدا، کە زمانێکی بەهێزی بواری وێب داڕشتنە.
٥. MySQL پشتیوانی دەکات لە بنکەی دراوەی گەورەو دەتوانێت تاوەکو ٥٠ میلیۆن دێڕ (row) یان زیاتر لە خۆ بگرێت لە خشتەیەک (table)ـدا.
چۆنیەتی دامەزراندنی MySQL
چۆنیەتی دامەزراندنی MySQL زۆر ئاسانەو هیچ قورسیەکی تێدا نییە چ لەسەر دابەشکردنەکانی لینوکس بێت یان سیستەمی کارگێڕی ویندۆز. لەم بەستەرەدا کرتەم بکە دەتوانی دوایین وەشانی MySQL دابگریت بۆ هەریەک لە سیستەمە کارگێرییەکانی کە بەکاری دەبەیت.
بەڵام بۆ لینوکس وەک باس کرا کە زۆر ئاسانە، ئەگەر LAMPـت دامەزراندبێت ئەوە بەدڵنیاییەوە MySQLـیشت داگرتووە. لەژێر بابەتی LAMPـدا باسی چۆنیەتی دامەزراندنی MySQL باس کراوە.
چ وەشانێک بەکاردەبەیت؟
لەدوای دامەزراندنی MySQL دەتوانرێت بزانرێت کە چ وەشانێک بەکاردەهێنیت لە ئێستادا، لە تێرمیناڵ بنووسە:
root@localhost:~$ mysqladmin --version
ئەنجامەکەی بەم شێوەیە دەبینیت:
mysqladmin Ver 8.42 Distrib 5.1.41, for debian-linux-gnu on i486
هاوکات دەتوانیت لە ڕێگەی یارمەتی ڕاستەوخۆوە زانیاریی تر لەسەر MySQL وەربگریت لە سیستەمەکەتدا:
shell> mysql --help
پەیوەندی گرتن بە MySQL ـەوە
بۆ بەکارهێنانی MySQLو پەیوەندی گرتن پێیەوە لە تێرمیناڵ بنووسەو پاشان تێپەڕەووشە بنووسە:
root@localhost:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 5.1.41-3 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
پاش ئەوەی ئەمە دەبینیت لە کۆتاییدا mysql>
کەواتە بەسەرکەوتووی پەیوەندی گرتنەکەت جێ بەجێ بووە. دوای ئەوە دەست دەکەیت بە هەنگاوەکانی تر کە لەدواییدا باسی دەکرێت لێرەدا.
بۆئەوەی کۆتایی بە پەیوەندیگرتنەکە بهێنیت بە MySQLـەوە ئەوە تەنها بنووسە exit:
mysql> exit Bye
کارکردنی MySQL بەشێوەی خۆکار
بۆ ئەوەی کە MySQL بکەوێتە کار بە شێوەی خۆکار لەکاتی داگیرساندنەوەی سیستەمەکەدا ئەوە ئەمە لە تێرمیناڵ بنووسە:
/etc/init.d/mysqld start
سازکردنی MySQL
ڕێکخستن و سازدانی هەڵسوڕانی MySQL لە پەڕگەی
/etc/mysql/my.cnf
ـدا پێناسکراون.
شوێنی هەڵگرتنی بنکەدراوەکانی
بەشێوەیەکی بنەڕەتی MySQL بنکەدراوەکانی لە بوخچەی /var/lib/mysql دا پاشەکەوت دەکات(سیستەمی کارپێکردنی لینوکس و هاوشێوەکانی)، گەر بتەوێت بنکەدراوەکانی خۆت لە شوێنی تردا هەڵبگریت، ئەوا دەبێت لە پەڕگەی سازکردندا ئەو ڕێڕەوە بگۆڕیت.
datadir = /var/lib/mysql
دروست کردنی (create) بنکەی دراوە لە MySQL
بۆئەوەی بنکەیەکی دراوەی نوێ درووست بکەی پێویستت بەوەیە کە mysqladmin بەکارببەیت کە دەسەڵاتیکی تایبەتە, لێرەدا من بنکەیەکەی دراوەم درووست کردوە بەناوی chawgـەوە:
root@localhost:~$ mysqladmin -u root -p create chawg
Enter password:
یاخود دەتوانیت بەڕێگایەکی تر بنکەی دراوە درووست بکەیت ئەویش پاش پەیوەندی گرتن بە MySQLـەوە ڕاستەوخۆ بنووسە:
mysql> create database chawg; Query OK, 1 row affected (0.00 sec)
پاش پەیوەندی گرتن بە MySQLـەوە دەتوانی بنووسیت show databases تاوەکو ئەو بنکەی دراوەیە ببینیت کە درووست کراوە:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | chawg | | mysql | | phpmyadmin | +--------------------+ 4 rows in set (0.17 sec) mysql>
سڕینەوە (فڕێدان)ـی بنکەی دراوە لە MySQL
بۆ فڕێدانی (drop) بنکەیەکی دراوە ئەوە تەنها لەجیاتی create بنووسە drop وەک لە نموونەی پێشوودا نووسراوە، بەواتای:
root@localhost:~$ mysqladmin -u root -p drop chawg
Enter password:
دیاریکردنی (selection) بنکەی دراوە لە MySQL
لە خاڵی پێشوودا ئەوە خرایەڕوو کە چۆن هەموو بنکەی دراوەکان پیشان دەدرێت لە MySQLـدا، ئێستا پێویستمان بەوەیە کە ئەو بنکەی دراوەی درووستمان کردووە دەست بکەین بەکارکردن لەسەری، چۆن؟ ئەوە بنووسە:
mysql> use chawg; Database changed mysql>
use chawg بەمانای ئەوەی کە ئەمانەوێت بنکەی دراوەی chawg بەکارببەین. بۆئەوەی کە بنکەی دراوەیەکی تر بەکار ببەیتو لە chawg بێیتە دەرەوە ئەوە تەنها لە جیاتی chawg ناوی بنکەی دراوەی دیاری کراو بنووسە کە دەتەوێت بەکاری ببەیت.
جۆری داتا (دراوە) - Data Types
بەگشتی هەریەک لەوانەی کە لە خوارەوە خراوەتەڕوو بریتین لەو جۆرە داتایانەی (data types) کە بەزۆری بەکاردەهێنرێن لەکاتی درووستکردنی هەر بنکەیەکی دراوەدا.
- TEXT TYPES
CHAR( ) A fixed section from 0 to 255 characters long. VARCHAR( ) A variable section from 0 to 255 characters long. TINYTEXT A string with a maximum length of 255 characters. TEXT A string with a maximum length of 65535 characters. BLOB A string with a maximum length of 65535 characters. MEDIUMTEXT A string with a maximum length of 16777215 characters. MEDIUMBLOB A string with a maximum length of 16777215 characters. LONGTEXT A string with a maximum length of 4294967295 characters. LONGBLOB A string with a maximum length of 4294967295 characters.
- NUMBER TYPES
TINYINT( ) -128 to 127 normal 0 to 255 UNSIGNED. SMALLINT( ) -32768 to 32767 normal 0 to 65535 UNSIGNED. MEDIUMINT( ) -8388608 to 8388607 normal 0 to 16777215 UNSIGNED. INT( ) -2147483648 to 2147483647 normal 0 to 4294967295 UNSIGNED. BIGINT( ) -9223372036854775808 to 9223372036854775807 normal 0 to 18446744073709551615 UNSIGNED. FLOAT A small number with a floating decimal point. DOUBLE( , ) A large number with a floating decimal point. DECIMAL( , ) A DOUBLE stored as a string , allowing for a fixed decimal point.
- DATE TYPES
DATE YYYY-MM-DD. DATETIME YYYY-MM-DD HH:MM:SS. TIMESTAMP YYYYMMDDHHMMSS. TIME HH:MM:SS.
- MISC TYPES
ENUM ( ) Short for ENUMERATION which means that each column may have one of a specified possible values. SET Similar to ENUM except each column may have more than one of the specified possible values
درووست کردنی خشتە - Create tables
بۆ درووستکردنی خشتە لە MySQLـدا بەم شێوەیە ئەبێت بنووسرێت:
CREATE TABLE nawi_xishteke ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... );
بۆ نموونە ئێستا خشتەیەک درووست دەکەین کە پێک بێت لە دەستەی بەڕێوەبەرانی چاوگ، ناوی خشتەکە ئەنێین بەرپرسان (berpirsan):
CREATE TABLE Berpirsan ( B_Id int, Naw VARCHAR(30) NOT NULL, Naznaw VARCHAR(30) NOT NULL, Nawnishan VARCHAR(100), SHAR VARCHAR(100) );
سڕینەوەی خشتە - Drop tables
سڕینەوەی خشتەیەک لە MySQLـدا زۆر ئاسانەو بەم شێوەیە دەکرێت:
DROP TABLE nawi_xishteke;
بۆ نموونە ئەو خشتەیەی پێشوو (Berpirsan) گەر بمانەوێت بیسڕینەوە ئەوە دەنووسین:
root@localhost:~$ mysqladmin -u root -p
Enter password:
mysql> use chawg;
Database changed
mysql> DROP TABLE Berpirsan
Query OK, 0 rows affected (0.8 sec)
mysql>
تێبینی: ئەوەی کەلەسەرەوە نووسراوە هەموو ئەو کردارانە دووبارە کراوەتەوە کە چۆن سەرەتا پەیوەندی دەگریت بە MySQLـەوەو پاشان بنکەی دراوەی چاوگ (chawg) دەست نیشان دەکەین چونکە ئێمە خشتەی (Berpirsan)ـانمان لەناو بنکەی دراوەی چاوگ (chawg) درووست کردووە.
تێخستنی داوا - Insert Query
مەبەست لە تێخستنی داوا Query ئەوەیە کە داتاکان بخەیتە ناو خشتەکەی کە درووست کراوە، بۆ ئەم مەبەستەش پێویست بەوە دەکات کە فەرمانی INSERT INTO بنوسیت، کڵێشەی تێخستنی دراوە (data)ـکان لە mysqlـدا بەم شێوەیە دەبێت:
INSERT INTO nawi_xishteke ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
مەبەست لە field بریتییە لە سەردێڕی خشتەکە بەواتای ئەوەی وەک لە درووست کردنی خشتە باسمان کردو خشتەیەکمان درووست کرد و لەوێدا هەریەک لە Naw, Naznaw, Nawnishan پێیان دەوترێ field. مەبەست لە Value ئەوەیە کە نرخ دابنێین بۆ هەریەک لە fieldـەکان کە هەن لە خشتەکەدا.
هەموو ئەوانەی باسمان کرد لەسەرەوە لەو نموونەی خوارەوەدا دەیخەینە ڕوو:
mysql> show tables;
+-----------------+
| Tables_in_chawg |
+-----------------+
| Berpirsan |
+-----------------+
1 row in set (0.00 sec)
mysql> insert into Berpirsan
-> (B_Id, Naw, Naznaw, Nawnishan, Shar)
-> values
-> ("10345", "Kani", "Kurde", "Bextyari 59", "Suleymani");
Query OK, 1 row affected (0.00 sec)
mysql> select * from Berpirsan;
+-------+------+--------+-------------+-----------+
| B_Id | Naw | Naznaw | Nawnishan | Shar |
+-------+------+--------+-------------+-----------+
| 10345 | Kani | Kurde | Bextyari 59 | Suleymani |
+-------+------+--------+-------------+-----------+
1 row in set (0.00 sec)
دیاریکردنی داوا - Select Query
پاش ئەوەی چەند زانیارییەکی تر زیادکرد بۆ خشتەکەی کە هەیە، ئێستا لێرە ئەوە پیشان ئەدەین کە چۆن داوایەک دیاری ئەکەین لە خشتەکەدا. بۆ نموونە دەمانەوێت هەموو زانیارییەکانی ناو خشتەی Berpirsan بهینینە بەردەست و پیشانی بدەین، ئەوە پێویستە ئەمە بنووسریت:
mysql> select * from Berpirsan;
/* Encamî ewey serewe bem şêweye debêt */
+-------+--------+--------+-------------+------------+
| B_Id | Naw | Naznaw | Nawnishan | Shar |
+-------+--------+--------+-------------+------------+
| 10346 | Kani | Kurde | Bextyari 59 | Suleymani |
| 548 | Arin | Nari | Shorsh | Chemchemal |
| 1223 | Karwan | Geo | Rizgari 3 | Suleymani |
+-------+--------+--------+-------------+------------+
3 rows in set (0.00 sec)
نموونەیەکەی تر: ئەگەر بخوازرێت تەنها زانیارییەکانی کە لەسەر Arin هەیە بدۆزینەوە ئەوە بەم شێوەیە ئەبێت:
mysql> SELECT * FROM Berpirsan
-> WHERE Naw='Arin';
+------+------+--------+-----------+------------+
| B_Id | Naw | Naznaw | Nawnishan | Shar |
+------+------+--------+-----------+------------+
| 548 | Arin | Nari | Shorsh | Chemchemal |
+------+------+--------+-----------+------------+
1 row in set (0.02 sec)
mysql>
تێبینی: لەوێدا ئێمە Whereـمان بەکارهێناوە کە لەدواییدا باسی دەکەین.
The WHERE Clause
Where لە MySQLـدا بەکاردێت بۆ ئەوەی ئەوە دەست نیشان بکەینو بیهێنینە دەرەوە لە خشتەیەک یان زیاتر کە ئەمانەوێت، زیاتر لەو نموونەی خوارەوەدا دەخەینەڕوو.
کڵێشەی بەکارهێنانی WHERE بەم شێوەیەیە:
SELECT * FROM nawî xişteke WHERE nawî stûnî operator value
مەبەست لە ناوی ستونی لەوێدا column_nameـە.