کار با MySQL

در متفرقه

سلام به همه هنرمندان دنیای کامپیوتر

این دفعه می خوام نحوه کار با MySQL رو به در خواست یکی از خواننده های محترم این سایت توضیح بدم

البته اون دوستمون گفته بود نحوه کار با دیتابیس منم بنا به سلیقه اول مای اس کیو ال رو انتخاب کردم البته بعد ها نحوه کار با چند تا سرور اس کیو الی دیگه رو هم توضیح می دم ولی این دفعه رو MySQL Server می خوام تمرکز کنیم

خب برای ادامه کار در اصل به تنها چیزی که نیاز داریم خود MySQL هست که می تونید از آدرس زیر دانلودش کنید و استفاده کنید

http://dev.mysql.com/downloads/mysql/

ولی خب عجله نکنید بزارید نمه نمه با هم پیش بریم

اگه تو ویندوز هستید توصیه می کنم یه کار دیگه بکنید و اون اینکه برید XAMPP یا WAMP رو دانلود کنید و نصب کنید این دو تا ابزار برای کار با پی اچ پی هستن و در خودشون مای اس کیو ال رو دارن ممکنه با خودتون بگید خب من که فقط مای اس کیو ال می خوام برای چی باید یکی از این دو تا رو نصب کنم؟ والا هر جور راحتید منتهی به چند دلیل بهتره این کاری که من می گم رو بکنید یکیش این که نصب یه همچین چیزایی حجم زیادی نمی بره و به قولی ضرر که نداره :دی ، یکی دیگه اش اینکه پی اچ پی یکی از زبون هایی هست که تو دنیای وب زیاد ازش استفاده می شه اگه پی اچ پی کار هستید که خیر و برکت اگه نیستید و مثل من بیشتر با دنیای جاوا حال می کنید ولی باز هم دلیل نمیشه، پی اچ پی رو هم کنارش بلد باشید والا،بعد اینکه این که کنار دستتون باشه بیشتر وسوسه می شید برید دنبال پی اچ پی و از این حرفا :دی

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

یه نکته دیگه اینکه این حرف قبلی ها رو اگه با ویندوز کارا زدم واسه این بود که وسوسه شن برن  یکی از اون دو تا نرم افزار هایی رو که گفتم نصب کنن و به این معنی نیست که بچه های لینوکس کار یا یه او اس دیگه کار نتونن از phpMyAdmin استفاده کنن اونا هم می تونن تازه خیلی تر و تمیز تر و جدا تر:دی

چه قدر حرف الکی زدم ها ، در کل منظور اینه که برای ادامه کار باید phpMyAdmin رو داشته باشید چون می خوام از رو اون یه چیزایی رو توضیح بدم

من الآن که دارم اینو می نویسم تو ویندوز هستم و WAMP رو هم رو سیستم خودم نصب کردم

اگه از سیستم عامل دیگه ای استفاده می کنید برید از آدرس زیر ببینید چی جوری باید phpMyAdmin رو واسه سیستم خودتون اوکی کنید

http://www.phpmyadmin.net

خب حالا تا یه جاییش فرض بر اینه که تو ویندوز هستیم همونطور که قبلاً گفتم من WAMP نصب کردم رو سیستم خودم

برای ادامه ابتدا WAMP رو اجرا کنید بعد از طریق Task Bar برید و رو آیکون مربوطه اش کلیک کنید مثل شکل زیر

بعد رو گزینه phpMyAdmin کلیک کنید تا یه چیزی شبیه شکل زیر باز بشه

 

 

رو گزینه Databases کلیک کنید تا یه چیزی مثل شکل زیر نمایان بشه

 

 

می بینید که لیست دیتابیس های موجود رو نشون میده ، توی کادر خالی یه اسم جدید مثلاًMY_DB_1 رو وارد کنید و روی دکمه create کلیک کنید تا یه دیتابیس جدید به لیست دیتابیس هاتون اضافه بشه

روی دکمه create که کلیک می کنید یه پیغامی نشون و میده این دیتابیس جدید به لیست دیتابیس هاتون اضافه میشه

 


 

 

 

 

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

 

 

بعد اینکه روی Drop کلیک کنید یه پنجره باز میشه که توش یه کوئری رو نشون میده این کوئری هم که معلومه چی می گه دیگه می خواد فلان دیتا بیس رو کلاً حذف کنه می تونید روی دکمه yes  کلیک کنید و دیتابیس رو بترکونید تا اینکه no بزنید و بزارید بمونه

