مقدمهای بر MySQL
مقدمهای بر MySQL
آشنایی با یکی از پرکاربردترین سیستمهای مدیریت پایگاه داده، شناخت مفاهیم پایه و یادگیری نقش آن در ذخیرهسازی و مدیریت اطلاعات.
۱. مقدمه؛ چرا به پایگاه داده نیاز داریم؟
امروزه تقریباً تمام نرمافزارها و وبسایتها با حجم زیادی از اطلاعات سروکار دارند. برای مثال، یک فروشگاه اینترنتی باید اطلاعات مشتریان، محصولات، سفارشها، پرداختها و موجودی کالاها را ذخیره و مدیریت کند.
اگر قرار باشد تمام این اطلاعات در فایلهای پراکنده و بدون ساختار ذخیره شوند، پیدا کردن اطلاعات، ویرایش آنها و جلوگیری از تکرار یا اشتباه بسیار دشوار خواهد بود. به همین دلیل از پایگاه داده استفاده میکنیم.
پایگاه داده محلی سازمانیافته برای ذخیرهسازی اطلاعات است که امکان ثبت، جستوجو، ویرایش، حذف و مدیریت دادهها را فراهم میکند.
۲. پایگاه داده چیست؟
Database یا پایگاه داده، مجموعهای سازمانیافته از اطلاعات مرتبط است که به شکلی ساختاریافته ذخیره میشوند تا دسترسی و مدیریت آنها سادهتر باشد.
در پایگاه دادههای رابطهای، اطلاعات معمولاً در قالب جدولها نگهداری میشوند. هر جدول از سطرها و ستونهایی تشکیل شده است.
اجزای اصلی یک جدول
- جدول (Table): محلی برای نگهداری مجموعهای از اطلاعات مرتبط.
- سطر (Row): یک رکورد یا یک نمونه از اطلاعات ثبتشده.
- ستون (Column): ویژگی یا مشخصهای که برای هر رکورد ذخیره میشود.
- فیلد (Field): محل نگهداری یک مقدار مشخص در یک رکورد.
- رکورد (Record): مجموعه مقادیر مربوط به یک سطر از جدول.
مثال: جدول دانشآموزان
جدول زیر اطلاعات فرضی چند دانشآموز را نشان میدهد:
| شماره دانشآموزی | نام | نام خانوادگی | پایه | سن |
|---|---|---|---|---|
| 1001 | علی | احمدی | دهم | 16 |
| 1002 | سارا | محمدی | یازدهم | 17 |
| 1003 | رضا | کریمی | دهم | 16 |
- این مجموعه اطلاعات یک جدول به نام دانشآموزان است.
- ستون نام، یکی از ویژگیهای دانشآموزان را مشخص میکند.
- هر سطر اطلاعات یک دانشآموز را تشکیل میدهد.
- عدد 1001 یک مقدار در ستون شماره دانشآموزی است.
۳. سیستم مدیریت پایگاه داده چیست؟
برای ایجاد و مدیریت پایگاه داده به نرمافزاری نیاز داریم که بتواند اطلاعات را ذخیره کند، تغییر دهد، بازیابی کند و دسترسی کاربران را کنترل کند. به چنین نرمافزاری سیستم مدیریت پایگاه داده یا DBMS (Database Management System) گفته میشود.
سیستم مدیریت پایگاه داده نقش واسطهای میان کاربر یا برنامه کاربردی و اطلاعات ذخیرهشده را بر عهده دارد.
وظایف مهم سیستم مدیریت پایگاه داده
- ایجاد پایگاه داده و جدولها.
- ذخیره و بازیابی اطلاعات.
- افزودن، ویرایش و حذف دادهها.
- مدیریت کاربران و سطح دسترسی آنها.
- کمک به حفظ صحت و یکپارچگی اطلاعات.
- مدیریت همزمان درخواستهای کاربران.
- امکان پشتیبانگیری و بازیابی اطلاعات با توجه به امکانات سیستم.
۴. MySQL چیست؟
MySQL یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) است که برای ذخیرهسازی، سازماندهی، بازیابی و مدیریت اطلاعات استفاده میشود.
در MySQL اطلاعات معمولاً در جدولهایی با ساختار مشخص ذخیره میشوند. این جدولها میتوانند از طریق ستونهای مرتبط به یکدیگر ارتباط داشته باشند.
برای کار با MySQL معمولاً از زبان SQL (Structured Query Language) استفاده میکنیم. این زبان به ما اجازه میدهد دستورهایی برای ایجاد جدول، ثبت اطلاعات، جستوجو و ویرایش دادهها بنویسیم.
نمونه کاربردهای MySQL
- ذخیره اطلاعات کاربران و اعضای یک وبسایت.
- مدیریت محصولات و سفارشهای فروشگاه اینترنتی.
- نگهداری اطلاعات دانشآموزان و نمرات آنها.
- مدیریت اطلاعات مشتریان و فاکتورهای یک شرکت.
- ذخیره اطلاعات مقالات، اخبار و مطالب یک سامانه.
۵. ویژگیها و مزایای MySQL
MySQL به دلیل ویژگیهای مختلف خود در بسیاری از پروژههای نرمافزاری و وبسایتها مورد استفاده قرار میگیرد.
۱. متنباز بودن
MySQL Community Edition نسخهای متنباز است که امکان استفاده و بررسی کد منبع آن مطابق مجوز مربوطه فراهم شده است. همچنین نسخهها و محصولات تجاری مرتبط نیز وجود دارند.
۲. سرعت و کارایی
MySQL برای پردازش درخواستهای پایگاه داده طراحی شده و با طراحی صحیح جدولها، استفاده مناسب از شاخصها و تنظیمات درست میتواند عملکرد مناسبی در بسیاری از برنامهها داشته باشد.
۳. پشتیبانی از چندکاربر
چندین کاربر یا برنامه میتوانند بهطور همزمان به پایگاه داده متصل شوند. نحوه مدیریت درخواستهای همزمان به تنظیمات و موتور ذخیرهسازی مورد استفاده نیز بستگی دارد.
۴. امنیت و کنترل دسترسی
امکان تعریف کاربران، تعیین رمز عبور و اختصاص مجوزهای مختلف برای دسترسی به پایگاه داده و جدولها وجود دارد.
۵. پشتیبانی از ارتباط میان جدولها
در پایگاه داده رابطهای میتوان جدولهای مرتبط را با استفاده از کلیدهای اصلی و خارجی به یکدیگر متصل کرد.
۶. سازگاری با زبانهای برنامهنویسی
برنامههای نوشتهشده با زبانهایی مانند PHP، Python، Java و Node.js میتوانند با استفاده از درایورها و کتابخانههای مناسب به MySQL متصل شوند.
۶. آشنایی با زبان SQL
SQL مخفف عبارت Structured Query Language و به معنای زبان پرسوجوی ساختاریافته است.
این زبان برای ارتباط با پایگاه دادههای رابطهای استفاده میشود. با کمک SQL میتوانیم اطلاعات را ایجاد، ثبت، جستوجو، ویرایش و حذف کنیم.
دستهبندی مهم دستورهای SQL
| دسته | نام کامل | کاربرد | دستورهای نمونه |
|---|---|---|---|
| DDL | Data Definition Language | تعریف و تغییر ساختار پایگاه داده | CREATE, ALTER, DROP |
| DML | Data Manipulation Language | افزودن، ویرایش و حذف اطلاعات | INSERT, UPDATE, DELETE |
| DQL | Data Query Language | بازیابی و جستوجوی اطلاعات | SELECT |
| DCL | Data Control Language | مدیریت مجوزهای دسترسی | GRANT, REVOKE |
| TCL | Transaction Control Language | مدیریت تراکنشها | COMMIT, ROLLBACK |
۷. MySQL چگونه کار میکند؟
MySQL معمولاً به شکل یک سیستم Client-Server فعالیت میکند. در این ساختار، یک برنامه یا کاربر به سرور پایگاه داده درخواست ارسال میکند. سرور درخواست را بررسی و پردازش میکند و نتیجه را برمیگرداند.
کاربر یا برنامه
پردازش درخواستها
اطلاعات ذخیرهشده
مراحل ساده اجرای یک درخواست
۸. موتور ذخیرهسازی در MySQL
در MySQL موتور ذخیرهسازی (Storage Engine) بخشی است که نحوه ذخیرهسازی، بازیابی و مدیریت اطلاعات جدولها را تعیین میکند.
MySQL از موتورهای ذخیرهسازی مختلفی پشتیبانی میکند. دو نمونه شناختهشده عبارتاند از:
موتور InnoDB
- پشتیبانی از تراکنشها.
- پشتیبانی از کلیدهای خارجی.
- قابلیت بازیابی پس از خرابی با سازوکارهای مربوطه.
- قفلگذاری در سطح رکورد در بسیاری از عملیات.
موتور MyISAM
- یکی از موتورهای قدیمی MySQL.
- از تراکنشها و کلیدهای خارجی پشتیبانی نمیکند.
- از قفلگذاری در سطح جدول استفاده میکند.
۹. اولین آشنایی عملی با دستورهای MySQL
برای درک بهتر ساختار دستورهای SQL، چند دستور ساده را بررسی میکنیم. این دستورها نمونههای آموزشی هستند و باید در محیطی که MySQL Server روی آن نصب و فعال است اجرا شوند.
مثال اول: مشاهده نسخه MySQL
برای مشاهده نسخه سرور پایگاه داده میتوانیم از دستور زیر استفاده کنیم:
SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.36 |
+-----------+
نسخه نمایشدادهشده صرفاً نمونه است و مقدار واقعی به نسخه نصبشده روی سیستم بستگی دارد.
مثال دوم: ایجاد یک پایگاه داده
برای ایجاد پایگاه دادهای با نام فروشگاه از دستور CREATE DATABASE استفاده میکنیم:
CREATE DATABASE shop_db;
در صورت اجرای موفق دستور، پایگاه دادهای با نام shop_db ایجاد میشود.
Query OK, 1 row affected
متن پیام ممکن است با توجه به محیط اجرا متفاوت باشد.
مثال سوم: انتخاب پایگاه داده
پس از ایجاد پایگاه داده، برای مشخص کردن پایگاه داده فعال از دستور USE استفاده میکنیم:
USE shop_db;
پس از اجرای موفق دستور، دستورات بعدی در همین نشست بهصورت پیشفرض روی پایگاه داده shop_db اجرا خواهند شد.
Database changed
مثال چهارم: ایجاد جدول محصولات
اکنون در پایگاه داده انتخابشده، جدولی برای نگهداری محصولات ایجاد میکنیم:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10,2),
quantity INT
);
جدولی با نام products و چهار ستون ایجاد میشود:
- id: شناسه یکتای هر محصول.
- name: نام محصول.
- price: قیمت محصول.
- quantity: تعداد موجودی محصول.
Query OK, 0 rows affected
پیام بالا نمونهای از پاسخ احتمالی سرور پس از اجرای موفق دستور است.
مثال پنجم: ثبت یک محصول
برای افزودن اطلاعات به جدول از دستور INSERT INTO استفاده میکنیم:
INSERT INTO products (name, price, quantity)
VALUES ('Keyboard', 850000, 12);
یک رکورد جدید در جدول ثبت میشود. مقدار ستون id بهصورت خودکار تولید خواهد شد.
Query OK, 1 row affected
مثال ششم: مشاهده اطلاعات محصولات
برای مشاهده اطلاعات جدول از دستور SELECT استفاده میکنیم:
SELECT * FROM products;
+----+----------+-----------+----------+
| id | name | price | quantity |
+----+----------+-----------+----------+
| 1 | Keyboard | 850000.00 | 12 |
+----+----------+-----------+----------+
این خروجی با فرض اجرای موفق مثالهای قبلی و خالی بودن اولیه جدول نمایش داده شده است.
۱۰. تفاوت MySQL با چند ابزار و فناوری مرتبط
گاهی نام MySQL در کنار ابزارهایی مانند phpMyAdmin یا XAMPP شنیده میشود. شناخت تفاوت آنها به درک بهتر محیط کار کمک میکند.
| نام | نوع | وظیفه |
|---|---|---|
| MySQL | سیستم مدیریت پایگاه داده | ذخیره و مدیریت اطلاعات |
| SQL | زبان پرسوجو | ارسال دستور به پایگاه داده |
| phpMyAdmin | ابزار تحت وب | مدیریت پایگاه داده از طریق رابط گرافیکی |
| XAMPP | بسته نرمافزاری | فراهمکردن محیط محلی توسعه وب و ابزارهای مرتبط |
| MySQL Workbench | ابزار گرافیکی | مدیریت، طراحی و اجرای پرسوجوهای پایگاه داده |
۱۱. مفهوم رابطه میان جدولها
یکی از ویژگیهای مهم پایگاه دادههای رابطهای، امکان ارتباط دادن جدولها به یکدیگر است. بهجای ذخیره تمام اطلاعات در یک جدول بزرگ، میتوان اطلاعات را در جدولهای جداگانه سازماندهی کرد و با استفاده از کلیدها میان آنها ارتباط برقرار کرد.
مثال: ارتباط مشتری و سفارش
فرض کنید یک فروشگاه اینترنتی دو جدول به نامهای customers و orders دارد.
| جدول مشتریان (customers) | |
|---|---|
| customer_id | name |
| 1 | علی |
| 2 | سارا |
| جدول سفارشها (orders) | ||
|---|---|---|
| order_id | customer_id | amount |
| 101 | 1 | 500000 |
| 102 | 2 | 750000 |
| 103 | 1 | 300000 |
در این مثال، ستون customer_id در جدول مشتریان میتواند کلید اصلی و همین ستون در جدول سفارشها میتواند کلید خارجی باشد. به کمک این ارتباط میتوان مشخص کرد هر سفارش متعلق به کدام مشتری است.
customer_id
customer_id
هر سفارش به یک مشتری مشخص ارتباط داده میشود.
۱۲. اشتباهات رایج افراد مبتدی
SQL زبان کار با پایگاه داده است؛ اما MySQL نرمافزاری برای مدیریت پایگاه داده است.
پایگاه داده میتواند شامل چندین جدول مرتبط باشد. جدول فقط یکی از اجزای پایگاه داده است.
پیش از ایجاد جدول یا اجرای برخی دستورات، باید پایگاه داده موردنظر را با دستور USE انتخاب کرد.
ابزارهایی مانند phpMyAdmin برای مدیریت پایگاه داده به یک سرور پایگاه داده فعال نیاز دارند.
اطلاعات مهم باید بهصورت منظم پشتیبانگیری شوند تا در صورت خرابی، حذف اشتباهی یا بروز مشکل بتوان آنها را بازیابی کرد.
۱۳. جمعبندی درس
در این درس با مفاهیم اولیه پایگاه داده و سیستم مدیریت پایگاه داده آشنا شدیم و نقش MySQL را در ذخیرهسازی و مدیریت اطلاعات شناختیم.
- پایگاه داده محلی سازمانیافته برای نگهداری اطلاعات است.
- DBMS نرمافزار مدیریت پایگاه داده است.
- MySQL یک سیستم مدیریت پایگاه داده رابطهای است.
- SQL زبان ارتباط با پایگاه دادههای رابطهای است.
- اطلاعات در MySQL معمولاً در جدولهای دارای سطر و ستون ذخیره میشوند.
- با کلیدهای اصلی و خارجی میتوان میان جدولها ارتباط برقرار کرد.
- MySQL در وبسایتها، فروشگاهها و سامانههای اطلاعاتی کاربرد دارد.
۱۴. تمرین و خودآزمایی
برای بررسی میزان یادگیری خود، به پرسشهای زیر پاسخ دهید:
پرسشهای تشریحی
- پایگاه داده چیست و چه کاربردی دارد؟
- تفاوت پایگاه داده و سیستم مدیریت پایگاه داده چیست؟
- MySQL چه نوع سیستمی است؟
- زبان SQL چه نقشی در کار با MySQL دارد؟
- تفاوت سطر و ستون در یک جدول چیست؟
- منظور از کلید اصلی و کلید خارجی چیست؟
- وظیفه ابزار phpMyAdmin چیست؟
تمرین عملی
با استفاده از دستورهای آموزشدادهشده، یک پایگاه داده با نام school_db ایجاد کنید و سپس جدول students را با ستونهای زیر بسازید:
- id: شناسه دانشآموز از نوع عدد صحیح و کلید اصلی خودافزا.
- first_name: نام از نوع متن با حداکثر 50 نویسه.
- last_name: نام خانوادگی از نوع متن با حداکثر 80 نویسه.
- age: سن از نوع عدد صحیح.
سپس سه دانشآموز فرضی در جدول ثبت کنید و با دستور SELECT اطلاعات آنها را مشاهده کنید.

دیدگاه کاربران
نظر یا تجربه خود را درباره این مطلب با دیگران به اشتراک بگذارید.