آموزش mysql

برنامه نویس

عضو سایت
MySQL چیست؟

Mysql از محبوب ترین سیستم های مدیریت پایگاه داده open source است که رایگان است و به خاطر عملکرد، قابلیت اطمینان و سهولت استفاده به شهرت رسیده است.


بانک اطلاعاتی(database) محل ذخیره سازی اطلاعات است. معمولا اطلاعات به دسته های مرتبطی که در مدمنظمی ذخیره شده اند سازماندهی شده اند،که در صورت لزوم میتوان آنها را اصلاح،به روز رسانی،جستجو، بازیابی و یا حذف کرد.

Mysql از محبوب ترین سیستم های مدیریت پایگاه داده open source است که رایگان است و به خاطر عملکرد، قابلیت اطمینان و سهولت استفاده به شهرت رسیده است.

آیا شما تا به حال به یوتیوب، ویکیپدیا، فلیکر یا فیس بوک مراجعه کرده اید؟ آیا به این فکر کرده اید که چگونه این وب سایت های غول پیکر تمام داده ها، کاربران و غیره.. را مدیریت میکنند؟ اینها و هزاران وب سایت دیگر از MYSQL استفاده میکنند.

پایگاه داده MYSQL از یک یا چند جدول از داده های سازمان یافته که میتوانند با هم در ارتباط باشند، ساخته شده است.

اگر شما با صفحات گسترده Excel/Openoffice و یا جداول Html، که در آنها در بالای هر ستون ردیفی از داده ها جای گرفته است آشنا هستید، پس شما در حال حاضر بر مفهوم پایگاه داده نیمه مسلط هستید! و اگر نه، با ما باشید در مقالات بعدی ما توضیح خواهیم داد!

MySql به طور رسمی بصورت " my-ess-cue-el" تلفظ می شود، ولی گاهی بصورت " my sequel" و یا تغییرات دیگری نیز خوانده میشود.
 

برنامه نویس

عضو سایت
مبانی کار با mysql

آشنایی با مبانی کار با MYSQL شامل طریقه اتصال به MYSQL, ایجاد پایگاه داده و نیز ایجاد و حذف جدول در MYSQL برای کسانی که میخواهند در php با پایگاه داده کار کنند لازم است


در این بخش سعی کرده ایم که اصول و مبانی کار با MYSQL را به صورتی ساده و قابل فهم براي کسانی که تازه شروع به کار با پایگاه هاي داده کرده اند، ذکر کنیم.

PHP بصورت از پیش تعریف شده، اکثر پایگاه هاي داده ها را پشتیبانی می کند، mSQL ,FilePro ,dBase MySQL ,Oracle, PostgreSQL ,Sybase . اگر شما بخواهید از پایگا ه هاي داده اي که به صورت از پیش تعریف شده پشتیبانی نمی شوند، استفاده کنید (مانند Access و یا SQL Server) باید از توابع PHP ODBC(Open DateBase Connectivity) به همراه راه اندازهاي پایگاه داده (ODBC Drivers) استفاده کنید.

MYSQL یکی از انواع سرویس دهنده هاي پایگاه داده است که با وجود اینکه نسبت به سایر DBMS های موجود زیاد قدرتمند نمیباشد، اما به علت قیمت و عملکرد مناسب آن، مورد استفاده گسترده قرار می گیرد.

طریقه اتصال به MySQL
قبل از شروع هر کاري باید به MySQL متصل شویم. براي این کار از دستور زیر استفاده میکنیم:

( در مثالها به جای() از علامتهای <> استفاده کنید)

کد:
(?php
$Conn=mysql_connect($Location,$Username,$Password);
?)


تابع mysql_connect داراي سه آرگومان می باشد. آرگومان اول ، میزبان (Host) را مشخص می کند (منظور از هاست ،کامپیوتری است که Mysql روی آن نصب شده است و تمام داده ها آنجا ذخیره میشوند. در برنامه هایی که ما مینویسیم معمولا localhost است) . دو آرگومان بعدي، نام کاربري و کد رمز را براي اتصال به پایگاه داده، ارسال می کنند. در صورتی که اتصال با شکست مواجه شود، پیغام خطایی در browser نشان داده می شود.