خب حالا فرض بر اینه که my_db_1 رو حذف نکردید اگر هم حذف کردید مشکلی نداره دو باره بسازیدش که باهاش کار داریم:دی

 

الآن تو دو تا جا اسم دیتابیس جدیدتون به چش میاد رو هر کدوم که دوست داشتید کلیک کنید تا وارد پنجره زیر بشیم

 

می بینید که توی این دیتابیستون هیچ جدولی وجود نداره پس بیایید اولین جدول رو بسازیم برای اینکار روی دکمه Create table کلیک کنید تا وارد پنجره زیر بشیم

 

خب حالا من می خوام یه جدول تعریف کنم به اسم FIRST_TBL که سه تا ستون داشته باشه یکی آی دی یکی  نام یکی هم نام خانوادگی

خب  پس اول اسم جدول رو تو فرم بالا وارد می کنیم

بعد باید دونه دونه ستونای جدول رو ایجاد کنیم

اول ستون آی دی رو تعریف می کنیم برای اینکا فرم قبلی رو به صورت زیر پر می کنیم

اسم ستون رو می زارم ID

type اش رو  می زاریم همون INT بمونه

از قسمت Index هم PRIMARY رو انتخاب می کنیم که بشه کلید اصلیمون همه چی مثل شکل زیر

 

 

حالا ستون دوم جدولمون رو تعریف می کنیم اسم این ستون رو میزاریم M_NAME

نوعش رو هم می زاریم VARCHAR

یعنی در ادامه کار فرممون باید به صورت زیر باشه

 

 

خب تا حالا دو تا ستون تعریف کردیم ولی یه ستون دیگه هم می خواهیم، چی کار کنیم؟ ساده است اگه اون گوشه پایین سمت راست رو نگاه کنید می بینید که به صورت زیره

 

توی اون باکس می تونید تعداد ستون هایی رو که می خواهید به جدولتون اضافه کنید تایپ کنید و دکمه Go رو بزنید یا اگه کارتون تموم شد روی Save کلیک کنید

چون ما یه ستون دیگه لازم داریم پس می زارم داخل اون باکس همون عدد یک بمونه و سپس روی Go کلیک می کنیم و به صورت زیر میشه

 

 

می بینید که یه ستون به ستون هامون اضافه شده ، همینجوری میتونیم هر چند تا ستون دیگه که خواستیم به جدولمون اضافه کنیم

خب حالا اطلاعات ستون سوم رو هم به صورت زیر وارد می کنیم و سر آخر روی دکمه Save که اون پایین هست کلیک می کنیم

 

 

اگه روی Save کلیک کرده باشید به احتمال زیر با خطای زیر مواجه میشید

برای رفعش دو تا راه دارید یا نوع ستون های M_NAME و M_LASTNAME رو به TEXT تغییر بدید که مطمئناً اون چیزی نیست که ما می خواستیم راه حل اصولیش اینه که توی فیلد Length  طول متغیر رو وارد کنیم

مثلاً یه چیزی مثل شکل زیر

 

 

حالا با خیال راحت روی Save کلیک کنید

جدولتون به دیتا بیس اضافه شده و سمت چپ صفحه اسمش نشون داده میشه

 

تا اینجا فقط یه دیتابیس و یه دونه جدول ساختیم که خب کار خاصی نکردیم

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

 

 

اینجا کارای زیادی می تونید انجام بدید

مثلاً می تونید به هرجایی از جدولتون که خواستید ستون جدید اضافه کنید

می تونید ستون ها رو حذف کنید یا تغییرشون بدید

و خیلی کارای دیگه باید خودتون با محیطش ور برید تا قشنگ دستتون بیاد

برای مثال بزاید یه تغییری تو ستون های M_NAME و M_LASTNAME بدیم

اگه توجه کرده باشید فعلاً برای این دو تا ستون Collation روی latin_swedish_ciتنظیم شده

پسوند ci یعنی case-insensitive یعنی به بزرگی و کوچیکی حساس نیست حالا بزارید یه تغییری بدیم

روی سطر مربوط به M_NAME روی Change کلیک کنید تا وارد پنجره زیر بشید

 

رو به روی Collationروی لیست کشویی کلیک کنید و گزینه utf8_unicode_ci کلیک کنید با این انتخاب ستون M_NAME می تونه هر زبونی رو پشتیبانی کنه می تونید گزینه های دیگه رو هم انتخاب کنید هر جور خودتون راحتید مثلاً می تونید گزینه utf8_persian_ciرو انتخاب کنید یا هر چیز دیگه که خودتون حال می کنید ، سر آخر روی Save کلیک کنید تا به پنجره قبلی بر گردید

