Mysql پرطرفدارترین سیستم پایگاه داده متن باز است.
Mysql چیست؟
· سیستم پایگاه داده متن باز
· مانند بیشتر سیستم های مدیریت پایگاه داده مدرن مبتنی بر مدل رابطه ای، RDBMS، است.
· روی لینوکس، ویندوز، Netware، AIX و غیره اجرا می شود.
· با زبانهایی مانند PHP به اسانی در دسترس است.
چرا Mysql؟
· پایگاه داده متن باز است.
· کارایی و درجه اطمینان بالا
· سهولت استفاده
· دسترس پذیری زیاد(high-availability)
· طراحی برنامه جامع
· سهولت مدیریت
· هزینه خیلی پایین خرید
نحوه دریافت
· برای دانلود به سایت رسمی ان mysql.com مراجعه کنید
اتصال به پایگاه داده
در این بخش با تابع mysql_connect() آشنا می شویم. از این تابع برای اتصال به پایگاه داده Mysql استفاده می شود.
ساختار تابع:
| 1 | mysql_connect(host name, user name, password) |
mysql_connect() در صورت موفقیت true را بر می گرداند در غیر این صورت false را. مثال:
| 01 | <? |
| 02 | //the example of MySQL database connection |
| 03 | //connect.php |
| 04 | $continued = mysql_connect("localhost","root","admin"); |
| 05 | if ($continued) { |
| 06 | echo ("Connection is succeed") |
| 07 | } else { |
| 08 | echo ("Connection is fail") |
ساخت پایگاه داده
از تابع Mysql_create_db() برای ساخت پایگاه داده استفاده می کنیم. معمولا، پایگاه داده را در برنامه استفاده می کنیم و دارای یک یا چند جدول است.
ساختار Mysql_create_db()
| 1 | mysql_create_db("database") |
فایلی به نام Create.php داخل پوشه www بسازید و کد زیر را وارد کنید:
| 01 | <? |
| 02 | //the example of making MySQL database |
| 03 | //create.php |
| 04 | $continued = mysql_connect("localhost","root","admin"); |
| 05 | if($continued){ |
| 06 | echo("Connection is succeed"); |
| 07 | }else{ |
| 08 | echo("Connection is fail"); |
| 09 | } |
| 10 | $make = mysql_create_db("data_root"); |
| 11 | if($make){ |
| 12 | echo("<br><br>Database data_root succeeds in making"); |
| 13 | }else{ |
| 14 | echo("<br><br>Database data_root fails in making"); |
ساخت جدول
PHP تابع مخصوصی برای ساخت جدول با فیلدهای معین ندارد. بنابراین برای ساخت جدول داده، از دستور برنامه پایگاه داده مانند MySQL استفاده می شود، این دستور با تابع mysql_query() اجرا می شود.
برای مثال، پایگاه داده Employee برای یک دفتر را ساخته، یک جدول با ستون های employee number، employee name و employee address می سازیم.
فایلی به نام Create_table.php داخل www بسازید. کد زیر را در ان کپی کنید:
| 01 | <? |
| 02 | //the example of making MySQL database table |
| 03 | //create_table.php |
| 04 | $continued = mysql_connect("localhost","root","admin"); |
| 05 | if($continued){ |
| 06 | echo("Connection is succeed"); |
| 07 | }else{ |
| 08 | echo("Connection is fail"); |
| 09 | } |
| 10 | $make = mysql_create_db("employees"); |
| 11 | if($make){ |
| 12 | echo("<br><br>Employees database succeeds in making"); |
| 13 | }else{ |
| 14 | echo("<br><br>Employees database fails in making"); |
| 15 | } |
| 16 | $order1 = "CREATE TABLE data_employees |
| 17 | ( |
| 18 | employees_number int(10)AUTO_INCREMENT PRIMARY KEY, |
| 19 | name char(100), |
| 20 | address varchar(255) |
| 21 | )"; |
| 22 | $make_table = mysql_db_query("employees",$order1); |
| 23 | if($make_table){ |
| 24 | echo("<br><br>Table data_employees succeeds in making"); |
| 25 | }else{ |
| 26 | echo("<br><br>Table data_employees fails in making"); |
نوع داده فیلد ها
نوع داده عددی
| نوع داده | Gyration assess |
| TINYINT | (-128) - 127 or 0 - 255 |
| SMALLINT | (-32768) - 32767 or 0 - 65535 |
| MEDIUMINT | (-8388608) - 8388607 or 0 - 16777215 |
| INT | (-2147683648) - 2147683647 or 0 - 4294967295 |
| BIGINT | (-9223372036854775808) - 9223372036854775807 or 0 - 18446744073709551615 |
| FLOAT(X) | (-3.402823466E+38) - (-1.175494351E-38), 0, and 1.175494351E-38 - 3.402823466E+38. |
| FLOAT | The same as above |
| DOUBLE | (-1.7976931348623157E+308) - (-2.2250738585072014E-308), 0, and 2.2250738585072014E-308 - 1.7976931348623157E+308 |
میزان حافظه مورد نیاز متغیر ها در جدول زیر امده است:
| نوع داده | حافظه مورد نیاز |
| TINYINT | 1 byte |
| SMALLINT | 2 bytes |
| MEDIUMINT | 3 bytes |
| INT | 4 bytes |
| INTEGER | 4 bytes |
| BIGINT | 8 bytes |
| FLOAT(X) | 4 ifX <=24 or 8 if 25 <=X <=53 |
| FLOAT | 4 bytes |
| DOUBLE | 8 bytes |
| DOUBLE PRECISION | 8 bytes |
| REAL | 8 bytes |
| DECIMAL(M,D) | M+2 bytes if D>0, M+1 bytes if D=0(D+2, if M<d)< td=""></d)<> |
| NUMERIC(M,D) | M+2 bytes if D>0, M+1 bytes if D=0(D+2, if M<d)< td=""></d)<> |
نوع داده رشته ای
| نوع داده | Gyration assess |
| CHAR | 1-255 character |
| VARCHAR | 1-255 character |
| TINYLOB, TINYTEXT | 1-255 character |
| BLOB, TEXT | 1-65535 character |
| MEDIUMLOB, MEDIUMTEXT | 1-16777215 character |
| LONGLOB, LONGTEXT | 1-4294967295 character |
| ENUM('element1','element2',...) | Maximal 65535 character |
| SET('element1','element2',...) | Maximal 64 element |
میزان حافظه مورد نیاز:
| نوع داده | حافظه مورد نیاز |
| CHAR(M) | M bytes, 1 <=M <=255 |
| VARCHAR(M) | L+1 bytes, L <=M and 1 <=M <=255 |
| TINYLOB, TINYTEXT | L+1 bytes, L <2^8 |
| BLOB, TEXT | L+2 bytes, L<2^16 |
| MEDIUMLOB, MEDIUMTEXT | L+3 bytes, L<2^24 |
| LONGBLOB, LONGTEXT | L+4 bytes, L<2^32 |
| ENUM('element1','element2',...) | 1 or 2 bytes, depend to the number of element |
| SET('element1','element2',...) | 1, 2, 3, 4 or 8 bytes, depend to the number of element |
نوع داده تاریخ
| نوع داده | Gyration assess |
| DATETIME | '1000-01-01 00:00:00' to '9999-12-31 23:59:59' |
| DATE | '1000-01-01' to '9999-12-31' |
| TIMESTAMP | '1970-01-01 00:00:00' - 2037 |
| TIME | '-838:59:59' to '838:59:59' |
| YEAR | 1901 - 2155 |
میزان حافظه مورد نیاز:
| نوع داده | حافظه مورد نیاز |
| DATE | 3 bytes |
| DATETIME | 8 bytes |
| TIMESTAMP | 4 bytes |
| TIME | 3 bytes |
| YEAR | 1 bytes |
درخواست های Mysql
PHP برای کار با داده پایگاه داده تابع خاصی را ارائه نداده است. بنابراین باید از دستورات Mysql استفاده کرد. برای انجام عملیات های داده ای این کارها را باید انجام دهید:
1. به پایگاه داده متصل شوید.
2. با استفاده از تابع mysql_query() دستور Mysql را اجرا کنید. با استفاده از توابع mysql_fetch_array()، mysql_fetch_row() و mysql_num_rows نتیجه را پردازش کنید.
افزودن داده
برای افزودن داده به پایگاه داده از این دستور استفاده کنید:
INSERT INTO nama_table (field1,field2,...) VALUES ('data1','data2',...)
اگر پارامتر های فیلد مشخص نشود، تعداد داده های ورودی باید با تعداد ستون های جدول یکی باشد.
مثال
| 01 | <? |
| 02 | //the example of inserting data |
| 03 | //data_insert.php |
| 04 | mysql_connect("localhost","root","admin");//database connection |
| 05 | mysql_select_db("employees"); |
| 06 | $order = "INSERT INTO data_employees |
| 07 | (name, address) |
| 08 | VALUES |
| 09 | ('H.R. Dian', |
| 10 | 'Jl. Raya Baru KOTABARU')"; |
| 11 | //inserting data order |
| 12 | |
| 13 | //declare in the order variable |
| 14 | $result = mysql_query($order); |
| 15 | if($result){ |
| 16 | echo("<br>Input data is succeed"); |
| 17 | }else{ |
| 18 | echo("<br>Input data is fail"); |
تابع mysql_fetch_row()
تابع mysql_fetch_row() داده را از متغیر $result خط به خط می گیرد. اولین خروجی بالاترین خط است. داده ای که این تابع بر می گرداند به صورت آرایه است به طوری که عناصر آرایه همان فیلد های جدول داده هستند.
تابع mysql_fetch_array()
علاوه بر تابع mysql_fetch_row()، می توان از تابع mysql_fetch_array() هم استفاده کرد. همانند تابع mysql_fetch_row() این تابع هم یک خط داده را می خواند.
تفاوت دو تابع در این است که نتایج بازگشتی با mysql_fetch_array() به صورت آرایه associative است.
ویرایش داده
برای ویرایش داده از دستور زیر می توان استفاده کرد:
| 1 | UPDATE name_table SET field1=new_value, field2=new_value, ... |
| 2 | WHERE condition1,condition2, ... |
حذف داده
برای حذف داده از دستور زیر استفاده می شود:
DELETE FROM name_table WHERE condition1,condition2,...
اضافه کردن ستون به جدول
با دستور زیر می توان ستون هایی را به جدول اضافه کرد:
ALTER TABLE table_name ADD field_name field_type field_attribute
ویرایش ستون ها جدول
گاهی نیاز است مثلا ستون از نوع char به varchar تبدیل شود و یا طول ستونی با اندازه 50 باید به 100 تغییر کند. برای این منظور از دستور زیر استفاده می شود:
ALTER TABLE table_name MODIFY field_name field_type field_attribute
مثال: نوع داده ستون position را تغییر می دهیم:
| 01 | <? |
| 02 | //the example of changing MySQL database field table |
| 05 | //database connection |
| 06 | mysql_connect("localhost","root","admin"); |
| 07 | mysql_select_db("employees"); |
| 08 | |
| 09 | $order1 = "ALTER TABLE data_employees MODIFY position char(50)"; |
| 10 | $add_field = mysql_db_query("employees", $order1); |
| 11 | if ($add_field){ |
| 12 | echo ("<br><br>Field position succeeds in adding"); |
| 13 | }else{ |
| 14 | echo ("<br><br>Field position fails in adding"); |
حذف ستون از جدول
برای حذف ستون از جدول:
ALTER TABLE table_name MODIFY field_name field_type field_attribute
برای مثال ستون position را حذف می کنیم:
| 01 | <? |
| 02 | //the example of deleting MySQL database field table |
| 03 | //delete_field.php |
| 04 | mysql_connect("localhost","root","admin");//database connection |
| 05 | mysql_select_db("employees"); |
| 06 | $order1 = "ALTER TABLE data_employees DROP position"; |
| 07 | $add_field = mysql_db_query("employees", $order1); |
| 08 | if ($add_field){ |
| 09 | echo ("<br><br>Field position succeeds in deleting"); |
| 10 | }else{ |
| 11 | echo ("<br><br>Field position fails in deleting"); |
| 12 | } |