۳۰-فروردین-۱۳۹۵, ۱۳:۰۴:۰۴
در درس قبل با پایگاه داده ها و مفاهیم مهم در این زمینه آشنایی پیدا کردیم. یاد گرفتیم که چطور می شود پایگاهی برای انبار کردن داده ها با استفاده از phpMyAdmin ساخت. با توجه به آسانی کار در محیط این برنامه که به صورت «رابط کاربر گرافیکی» است، ابتدا از این ابزار برای بیان چگونگی ساخت پایگاه و متعلقاتش بهره بردیم، اما نکته در این است که در زمان نوشتن برنامه ای به زبان پی اچ پی و اتصال به پایگاه از داخل برنامه، باید از کدهای زبان SQL استفاده کنیم.
این کاربر هنگام نصب نرمافزار همراه بقیه موارد نصب می شود و برای استفاده از آن باید از محیط خط دستور یا همان Command Prompt Interface استفاده کرد. در شروع باید از طریق مسیر زیر (در سیستم عامل ویندوز) به CMD مراجعه کنید:
لطفا به طرز انجام این کار دقت کنید:
لطفا تغییرات را بر اساس نام کاربری و رمز آن وارد کنید. موارد مهمی که اغلب نیاز به تغییر دارند به شرح زیر هستند:
حال با دوباره راه اندازی برنامه همه چیز درست می شود. اگر مطابق چیز گفته شده عمل کنید، به مشکل دیگری بر نخواهید خورد. در صورت داشتن خطای دیگر می توانید با جستجوی متن خطا در گوگل دلیل آن را هم پیدا کنید.
خب حال ما به سرویس دهنده پایگاه دسترسی داریم. برای دیدن باقی پایگاه ها به شکل زیر عمل می کنیم:
این کار لیستی از تمام پایگاه دادهها را برای مان نمایش می دهد.
اجازه بدهید با پاک کردن پایگاه هایی که دیروز ساختیم شروع کنیم:
حال فرض کنید می خواهیم پایگاه داده جدیدی ساخته و در آن جدول درس قبلی را هم اضافه کنیم:
قبل از ساخت جدول ابتدا باید مشخص کنیم که در کدام پایگاه می خواهیم جدول اضافه کنیم:
خب تا به اینجا پایگاهی با نام darsnameh ساخته شد و به آن متصل شدیم، مرحله بعدی ساخت جدول و ستون هایش است. جدولدرس قبل یادتان هست؟
ساختار درست کردن جدول به شکل زیر است:
نام جدول که users است و دارای ۵ ستون. ابتدا باید جدول و ستون هایش را ساخت، وارد کردن داده ها باید در مرحله دیگری صورت بپذیرد:
خروجی دستور به صورتی که مشاهده می کنید می شود. برای دیدن جزییات جدول دستور زیر را بزنید:
نکته: فراموش نکنید که قبل از هر کاری با پایگاه داده ها، باید ابتدا آن را انتخاب کنید:
خب تا به اینجا ما دو شیوه ساخت پایگاه داده ها و نحوه کار با آن را یاد گرفتیم. مرحله بعدی انبار کردن یا نوشتن داده ها در پایگاه است. برای نوشتن داده ای در پایگاه می توان به دو صورت عمل کرد.
پس این یک ضرورت است که با این زبان هم آشنا باشیم؛ البته کار بسیار راحتی است و دستورات بسیار محدود و ساده. در این درس با توجه به آشنایی مقدماتی درس قبلی با برنامه MySQL که از زبان SQL بهره میبرد، تلاش می کنیم که زبان SQL را شرح دهیم.
MySQL و SQL
قبل از ورود به بحث لازم دیدیم یک بار دیگر در مورد این دو مفهوم توضیح کوتاهی بدهیم، باشد که تعریف واضع تر باعث فهم بهتر هر کدام از این دو گردد.
قبل از ورود به بحث لازم دیدیم یک بار دیگر در مورد این دو مفهوم توضیح کوتاهی بدهیم، باشد که تعریف واضع تر باعث فهم بهتر هر کدام از این دو گردد.
SQL یا Structured Query Language
این یک زبان برنامه نویسی ویژه ای است که به منظور مدیریت داده ها در سیستم های مدیریتی پایگاه داده های ارتباطی (RDBSM) نوشته شده است. سیستم های مدیریتی پایگاه داده های ارتباطی، به سیستم هایی گفته می شود که داده ها در داخل پایگاه براساس ارتباط بین شان انبار می شوند و در زمان خواندن از آنها، می توان با توجه به ارتباط داخلی، داده ها را فراخوانی کرد.
این یک زبان برنامه نویسی ویژه ای است که به منظور مدیریت داده ها در سیستم های مدیریتی پایگاه داده های ارتباطی (RDBSM) نوشته شده است. سیستم های مدیریتی پایگاه داده های ارتباطی، به سیستم هایی گفته می شود که داده ها در داخل پایگاه براساس ارتباط بین شان انبار می شوند و در زمان خواندن از آنها، می توان با توجه به ارتباط داخلی، داده ها را فراخوانی کرد.
MySQL
این یک نرم افزار است که از زبان SQL استفاده می کند و ما معمولا آن را بر روی رایانه خود نصب می کنیم. می توان گفت که MySQL موتوری است که دستورات SQL را اجرا می کند. البته نرمافزارهای دیگری هم هستند که از زبان SQL برای ساخت و کار پایگاه داده ها استفاده می کنند. به طور مثال شرکت مایکروسافت نرم افزاری بنام Microsoft SQL Server دارد و یا شرکت Oracle نرم افزاری با همین نام دارد که همه آنها از زبان SQL در نرم افزار خود استفاده می کنند.
این یک نرم افزار است که از زبان SQL استفاده می کند و ما معمولا آن را بر روی رایانه خود نصب می کنیم. می توان گفت که MySQL موتوری است که دستورات SQL را اجرا می کند. البته نرمافزارهای دیگری هم هستند که از زبان SQL برای ساخت و کار پایگاه داده ها استفاده می کنند. به طور مثال شرکت مایکروسافت نرم افزاری بنام Microsoft SQL Server دارد و یا شرکت Oracle نرم افزاری با همین نام دارد که همه آنها از زبان SQL در نرم افزار خود استفاده می کنند.
اگر هنوز تفاوت این دو برای تان روشن نیست، اشکالی ندارد؛ کمی صبر داشته باشید. همراه کار با پایگاه داده ها مفهوم مطالب بالا برای شما روشن تر خواهند شد.
دسترسی به MySQL Server
برای دسترسی به سرویس دهنده پایگاه داده ها و ساخت جدول و... ما نیاز به یک سطح دسترسی کاربری داریم. در درس قبل انجام این کار را توسط محیط phpMyAdmin دیدیم، اما در این درس این کار را توسط CMD انجام می دهیم.
کاربر MySQLبرای دسترسی به سرویس دهنده پایگاه داده ها و ساخت جدول و... ما نیاز به یک سطح دسترسی کاربری داریم. در درس قبل انجام این کار را توسط محیط phpMyAdmin دیدیم، اما در این درس این کار را توسط CMD انجام می دهیم.
این کاربر هنگام نصب نرمافزار همراه بقیه موارد نصب می شود و برای استفاده از آن باید از محیط خط دستور یا همان Command Prompt Interface استفاده کرد. در شروع باید از طریق مسیر زیر (در سیستم عامل ویندوز) به CMD مراجعه کنید:
نقل قول: Start\ All Programs\Accessories\Command Promptراه دیگر هم دسترسی مستقیم به CMD از طریق گرفتن دکمه «پنجره» در صفحه کلید و انتخاب حرف R است. بعد در داخل کادری که باز میشود حروف cmd را بنویسید و دکمه Enter را بزنید.
هر دوی این ها به پنجره سیاه رنگ CMD در ویندوز ختم میشوند. در لینوکس نام این ابزار را Terminal می نامند که به خاطر گوناگونی نمای صفحه در نسخه های مختلف لینوکس هر کدام راه دسترسی خود را دارد.
نکته: برای کسانی که از Wamp Server استفاده می کنند، یک راه بسیار ساده وجود دارد. باید بر روی نشان برنامه در قسمت راست پایین صفحه کلیک کنید، بعد نشانگر را بر روی MySQL برده تا گزینه MySQL Console را مشاهده کنید. با این انتخاب مستقیما به پایگاه وصل می شوید.
حال فرض می کنیم که می خواهیم از داخل CMD وارد پایگاه شویم. پایگاه شما در داخل پوشه ای است که Wamp Server در آن نصب شده، پس باید به داخل آن پوشه رفت و دنبال پوشه ای به نام bin گشت. ما این برنامه را در دایرکتوری I نصب کرده ایم، پس آدرس ما به صورت زیر است:نقل قول: I:\wamp\bin\mysql\mysql5.5.24\binاین مسیر پوشه bin در رایانه ماست که آدرس ابتدایی به محل نصب بستگی دارد. به طور مثال اگر شما Wamp را در دایرکتوری C نصب کنید آدرس می شود:
نقل قول: C:\wamp\bin\mysql\mysql5.5.24\binاین مسیر را باید از داخل cmd رفت. فرض کنید اکنون cmd ما را در داخل دایرکتوری C نشان می دهد.
لطفا به طرز انجام این کار دقت کنید:
نقل قول: C:\> I: // داخل دایرکتوری شواین دستور ما را به پایگاه داده ها با شناسه کاربری root بدون هیچ روزی وصل می کند. اما این کار به دلایل امنیتی درست نیست و بهتر آن است که برای شناسه root یک رمز برگزینیم:
I:\> // حال اینجا هستیم
I:\> cd wamp\bin\mysql\mysql5.5.24\bin // ورود به آدرس جدید
I:\wamp\bin\mysql\mysql5.5.24\bin> // bin داخل پوشه
I:\wamp\bin\mysql\mysql5.5.24\bin> mysql -u root
نقل قول: I:\wamp\bin\mysql\mysql5.5.24\bin> mysqladmin -u root password "darsnameh"حال کاربر ریشه پایگاه رمز "darsnameh" را داراست. برای ورود باید به شیوه زیر عمل کرد:
نقل قول: برای جلوگیری از تکرار، از نوشتن آدرس دیگر خودداری می کنیم >mysql -u root -pاین علامت ورود در پایگاه است. در حال حاضر به پایگاه داده ها وصل شدیم. البته برای ساختن کاربرهای جدید هم می توانید به طریق زیر عمل کنید:
Enter Password: darsnameh
mysql>
نقل قول: >CREATE USER 'test' IDENTIFIED BY 'your_password';نکته: در صورت تغییر رمز کاربر ریشه به هنگام باز کردن صفحه phpMyAdmin، به یک خطا می خورید. برای رفع این مشکل باید رمز را در داخل فایل تنظیمات وارد کنید. ابتدا به آدرس زیر رفته:
نقل قول: wamp\apps\phpmyadminو فایل config.inc.php را توسط ویرایشگر باز نموده و تغییرات زیر را انجام دهید:
کد php:
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'dars';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
کد php:
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'dars';
حال با دوباره راه اندازی برنامه همه چیز درست می شود. اگر مطابق چیز گفته شده عمل کنید، به مشکل دیگری بر نخواهید خورد. در صورت داشتن خطای دیگر می توانید با جستجوی متن خطا در گوگل دلیل آن را هم پیدا کنید.
خب حال ما به سرویس دهنده پایگاه دسترسی داریم. برای دیدن باقی پایگاه ها به شکل زیر عمل می کنیم:
کد php:
> show datanases;
این کار لیستی از تمام پایگاه دادهها را برای مان نمایش می دهد.
اجازه بدهید با پاک کردن پایگاه هایی که دیروز ساختیم شروع کنیم:
کد php:
> DROP DATABASE darsnameh;
کد php:
> CREATE DATABASE darsnameh ;
کد php:
> USE darsnameh ;
Database changed // پیام تغییر پایگاه
خب تا به اینجا پایگاهی با نام darsnameh ساخته شد و به آن متصل شدیم، مرحله بعدی ساخت جدول و ستون هایش است. جدولدرس قبل یادتان هست؟
ساختار درست کردن جدول به شکل زیر است:
کد:
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
);
کد:
> CREATE TABLE users
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(20) NOT NULL,
LastName VARCHAR(40) NOT NULL,
Email VARCHAR(50),
PRIMARY KEY (ID)
) ;
- INT: نوع صحیح، نوع داده هایی که در این ستون قرار می گیرند.
- UNSIGNED: این داده ها بدون علامت و همه مثبت هستند.
- NOT NULL: این خانه نمی تواند خالی بماند و حتما باید مقدار داشته باشد.
- AUTO_INCREMENT: مقدار خانه ها را به طور اتوماتیک از 1 به بعد وارد می کند.
- VARCHAR(20): نوع رشته ای، نوع داده هایی که در این ستون باید وارد شوند.
- PRIMARY KEY (ID): انتخاب ستون ID به عنوان ستون کلیدی.
- PRIMARRY KEY: وقتی به ستونی این المان را اضافه می کنید، آن ستون تبدیل به ستون منحصر به فرد می شود و رکوردهایی که می خواهید وارد جدول کنید را منحصر به فرد میکند.
هر جدول باید یک کلید اصلی داشته باشد و هر جدول تنها میتواند یک کلید اصلی داشته باشد. ستون کلید اصلی هرگز نمیتواند مقدار NULL داشته باشد. NULL مقداری است به معنی هیچ اما با ستون خالی متفاوت است. مقداری که وارد ستون کلید اصلی می شود باید منحصر به فرد باشد.
اینها ویژگیهای ستون کلید اصلی دار هستند که باعث ایجاد قابلیت هایی در مورد نوشتن، خواندن و جستجو در جدول می شوند. در ادامه دوره با استفاده از این ویژگی، مفهوم آن بیشتر روشن خواهد شد.
در بخش قبل ما یک پایگاه داده ها درست کردیم و در درون آن هم جدولی ساختیم. حال برای دیدن جدول کافی است که دستور زیر را وارد کنید:کد:
> SHOW TABLES;
mysql> SHOW TABLES;
+---------------------+
| Tables_in_darsnameh |
+---------------------+
| users |
+---------------------+
1 row in set (0.00 sec)
خروجی دستور به صورتی که مشاهده می کنید می شود. برای دیدن جزییات جدول دستور زیر را بزنید:
نقل قول: EXPLAIN users;هر دوی این دستورات مشخصات جدول را برای شما نشان می دهند.
و یا
DESCRIBE users;
نکته: فراموش نکنید که قبل از هر کاری با پایگاه داده ها، باید ابتدا آن را انتخاب کنید:
نقل قول: > USE darsnameh;
خب تا به اینجا ما دو شیوه ساخت پایگاه داده ها و نحوه کار با آن را یاد گرفتیم. مرحله بعدی انبار کردن یا نوشتن داده ها در پایگاه است. برای نوشتن داده ای در پایگاه می توان به دو صورت عمل کرد.
۱- استفاده از محیط و دستورات SQL: با این شیوه می توان به طور مستقیم داده ها را وارد جدول پایگاه نمود.
۲- استفاده از پی اچ پی برای ثبت داده ها در پایگاه: در داخل کدهای پی اچ پی از دستورات SQL استفاده کرده و داده ها را در آن می گذاریم.
از آنجایی که هدف ما یادگیری MySQL یا همان پایگاه داده های MySQL برای استفاده و تعامل با پی اچ پی است، از مورد اول صرف نظر می کنیم. اما این نکته را هم لحاظ کنید که شیوه کار چه به صورت مستقیم و چه به صورت استفاده از پی اچ پی، یکی است؛ پس با یادگیری دستورات توانایی هر دو را خواهید داشت.
این درس را هم در اینجا به پایان می بریم، شیوه یادگیری زبان برنامه نویسی SQL در این دوره به صورتی خواهد بود که دستورات SQL را به طور موازی با پی اچ پی در زمان های لازم ارائه خواهیم داد. به این ترتیب شما با مفاهیم پیشرفته SQL به طور عملی و در حال بکارگیری آن بهتر آشنا خواهید شد.
در درس بعد ما به سراغ تارنمای خودمان رفته و موارد یاد گرفته شده تا به امروز را در آن پیاده می کنیم. پس لطفا قبل از اینکه به درسبعدی بروید، تا جای ممکن تلاش کنید که مفاهیم گفته شده را خوب یاد بگیرید، چرا که از این به بعد از تمام این موارد در ساخت الگوهای مورد استفاده در تارنما استفاده خواهیم کرد.