با استفاده از دستور زیر بانک اطلاعاتی مورد نظر انتخاب خواهد شد و از این پس کارهاي شما همه بر روي این بانک انجام خواهد گرفت. در صورتی که بانک مورد نظر پیدا نشد، پیغام خطایی نشان داده می شود.


کد:
(?php
  mysql_select_db($database,$Conn);
?)


ایجاد یک بانک اطلاعاتی در MySQL
پس از اتصال به MySQL شما میتوانید با استفاده از دستور زیر یک بانک اطلاعاتی جدید ایجاد کنید.

کد:
(?php
   mysql_creat_db($database,$Conn);
?)

این دستور شامل دو آرگومان ، نام بانک اطلاعاتی و نام لینک مورد نظر به پایگاه داده می باشد. در صورتی که عمل ایجاد با موفقیت انجام شده باشد، پیغامی مبنی بر این موضوع نمایش داده می شود و در غیر اینصورت، به کاربر اعلام می شود که عملیات نتیجه نداشته است.

برای انجام کارهاي مختلف بر روي بانک اطلاعاتی ازدستورات SQL استفاده می کنیم. روند استخراج اطلاعات از یک پایگاه داده به این صورت است که ابتدا یک query به زبان SQL نوشته می شود وسپس این query با استفاده ازدستور زیر عملیات لازم را بر روي بانک اطلاعاتی انتخاب شده، انجام می دهد:

کد:
mysql_db_query($database,$Query);


ایجاد یک جدول
برای ایجاد یک جدول ، این query را می نویسیم:

کد:
(?php  
$Query=”CREATE table $Tablename(id INT PRIMARY KEY ,
     Firstname char(12), Lastname char(15))”;
?)



با استفاده ازاینquery جدول جدیدي ایجاد می شود که شامل یک فیلد به نام id (که primary kay است) و فیلدی به نام Firstname از نوع کاراکتري با طول 12 و همچنین فیلدي به نام Lastname با طول 15 می باشد.



حذف جدول و پایگاه داده
شاید در بعضی موارد لازم باشد جدولی از پایگاه داده تان را حذف کنید.دستور زیر برای حذف جدول به کار میرود:

کد:
DROP TABLE tablename;


برای حذف کامل پایگاه داده نیز از دستور زیر استفاده کنید:


کد:
DROP DATABASE databasename;
 

برنامه نویس

عضو سایت
نیازمندیهای mysql

ک روش ایجاد، به روز رسانی، اصلاح و حذف از پایگاه داده Mysql استفاده از یک GUI مانند phpMyAdmin است. یکی دیگر از روش های محبوب استفاده از اسکریپت های php در یک وب سایت است


فرض می کنم شما به یک مرورگر،یک کامپیوتر و یک پریز برق برای اینکه کامپیوتر خود را به برق وصل کنید دسترسی دارید، پس تنها نیازمندی باقیمانده برای اجرای MYSQL یک وب سرور است، که در حال حاضر باید با MYSQL نصب شده آمده باشد، اگر شما نیاز به آن را پیش بینی کرده باشید.

در این مقاله ما یاد می گیریم که چگونه پایگاه داده Mysql را مستقیما از خط فرمان ایجاد، به روز رسانی، اصلاح و حذف کنیم. یک روش جایگزین وجود دارد و آن استفاده از

GUI (graphical user interface) مانند phpMyAdmin است. phpMyAdminبه شما اجازه می دهد با کلیک بیشتر و تایپ کمتر ، پایگاه داده Mysql را روی مرورگر خودتان نگهداری کنید.( شما میتوانید با میزبان وب خود در مورد گزینه هایتان صحبت کنید ، اگر آنها GUI (رابط کاربر گرافیکی) MYSQL را پشتیبانی نمیکنند. )

یکی دیگر از روش های محبوب نگهداری بانک اطلاعاتی Mysql استفاده از اسکریپت های php در یک وب سایت است، که در آن می توان اطلاعات را در یک پایگاه داده جمع آوری و ذخیره کرد، و در صورت نیاز آنها را اصلاح، بازیابی و به روز رسانی کرد. ولی در این روش نیز یک دانش پایه از Mysql نیاز است.
 

برنامه نویس

