| |
وب : | |
پیام : | |
2+2=: | |
(Refresh) |
نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده
یکی از پرکاربردترین سیستم های مدیریت پایگاه داده که تقریبا در وب رقیبی ندارد، MySQL است؛ تا حدی که امروزه سایتهای بزرگ و معروف نیز از آن استفاده می کنند، فلسفه پیدایش این سیستم جهت تسهیل دسته بندی یکپارچه و منظم اطلاعات و دسترسی آسان تر به آنها است، مخصوصا اگر مطالب و محتوای سایتی مرتب به روز شود، نیاز به پایگاه داده کاملا احساس می شود؛ هر چند فراگیری زبان های برنامه نویسی وب به خودی خود مهم و ضروری است اما امروزه دیگر آموختن MySQL جزء جدا ناپذیری از این مجموعه شده است، خوشبختانه با تسلط نسبی بر روی PHP می توان در مدت کوتاهی نکات ضروری MySQL را فراگرفت و البته مسلما گسترده گی و تنوع قابلیت های سیستم و فراوانی نیازهای کاربران، کمی کار را پیچیده و مشکل می کند.
دسته بندی اطلاعات در پایگاه داده
شیوه کلی دسته بندی اطلاعات در پایگاه داده بر اساس جداول و فیلد هاست، به عنوان مثال فرض کنید می خواهیم اسامی دانش آموزان یک مدرسه را بر اساس سن در جداول مختلف نگهداری و در صورت نیاز به آنها دسترسی پیدا کنیم، در یک بیان ساده می توانیم چند جدول کلی ایجاد کنیم با عناوینی مربوط به سن آنها (مثلا ردیف سنی 8 تا 10 سال و...) حال در هر جدول اطلاعات مربوط به هر دانش آموز را در ردیف های مشخصی وارد می کنیم (مثلا در جدول 8 تا 10 سال برای هر دانش آموز یک ردیف می سازیم و اطلاعات را وارد می کنیم، فرضا نام: احمد، سن: 8 سال، محل سکونت: تهران و...)؛ پس از ثبت اطلاعات بعدها می توانیم بر اساس نیازمان آنها را فراخوانی کنیم یا دسته بندی کرده و به نمایش دربیاوریم و یا پردازش کنیم.
مدیریت پایگاه داده با PHPMyAdmin و PHP
نحوه ذخیره کردن اطلاعات با دستور INSERT در MySQL
پس از آشنایی با نحوه ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL، اکنون نوبت به فراگیری قابلیتی دیگر از این سیستم مدیریت پایگاه داده است، هدف این آموزش آشنایی شما با نحوه ورود اطلاعات از کدهای PHP به وسلیه دستور INSERT INTO در جداول و ردیف های MySQL است، چرا که صرف ساختن پایگاه داده، جدول و ردیف، کاربردی ندارد و همه ی این مقدمات برای فراهم کردن شرایطی است که بتوانیم اطلاعاتمان را ذخیره سازی و در مواقع لزوم از آنها استفاده نمائیم.
گفتیم که قبل از انجام هر کاری، ابتدا باید به پایگاه داده متصل شویم، برای این کار از کدی شبیه به مثال زیر استفاده می کنیم:
<?php
mysql_connect("localhost", "user", "pass")//اطلاعات اتصال
or die(mysql_error());
echo "ارتباط برقرار شد!<br />";
mysql_select_db("db")//نام دیتابیس
or die(mysql_error());
echo "ارتباط با پایگاه داده برقرار شد!<br />";
mysql_close;//پایان ارتباط
?>
نحوه استفاده از WHERE در MySQL
همان طور که پیش تر در آموزش های مقدماتی MySQL گفتیم، هنگامی که با دستور SELECT FROM در MySQL کار می کنیم، نیاز به ایجاد محدودیت هایی داریم تا اطلاعات دقیق تری بدست آوریم، به عنوان مثال اگر لیست اسامی ده هزار نفر را در دیتابیس خود به صورت نام، نام خانوادگی و سن داشته باشیم و بخواهیم به فرض تنها افرادی را که اسم آنها بهرام است، در خروجی داشته باشیم، باید از WHERE و پارامترهای آن استفاده کنیم، WHERE در واقع نشانی دقیق ستون و سطرهایی که ما از MySQL پرس و جو می کنیم را تعریف می کند، از اینرو در کار با پایگاه داده و کدهای php اهمیت و کاربرد زیادی دارد، در ادامه آموزش، خواهیم دید که این عنصر تا چه میزان می تواند دقت و سرعت کار ما را افزایش دهد.
چگونه از WHERE استفاده کنیم؟
شیوه نگارش یا همان syntax عنصر WHERE و پارامترهای آن چندان سخت نیست، کافی است آن را در ادامه دستور SELECT FROM قرار دهید، مثال زیر یک نمونه از آن را نشان می دهد.
<?php
mysql_query("SELECT * FROM table WHERE id = '1'");
?>
در مثال بالا از جدول فرضی table جایی که ستون id برابر یک است را انتخاب کرده ایم، با این کار اطلاعات کل یک ردیف که آی دی آن برابر یک است، در دسترس قرار می گیرد، مثلا ممکن است در آن ردیف اطلاعات دیگری نظیر نام، نام خانوادگی، سن و... را (از قبل) ذخیره کرده باشیم.
استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE
ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL
در بخش آموزش مقدماتی MySQL و در مطلب گذشته با کلیاتی از پرکاربرد ترین سیستم مدیریت پایگاه داده یعنی MySQL آشنا شدیم، گفتیم که دستورات مربوط به پایگاه داده از طریق برنامه phpMyAdmin به طور مستقیم قابل اعمال هستند و از طرفی کدهای php قابلیت های فراوانی برای مدیریت و اعمال همان دستورات در اختیارمان می گذارند، از آنجایی که یک برنامه خوب بیشتر تکیه بر کدها و ابزار های داینامیک دارد، لذا ما از طرح مباحث مربوط به phpMyAdmin می گذریم و به نحوه اجرای دستورات در php می پردازیم، در این مطلب نیز می خواهیم در رابطه با آموزش ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL صحبت کنیم.
ساخت دیتابیس با دستور CREATE
اگر چه ساخت دستی دیتابیس با برنامه phpMyAdmin بیشتر کاربرد دارد، اما کدهای PHP نیز این قابلیت را با دستور CREATE DATABASE دارا هستند
حذف مقادیر از MySQL با دستور DELETE
مدیریت اطلاعات پایگاه داده به ذخیره (INSERT)، انتخاب (SELECT) و به روزرسانی (UPDATE) ختم نمی شود، دیر یا زود و به دلایل مختلف، سیستم ما نیاز خواهد داشت که مواردی را از دیتابیس حذف نماید، از این رو یکی دیگر از پرس و جوهای (query های) MySQL، دستور حذف ردیف ها با استفاده از DELETE است که در ادامه با آن آشنا خواهیم شد، آشنایی دقیق با این دستور از این لحاظ حائز اهمیت است که اگر در تعیین پارامترهای آن اشتباهی انجام دهیم، ممکن است موجب حذف مواردی ناخواسته شویم.
شیوه نگارش (syntax) دستور DELETE
نحوه استفاده از دستور DELETE در MySQL شباهت زیادی با سایر دستوراتی که تا این لحظه بررسی کرده ایم (مانند SELECT، UPDATE و...) دارد و البته رعایت نکات خاص آن نیز ضروری است، به مثال زیر توجه کنید.
<?php
mysql_query("DELETE FROM table WHERE id = '1'")
or die(mysql_error());
?>
با این دستور ساده، ردیف یا ردیف هایی در دیتابیس که مقادیر ستون id آنها برابر عدد 1 باشد حذف خواهند شد، ملاحظه می کنید که اگر به فرض پارامتر WHERE استفاده نشود یا اینکه به اشتباه تعیین گردد، موجب حذف موارد ناخواسته خواهد شد، لذا در استفاده از دستور DELETE باید دقت نمود و قبل از هر چیز از اطلاعات حساس دیتابیس پشتیبان تهیه کرده و دستورات را نیز قبل از استفاده نهایی، حتی الامکان تست کرد.
یک مثال کاربردی با دستور DELETE
توابع تجمعی (Aggregate Functions) در MySQL
اگر آموزش های مقدماتی بخش MySQL را دنبال کرده باشید، حتما به خاطر دارید در مبحث گذشته که در مورد استفاده از GROUP BY صحبت کردیم، گفتیم که توابع مربوط به GROUP BY را در اصطلاح توابع تجمعی یا aggregate functions می گویند (شامل COUNT، MAX، MIN، SUM، AVG و...) و قرار شد که در آموزش های بعد به آن بپردازیم، از این رو طبق روال، این مطلب را اختصاص داده ایم به مبحث مذکور تا با فراگیری آن، بیش از پیش و با تسلط بیشتر بتوانیم به نحو دلخواه با php، اطلاعات موجود در دیتابیس MySQL را مدیریت کنیم، ذکر این نکته نیز لازم است که استفاده از این توابع همیشه هم ضروری نیست و بستگی به نوع نیاز شما دارد، اما در کل یک برنامه نویس خوب کسی است که از همه ظرفیت های موجود آگاه باشد، حتی اگر از آنها هرگز استفاده نکند.
توابع تجمعی (Aggregate Functions) به چه معنی است؟
شاید این سوال به ذهن شما رسیده باشد که در کل توابع تجمعی (Aggregate Functions) به چه معنی است؟ پاسخ این سوال را اینگونه می توان داد که در PHP و MySQL برای گروه بندی در هنگام کار با اطلاعات عددی و آماری و بدست آوردن نتایج، بعد از یک سری محاسبات ریاضی (در حد معمولی یا پیشرفته)، توابعی از پیش تعریف شده که با تنظیم آنها در هنگام پرس و جو از پایگاه داده، طبق نیاز ما عملیات مورد نظر انجام شده و نتایج برگردانده می شوند، به فرض در مثالی که در ادامه خواهیم دید، اطلاعات خودروهایی با قیمت ها و رنگ های مختلف در دیتابیس موجود است، حال اگر بخواهیم خودرو ها را بر اساس رنگ گروه بندی کرده و در عین حال، ارزان ترین قیمت آن رنگ ها را انتخاب کنیم، ناچاریم از تابع MIN که جزء Aggregate Functions است استفاده نمائیم (در ادامه خواهیم دید).
ساخت جدول و وارد کردن اطلاعات نمونه در MySQL
به روز رسانی ردیف ها در MySQL با UPDATE
یکی دیگر از دستورات مربوط به مدیریت اطلاعات در MySQL، دستور UPDATE است که پس از INSERT INTO و SELECT FROM می تواند بیشترین کاربرد را داشته باشد، فلسفه پیدایش و تعریف این دستور نیز به این جهت است که بتوانیم بدون حذف ردیف های موجود، اطلاعات آنها را به روز کنیم، به طور مثال فرض کنید اسامی افرادی را در یک جدول به همراه شماره تلفن آنها ذخیره کرده ایم و اکنون می خواهیم بدون اینکه ردیف مورد نظر حذف شود، تنها شماره تماس فرد را تغییر دهیم، یعنی اطلاعات قبلی مربوط به شماره تماس را حذف و اطلاعات جدید را جایگزین آن کنیم، در این گونه موارد است که دستور UPDATE کاربرد دارد، در ادامه به صورت جزئی تری با این دستور آشنا خواهیم شد.
شیوه نگارش (syntax) دستور UPDATE
شیوه نگارش (syntax) و نحوه استفاده از دستور UPDATE در MySQL بسیار ساده و کاربردی است، در واقع مانند سایر دستورهای مربوط به پایگاه داده، از جمله INSERT INTO و SELECT FROM، دستور UPDATE نیز از عناصر تعریف شده و خاص خود پیروی می کند که عبارتند از SET،UPDATE و WHERE، عنصر UPDATE بخش کلیدی پرس و جو، SET عملیات مورد نظر و WHERE ردیف هایی است که تحت تاثیر قرار می گیرند، به مثال زیر توجه کنید
آشنایی با mysql_query در php و دیتابیس
تا این مرحله از آموزش مقدماتی کار با php و MySQL، دیدیم که چگونه می توان به کمک دستورات php، دیتابیس، جدول و ردیف ساخت و اطلاعات را در آنها ذخیره نمود، همان طور که در مثال های گذشته اشاره شد، تابع mysql_query، یکی از پرکاربرد ترین توابعی است که در کار با پایگاه داده با آن سر و کار داریم، این تابع به صورت پیش فرض در مفسر php وجود دارد و با پارامترهای آن می توان به راحتی موارد مورد نیاز و منظور خود را به سیستم انتقال داد، در این مطلب می خواهیم نگاهی اجمالی داشته باشیم به نحوه انتخاب و نمایش مطالب از دیتابیس به کمک تابع mysql_query و بحث تفضیلی را به آموزش های بعدی موکول می کنیم.
انتخاب اطلاعات از دیتابیس با php و mysql
در کار با سیستم مدیریت پایگاه داده، انتخاب اطلاعات از دیتابیس امری عادی و پرکاربرد است، مثلا اگر بخواهید مطالب خود را به کاربران نشان دهید، باید آنها را از دیتابیس انتخاب و به صفحه مرورگر انتقال دهید، این کار در php و mysql به کمک عنصری به نام SELECT انجام می شود، به همراه این عنصر، باید از FROM نیز استفاده کنیم، به اینصورت به سیستم خواهیم گفت که ما قصد انتخاب از چه جدولی را داریم، برای مثال کد زیر شیوه نگارش یک درخواست از پایگاه داده به کمک SELECT و FROM را نشان می دهید
انتخاب ردیف ها با دستور SELECT FROM در MySQL
تا این قسمت از آموزش مقدماتی کار با mysql و کدهای php، دیدیم که چگونه با دستورات مربوط به پایگاه داده در mysql، php را مدیریت کنیم، نحوه اتصال، ساخت دیتابیس، جدول و ردیف با دستور CREATE را فرا گرفتیم و اطلاعات را با INSERT INTO در پایگاه داده خود ذخیره کردیم، همچنین در آموزش قبلی به طور مختصر کلیاتی در رابطه با mysql_query گفتیم و وعده دادیم که در ادامه در این خصوص بیشتر خواهیم گفت، اکنون می خواهیم به وعده خود جامع عمل بپوشانیم و در مورد دستور SELECT FROM در MySQL صحبت کنیم.
کاربرد SELECT FROM در MySQL چیست؟
اگر خاطرتان باشد، پیش تر گفتیم که صرف ساخت دیتابیس، جدول و ردیف و وارد کردن اطلاعات در آن، تمام نیازهایمان (و شاید خیلی از نیازهایمان) را پوشش نمی دهد، با این کار، صرفا اطلاعات را دریافت می کنیم، اما اگر بخواهیم از آنها مجددا استفاده نمائیم، نیاز داریم که به کمک PHP موارد را فراخوانی کنیم، این کار در تعامل بین PHP و MySQL توسط SELECT FROM و پارامترهای آن انجام می شود که وظیفه دارد با توجه به نیاز شما و تنظیماتی که انجام داده اید، اطلاعات خاصی را از ردیف های موجود در جداول، فراخوانی کند، تا پردازش روی آنها صورت گرفته و به خروجی ارسال شوند.
شیوه نگارش (syntax) دستور SELECT FROM در MySQL
استفاده از ORDER و GROUP در MySQL
در ادامه آموزش مقدماتی کار با php و mysql، نوبت به آشنایی با نحوه استفاده از دستورات ORDER BY و GROUP BY رسیده است، با ذکر این مقدمه که دستورات ذکر شده در واقع با هدف دسته بندی و مرتب سازی دقیق تر نتایج و به دست آوردن مقادیر مورد نظر در هنگام کار با php و mysql ایجاد شده اند، به عبارتی دیگر، در برنامه نویسی کاربردی، مواردی پیش می آید که ناگزیریم اطلاعات را به صورت مرتب شده نشان دهیم، یا نتایج مشابه را در یک مورد خلاصه کنیم، اینجاست که کاربرد ORDER BY و GROUP BY رهگشای ما خواهد بود که در ادامه آموزش به آن خواهیم پرداخت.
دستور ORDER BY
همانطور که در مباحث گذشته از آموزش مقدماتی MySQL به طور مختصر دیدیم، از ORDER BY در یک دستور SELECT * FROM استفاده می شود، هدف از به کاربردن آن، تفهیم نحوه مرتب سازی و چینش سلیقه ای و سفارشی نتایج و ردیف های درخواست شده از mysql است، به فرض اگر کاربرانی با مقادیر سنی متفاوت در سایت خود داشته باشیم و بخواهیم اسامی آنها را بر اساس سن مرتب کنیم، خواهیم نوشت
استفاده از JOIN و ساخت پرس و جوی ترکیبی در MySQL
مطالبی که تا این لحظه از بخش آموزش مقدماتی MySQL فرا گرفته ایم معمولا برای حالت های متداول و کار با جداول به صورت مجزا کافی خواهند بود، اما در برنامه نویسی های پیشرفته تر و در طراحی ساختار برنامه های پیچیده نیاز به نوشتن پرس و جوهای ترکیبی و برقراری تعامل بیشتر بین جداول موجود در دیتابیس است، این نیاز سبب شده که قابلیت دیگری تحت عنوان JOIN (و مشتقات آن) به دستورات MySQL اضافه شود که به کمک آن می توان پرس و جوهای ترکیبی نوشت و بین جداول مختلف ارتباط برقرار کرد، در ادامه راجب آن بیشتر خواهیم گفت.
ساخت جداول فرضی با دستور CREATE
برای درک بهتر نحوه عملکرد دستور JOIN پیش از هر چیز لازم است که چند جدول و ستون فرضی با مقادیری از پیش تعریف شده بسازیم که در زیر پرس و جوی آن را ملاحظه می کنید.
نکته: پیش از اجرای کدهای زیر باید از طریق برنامه phpMyAdmin دیتابیسی با نام فرضی test بسازید، دقت کنید که Collation دیتابیس بر روی utf8_persian_ci تنظیم شده باشد
تعداد صفحات : 1
صفحه قبل 1 صفحه بعد |