همین کار رو با ستون M_LASTNAME هم انجام بدید

حالا می خواهیم توی جدولمون داده وارد کنیم برای اینکار توی شکل زیر یعنی همین پنجره اصلی مربوطه به جدولمون روی تب Insert کلیک کنید

حالا وارد پنجره زیر میشیم و می تونیم داده هامون رو وارد کنیم

 

حالا توی سه تا باکس اول یه مقادیری برای  آی دی و نام و نام خانوادگی وارد کنید مثلاً مثل شکل زیر

 

و  حالا روی دکمه Go کلیک کنید

باید یه پنجره مثل پنجره زیر باز بشه

 

البته اگه تو مراحل قبلی تنبلی کرده باشید و Collation ها رو از latin1_swedish_ci به utf8_unicode_ci تغییر نداده باشید خب تو این مرحله نمی تونید مقادیر فارسی رو تو ستون های M_NAME و M_LASTNAME وارد کنید و به جای پیغام سبزی که تو شکل بالا هست یه پیغام خطای قرمز رنگ می بینید

دو باره روی تب Insert کلیک کنید تا مجدداً به صفحه مربوط به درج داده وارد بشید و اگه خواستید داده های دیگه ای رو هم وارد کنید

اگر هم می خواهید ببینید که در حال حاضر چه داده هایی توی جدولتون وجود داره روی تب Browse کلیک کنید

بقیه تب ها  رو هم خودتون باهاشون سر و کله بزنید تا ببینید چه امکاناتی در اختیارتون قرار میدن

 

خب بریم بخش دوم آموزش

فرض کنید که حوصله این جنگولک بازی ها رو ندارید و از اونایی هستید که عشق کنسولید و فقط یه MySQL می خواهید و بس ، حوصله نصب کردن چیزای دیگه رو هم ندارید مثلاً من خودم چند وقت پیش تو ابونتو بودم و یه دفعه نیاز شد که یه برنامه ای با جاوا بنویسم که باید به مای اس کیو ال وصل می شد و از این گنده کاری ها ، خیلی هم سریع می خواستم کد رو بزنم و تمومش کنم حس و حال ویندوز هم نداشتم یعنی نمی خواستم ریخت ویندوز رو ببینم چی کار کردم؟ معلومه خیلی ساده است

رفتم تو ترمینال  و خیلی ساده نوشتم sudo apt-get install mysql-server

 و پوف، به همین راحتی MySQL  نصب شد ، قابل توجه اونایی که فک می کنن نصب اینجور چیزا تو لینوکس کار سختیه باید بگم این حرفا شایعه است این چرت و پرتا رو از ذهنتون بریزید بیرون هیچ چیزی هیچ جایی سخت نیست :دی چی گفتم؟؟ :) خلاصه بریم ادامه کار

دیگه از اینجا به بعد به راحتی ما اس کیو ال دار شده بودم

دیگه از اینجا به بعد می خواهیم تو کنسول با مای اس کیو ال کار کنیم

توجه کنید این هیچ ربطی به سیستم عامل نداره تو ویندوز هم می تونید کنسولی کار کنید تو لینوکس هم می تونید

تو ویندوز هم می تونید از phpMyAdmin  استفاده کنید تو لینوکس هم می تونید

من اگه هی سیستم عاملم عوض میشه از رو کرمه ، مرض دارم :دی ، مگرنه هر جور خودتون راحتید

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

میریم تو کنسول و می نویسیم

mysql -u root -p

یعنی با یوزر root  می خوام وارد شم و پسورد وارد کنم

بعدش هم از ما پسورد می خواد که باید اونو وارد کنیم

 

 

 

می بینید که یه خوش آمد گویی مختصری از امون میشه و کنسول مای اس کیو ال فعال میشه

حالا می خواهیم یه کم با این کنسول حال کنیم

همون اول کاری می خوام که یه دیتابیس ایجاد کنیم ، کار ساده ایه از دستور زیر استفاده می کنیم

create database name_of_database

که name_of_database اسمی هست که برای دیتابیستون انتخاب می کنید

مثلاً من می خوام دیتابیسی به نام MY_DB_2 ایجاد کنم به صورت زیر عمل می کنم

 

 

می بینید که کوئریمون مشکلی نداشت و OK بود

در ضمن یادتون نره بعد از دستورات حتماً    ;     رو تایپ کنید