عضو سایت
Syntax ، قواعد دستوری MYSQL

syntax مجموعه قواعدی است که مشخص میکند MYSQL چگونه باید نوشته شود


syntax مجموعه قواعدی است که مشخص میکند Mysql چگونه باید نوشته شود. MYSQL فقط یک قاعده اصلی را دنبال میکند، اینکه هر جمله باید با علامت سمی کولون تمام شود، ";" نشان میدهد که دستور به پایان رسیده است.

کد MYSQL برای خواندن و نوشتن بسیار آسان است، و تا زمانیکه زبان انگلیسی را درک کنید این را احساس میکنید.

یک عادت خوب هنگام نوشتن MYSQL ،با حروف بزرگ نوشتن کلمات رزرو شده است که در هر دستوری که نوشته شود وجود دارند. این کمک میکند که کلمات کلیدی جدا شوند و منظور کد در یک نگاه واضح تر باشد.

دو خط زیر تابع یکسانی از نمایش همه داده های ذخیره شده در جدول "Example" را اجرا میکنند،اما فقط یکی از آنها به شما اجازه میدهند در یک نگاه کلمات کلیدی را جدا کنید.



کد:
SELECT * FROM example;

select * from example;


اگر شما فکر میکنید که مثال دوم برای خواندن و تفسیر کردن راحت تر است، ما با مخالفت ها موافقت میکنیم!
 

برنامه نویس

عضو سایت
تغییر جداول در mysql

دستور ALTER TABLE در MYSQL توانایی اضافه، حذف و تغییر نام یک ستون ، همچنین ایجاد و از بین بردن شاخص ها و تغییر نوع یک ستون موجود را میدهد


توانایی تغییر ساختار یک جدول پایگاه داده پس از اینکه ساخته شد و یا حتی وقتی شامل داده ها باشد، دیر یا زود مفید واقع خواهد شد. دستور ALTER TABLE به شما توانایی اضافه، حذف و تغییر نام یک ستون ، همچنین ایجاد و نابود کردن شاخص ها و تغییر نوع یک ستون موجود را میدهد.

♦ ALTER TABLE - اضافه کردن ستون

دستور اضافه کردن یک ستون جدید به جدول موجود به شکل زیر است:


کد:
ALTER TABLE tablename ADD COLUMN colname coltype;


بطور پیش فرض ، ستونهای جدید به پایان جدول مشخص شده اضافه میشوند. شما میتوانید برای اضافه کردن ستون جدید به ابتدای جدول از کلمه "FIRST" استفاده کنید ، و یا برای مشخص کردن اینکه ستون جدید دقیقا کجا و بعد از کدام ستون قرار بگیرد، "AFTER colname" را در انتهای دستور به کار گیرید.


کد:
ALTER TABLE pets ADD COLUMN photo VARCHAR(50);
ALTER TABLE pets ADD COLUMN photo VARCHAR(50) FIRST;
ALTER TABLE pets ADD COLUMN photo VARCHAR(50) AFTER pedigree;


اگر شما نگران این هستید که نام ستونی که وارد میکنید قبلا وجود دارد، میتوانید به جای دستور "ADD COLUMN" از دستور "ADD UNIQUE" استفاده کنید. بدین ترتیب ستون جدید فقط در صورتی که قبلا ستونی با این نام نداشته باشید ، ایجاد میشود.



♦ ALTER TABLE - حذف ستون

دستور حذف ستون موجود به شکل زیر است:

کد:
ALTER TABLE tablename DROP COLUMN colname;

همه داده های موجود در ستون حذف شده نیز از بین خواهند رفت.


کد:
ALTER TABLE pets DROP COLUMN photo;


♦ ALTER TABLE - تغییر نام جدول

دستور تغییر نام کل جدول:


کد:
ALTER TABLE tablename CHANGE oldcolname newcolname coltype;
ALTER TABLE pets CHANGE pedigree bloodline TEXT;


♦ ALTER TABLE - اصلاح جدول

برای تغییر/اصلاح یک ستون، دستور به شکل زیر است:

کد:
ALTER TABLE tablename MODIFY colname coltype;