خب حالا می خواهیم ببینم کلاً چه دیتا بیس هایی تو سیستممون داریم

برای اینکار می نویسیم show databases;

مثل شکل زیر

 

 

خب توی تصویر بالا داره اسم دیتا بیس های منو نشون میده که با مال شما فرق خواهد داشت

خب حالا اسم دیتابیس های موجود رو دیدیم خودمون هم یه دونه جدید ایجاد کرده بودیم به نام MY_DB_2 که میخواستیم باهاش کار کنیم

حالا چی جوری باهاش کار کنیم؟ ساده است باید با استفاده از دستور use به مای اس کیو ال بفهمونیم که میخواهیم از فلان دیتا بیس استفاده کنیم

یعنی باید یه چی مثل use MY_DB_2; تایپ کنیم

مثل شکل زیر

 

 

یه پیغام میده مبتنی بر اینکه دیتابیستون عوض شده یعنی حواستون باشه دارید روی یه دیتابیس دیگه کار می کنید و از این حرفا

حالا فرض کنید که وسط کاریم و یادمون رفته که تو کدوم دیتابیس بودیم یا مثلاً همین الآن شک کردیم که آیا واقعاً رفتیم تو دیتابیس جدیده یا نه برای اینکه اسم دیتابیس فعلیمون رو به دست بیاریم از تابع DATABASE()d استفاده می کنیم

مثل شکل زیر

باید از دستور select استفاده کنیم

 

 

خب حالا دیگه مطئنیم که داریم رو چه دیتابیسی کار می کنیم حالا وقتشه که بریم دنبال جدول سازی و غیره

اول ببینیم این دیتابیسمون جدولی توش هست یا نه

برای اینکار باید show tables; رو توی کنسول تایپ کنیم

مثل شکل زیر

 

 

می بینید که می گه Empty set یعنی خالیه یعنی آقا جدولی وجود نداره دیگه :دی

پس بریم یه دونه جدول بسازیم

از دستور create table به صورت زیر استفاده می کنیم

توی پرانتز ابتدا اسم ستون و سپس نوعش رو مشخص می کنیم

 

 

می بینید که یه جدول به نام MY_TBL با سه تا ستون ساختم اولی از نوع int و دو تای دیگه از نوع varchar(10)d

الآن اگه show tables بزنیم باید اسم این جدول رو نشون بده

 

حالا وقتشه که توی این جدولمون یه سری چرت و پرت درج کنیم

برای درج داده باید به صورت زیر عمل کنیم

insert into table_name values (v1_1,v1_2,..),(v2_1,v2_2,..)d

که table_nameنام جدول هست داخل پرانتز هم باید مقادیری که می خواهید وارد کنید رو بنویسید و اگه می خواهید چند ردیف داده وارد کنید باید پرانتز ها رو با ویرگول از هم جدا کنید

به مثال زیر توجه کنید بیشتر متوجه می شید

 

 

گفته که همه داده ها به خوبی و خوشی توی جدول درج شدن ولی اگه بازم هم میخواهید چک کنید می تونید از دستور select * استفاده کنید

مثل شکل زیر

 

 

دستور مستور که زیاد ریخته بخواهیم باهاشون سر و کله بزنیم ولی فعلاً یه دستور دیگه رو هم معرفی می کنم و این بخش رو تموم می کنیم

دستور describe توصیفات یه جدول رو به ما میده مثلاً اگه بخواهیم بدونیم ساختار MY_TBL چی جوری هست به صورت زیر عمل می کنیم

 

 

خب تا همینجا دیگه کافیه :دی سر آخر این نکته رو بگم که اگه من توی لینوکس کنسولی گفتم و تو ویندوز گفتم از WAMP استفاده کنید و برید تو phpMyAdmin فقط یه انتخاب بود از طرف خودم مگرنه هم تو ویندوز میشه از طریق کنسول با مای اس کیو ال ارتباط برقرار کرد و هم تو لینوکس میشه از phpMyAdmin استفاده کرد برای همین فردا نرید پشت سرم حرف در بیارید بگید فلانی در مورد ویندوز فلان حرفو زد یا فلان حرفو در مورد لینوکس زد :دی

و  آها داشت یادم می رفت اگه میخواهید به صورت گرافیکی با مای اس کیو ال کار کنید یه انتخاب خوب دیگه هم هست که وقت نشد توضیح بدم ولی حتماً رو سیستمتون نصب کنید و باهاش سر و کله بزنید خوشتون میاد

http://dev.mysql.com/downloads/workbench/5.2.html

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