به عنوان جایگزین،میتوان از "CHANGE" برای اصلاح نوع یک ستون استفاده کرد. هنگام استفاده از دستور "CHANGE" باید هم نام قدیمی و هم نام جدید ستون مشخص شوند، اما هر دو میتوانند همان نام باشند و در واقع نام ستون تغییر نمیکند.

کد:
ALTER TABLE pets MODIFY breed VARCHAR(50);
ALTER TABLE pets CHANGE breed breed VARCHAR(50);
 

برنامه نویس

عضو سایت
دستکاری داده ها در mysql

دستکاری داده ها در MYSQL، شامل درج داده در پایگاه داده MYSQL با دستور "insert"، بازیابی و نمایش اطلاعات با دستور "select"، تغییر داده ها با "update" و حذف با استفاده از "delete" میباشد


دستکاری داده در MYSQL شامل موارد زیر میباشد:

درج داده در MYSQL
بطور کلی برای عمل قرار دادن داده ها در یک جدول پایگاه داده MYSQL از کلمه "insert' استفاده میشود. از سینتکس زیر برای درج داده استفاده میشود:


کد:
$Query=“INSERT into $Tablename(‘value1’, ‘value2’, ‘value3’,…)”;



توجه داشته باشیدکه تعداد مقادیری که در این Query مشخص میشوند باید با تعداد ستونهای جدول و همچنین نوع آن برابر باشد، در غیر اینصورت Query کار نمیکند. اگر برای یکی از فیلدها مقداری ننویسید (البته اگر آن فیلد NOT NULL تعریف نشده باشد) مقدار default در آن قرار میگیرد ، که اگر موقع ساختن جدول این مقدار پیش فرض تعیین نشده باشد null خواهد شد.



بازیابی و نمایش اطلاعات
حال که داده ها را در پایگاه داده درج کردید، شاید بعضی مواقع نیاز باشد به آنها دسترسی داشته باشید، برای اینکار باید ازکلمه "select" در پرس و جو ها استفاده کنید:

کد:
$Query="SELECT * FROM $Tablename“;

این دستور تمام فیلد های جدول Tablename را برای شما ارسال میکند. اگر شرطی در پرس و جو لازم باشد از "where" استفاده میکنیم:



کد:
$Query="SELECT * FROM $Tablename WHERE name='value1'  “;


با این دستور به جای اینکه تمام اطلاعات جدول برای شما فرستاده شود، فقط رکورد هایی که در جدول شرط name=value1 را شامل شوند، می آیند. شرط هایمان میتوانند چند حالت داشته باشند و با "and" و "or" میتوانید هر شرطی را که خواستید، اضافه کنید.

همچنین اگر خواستید که فقط فیلد های خاصی از هر رکورد برای شما ارسال شود ،میتوانید ستونهایی از جدول را که میخواهید به جای استفاده از "*" در query درج کنید و فقط آنها برای شما ارسال میشوند. (فیلد ها با کاما جدا شوند.)



تغییر و به روز رسانی اطلاعات
اغلب داده هایی که در جدول MYSQL شما ذخیره شده اند نیاز به تغییر، به روز کردن و یا جایگزینی خواهند داشت، دستورالعمل "update" برای این هدف استفاده میشود. شما میتوانید همزمان چند رکورد را ویرایش کنید، سینتکس این دستور بصورت زیر است:


کد:
$Query="UPDATE tablename SET column = newdata WHERE column LIKE currentdata “;


حذف داده از MYSQL
هنگامیکه در یک جدول MYSQL دیگر نیازی به یک رکورد و یا سطر نداشته باشید، میتوانید با استفاده از دستور "delete" از شرّ آن خلاص شوید. سینتکس این دستور به شکل زیر است:

کد:
$Query=" DELETE FROM tablename WHERE column = data “;


جدول و رکورد باید به چند روش شناسایی شوند تا داده های مهم حذف نشوند، باید مراقب حذف بیش از حد داده ها و یا اطلاعات اشتباه باشید.





جستجوی پیشرفته ی MYSQL
ORDER BY :
برای مرتب کردن خروجی بر اساس یک فیلد از این دستور استفاده میشود.

کد:
ORDER BY FieldName ASC

در این مثال خروجی بر اساس FieldName مرتب میشود و کلمه ASC بیانگر صعودی بودن مرتب سازی است، اگر بخواهید مرتب سازی نزولی باشد به جای ASC از کلمه DESC استفاده کنید. برای جلوگیری از نشان دادن داده های تکراری از GROUP BY استفاده کنید.



LIMIT :
جزء LIMIT در عبارت SELECT کلید حل بسیاری از مشکلات است. به وسیله این جزء است که ما می توانیم سطرهاي مورد نظر خود از DataBase را در Query خود داشته باشیم .LIMIT به دو شکل به کار می رود با یک آرگومان و یا با دو آرگومان ،این آرگومانها عدد هستند ، اگر LIMIT با یک آرگومان استفاده شود تعداد جواب به آن عدد محدود می شود ،اما اگر LIMIT با دو آرگومان استفاده شود آرگومان اول مشخص کننده سطر آغازین است و آرگومان دوم تعداد سطرهایی را که باید برگردانده شوند را مشخص می کند ، البته باید به این نکته توجه کرد که در SQL سطرها از صفر ( 0) شروع می شوند نه از یک.

COUNT :
برای شمردن نتیجه یک SELECT که فقط تعداد مهم باشد از این تابع استفاده کنید:

کد:
SELECT COUNT(*) FROM $Tablename WHERE name='value1'
 

برنامه نویس

عضو سایت
پشتیبان گیری و بازیابی پایگاه داده mysql

MYSQL پشتیبان گیری از پایگاه داده را به راحتی برای ما فراهم کرده است، با استفاده از "mysqldump" شما میتوانید تمام توضیحات ضروری MYSQL برای ایجاد دوباره یک پایگاه داده را در یک فایل واحد داشته باشید


آیا تا به حال شده که Backup گیری از داده هایتان را فراموش کنید و برای آن تأسف بخورید!؟ با این حال از دست دادن داده ها ممکن است رخ بدهد و تمام روز شما را خراب کند. ( از من نپرسید که از کجا میدانم! ) این همیشه مهم است که از داده هایتان نسخه پشتیبان بگیرید، و پایگاه داده ها از این قاعده مستثنی نیستند. خوشبختانه MYSQL در حال حاضر این مشکل را پیش بینی کرده است و پشتیبان گیری از پایگاه داده را به راحتی برای ما فراهم کرده است.

با استفاده از "mysqldump" شما میتوانید تمام توضیحات ضروری MYSQL برای ایجاد دوباره یک پایگاه داده را در یک فایل واحد داشته باشید.

توجه داشته باشید که ، دستور mysqldump مستقیما از خط فرمان اجرا میشود و تا زمانیکه به MYSQL وصل باشید نمیتواند اجرا شود.

سینتکس آن بصورت زیر است:

کد:
mysqldump -u username -p password database > filename.sql


یک مثال عملی :

کد:
mysqldump -u Ernest -p TopSecret pets > petsbackup.sql

این دستور فایلی شامل عناصر MYSQL را ایجاد میکند که وقتیکه اجرا شود، تمام پایگاه داده شما را دوباره میسازد.

چندین گزینه مفید وجود دارد که میتوان به mysqldump اضافه کرد ، اما در اینجا فقط دو مورد را معرفی خواهیم کرد. مورد اول، add-drop-table-- ، که عبارت DROP TABLE را قبل از هر عبارت CREATE TABLE در فایل خالی جدید اضافه میکند، پس مطمئن باشید که در طول فرآیند بازگردانی هیچ داده قدیمی وجود نخواهد داشت.

مورد دوم، no-data-- است که تنها، ساختار پایگاه داده را به فایل پشتیبان روبرداری میکند، و داده های ذخیره شده در پایگاه داده را روگرفت/پشتیبانی نمیکند.

کد:
mysqldump --add-drop-table -u username -p password database > filename.sql
mysqldump --no-data -u username -p password database > filename.sql


فرآیند بازگردانی، که باید تا به حال لازم شده باشد، با استفاده از دستور "mysqlimport" امکانپذیر است و سینتکس آن بصورت زیر است:


کد:
mysqlimport -u username -p password database filename.sql

یک مثال عملی :

کد:
mysqlimport -u Ernest -p TopSecret pets petsbackup.sql
 
بالا