بی آکادمی
آموزش HTML
آموزش CSS
جاوااسکریپت
آموزش SQL
آموزش MySQL
آموزش PHP
داکر دسکتاپ

📌 آموزش عملی MySQL


🎯 اهداف یادگیری

  • نصب و راه‌اندازی MySQL
  • اتصال به سرور MySQL
  • ایجاد اولین دیتابیس و جدول
  • آشنایی با محیط کار MySQL
  • اجرای اولین دستورات SQL

📌 نصب MySQL

برای شروع کار با MySQL، ابتدا باید آن را نصب کنید:

bash
# نصب MySQL در اوبونتو/دبیان
sudo apt update
sudo apt install mysql-server
# نصب MySQL در CentOS/RHEL
sudo yum install mysql-server
# نصب MySQL در macOS با Homebrew
brew install mysql

💡 روش‌های نصب MySQL

۱. نصب روی ویندوز

  1. از سایت رسمی MySQL Installer را دانلود کنید
  2. فایل نصبی را اجرا و MySQL Server را انتخاب کنید
  3. مراحل نصب را دنبال و پسورد root را تنظیم کنید
  4. MySQL Workbench را نیز نصب کنید (اختیاری اما توصیه می‌شود)

۲. نصب روی لینوکس (Ubuntu/Debian)

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

۳. استفاده از XAMPP/WAMP

برای توسعه وب، می‌توانید از پکیج‌های همه‌در‌یک استفاده کنید:

  • XAMPP (برای ویندوز، لینوکس، macOS)
  • WAMP (فقط ویندوز)
  • MAMP (برای macOS)

🔒 نکته امنیتی مهم:

بعد از نصب حتماً دستور mysql_secure_installation را اجرا کنید تا تنظیمات امنیتی اولیه اعمال شوند.

📌 راه‌اندازی سرویس MySQL

پس از نصب، سرویس MySQL را راه‌اندازی کنید:

bash
# راه‌اندازی سرویس MySQL
sudo systemctl start mysql
# فعال‌سازی سرویس برای راه‌اندازی خودکار
sudo systemctl enable mysql
# بررسی وضعیت سرویس
sudo systemctl status mysql

📌 اتصال به MySQL

پس از راه‌اندازی، می‌توانید به سرور MySQL متصل شوید:

bash
# اتصال به سرور MySQL
mysql -u root -p
# پس از اجرای دستور بالا، پسورد خواسته می‌شود
Enter password: your_password

🔌 روش‌های مختلف اتصال به MySQL

۱. خط فرمان (Command Line)

ساده‌ترین روش برای مدیریت دیتابیس:

mysql -h hostname -u username -p

پارامترها:

  • -h: نام هاست یا آدرس سرور (پیش‌فرض: localhost)
  • -u: نام کاربری (پیش‌فرض: root)
  • -p: درخواست پسورد (اختیاری اما توصیه می‌شود)

۲. ابزارهای گرافیکی (GUI)

برای مدیریت راحت‌تر با رابط کاربری:

  • MySQL Workbench (رسمی - توصیه شده)
  • phpMyAdmin (وب‌بیس - برای هاستینگ)
  • HeidiSQL (ویندوز)
  • DBeaver (چندپلتفرمی)

۳. اتصال برنامه‌نویسی

اتصال از طریق زبان‌های برنامه‌نویسی:

  • PHP: mysqli یا PDO
  • Python: mysql-connector-python
  • Java: JDBC Driver
  • Node.js: mysql2 package

📌 اولین دستورات MySQL

پس از اتصال، اولین دستورات را امتحان کنید:

sql
-- نمایش تمام دیتابیس‌ها
SHOW DATABASES;
-- ایجاد دیتابیس جدید
CREATE DATABASE my_first_db;
-- استفاده از دیتابیس
USE my_first_db;
-- نمایش جداول دیتابیس
SHOW TABLES;

🔍 درک دستورات اولیه MySQL

SHOW DATABASES

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

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

CREATE DATABASE

یک دیتابیس جدید ایجاد می‌کند:

CREATE DATABASE database_name;

نکات:

  • نام دیتابیس باید یکتا باشد
  • از کاراکترهای مجاز استفاده کنید
  • به حروف بزرگ و کوچک حساس نیست

USE

دیتابیس فعال برای کار را انتخاب می‌کند:

USE database_name;

تمام دستورات بعدی روی این دیتابیس اجرا می‌شوند.

📌 ایجاد اولین جدول

حالا اولین جدول خود را ایجاد کنید:

sql
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- نمایش ساختار جدول
DESCRIBE users;

🏗️ ساختار ایجاد جدول در MySQL

انواع داده‌های رایج:

  • INT: اعداد صحیح (مثلاً 1, 2, 3)
  • VARCHAR(n): رشته متنی با طول متغیر (مثلاً "علی")
  • TIMESTAMP: تاریخ و زمان (مثلاً 2023-12-20 10:30:00)
  • DATE: فقط تاریخ (مثلاً 2023-12-20)
  • DECIMAL(m,n): اعداد اعشاری دقیق (مثلاً 123.45)

قیدهای (Constraints) رایج:

  • PRIMARY KEY: شناسه یکتا برای هر رکورد
  • AUTO_INCREMENT: افزایش خودکار مقدار
  • NOT NULL: اجبار به داشتن مقدار
  • UNIQUE: مقدار یکتا در کل جدول
  • DEFAULT: مقدار پیش‌فرض

DESCRIBE table_name

ساختار جدول را نمایش می‌دهد:

+------------+--------------+------+-----+-------------------+-------------------+
| Field      | Type         | Null | Key | Default           | Extra             |
+------------+--------------+------+-----+-------------------+-------------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment    |
| first_name | varchar(50)  | NO   |     | NULL              |                   |
| last_name  | varchar(50)  | NO   |     | NULL              |                   |
| email      | varchar(100) | YES  | UNI | NULL              |                   |
| age        | int(11)      | YES  |     | NULL              |                   |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+------------+--------------+------+-----+-------------------+-------------------+

📌 درج داده اولیه

حالا داده‌های نمونه به جدول اضافه کنید:

sql
-- درج یک رکورد
INSERT INTO users (first_name, last_name, email, age)
VALUES ('علی', 'رضایی', 'ali@example.com', 25);
-- درج چند رکورد به صورت همزمان
INSERT INTO users (first_name, last_name, email, age)
VALUES
('فاطمه', 'محمدی', 'fatemeh@example.com', 30),
('محمد', 'احمدی', 'mohammad@example.com', 22);
-- مشاهده داده‌های درج شده
SELECT * FROM users;

📌 مدیریت دیتابیس‌ها و جداول

دستورات مفید برای مدیریت دیتابیس و جدول:

sql
-- تغییر نام جدول
ALTER TABLE users RENAME TO customers;
-- اضافه کردن ستون جدید
ALTER TABLE users ADD phone VARCHAR(15);
-- حذف جدول
<极 style="color: #C586C0;">DROP TABLE users;
-- حذف دیتابیس
DROP DATABASE my_first_db;

📌 خروج از MySQL

برای خروج از محیط MySQL:

sql
-- خروج از MySQL
EXIT;
-- یا
QUIT;
-- یا کلیدهای Ctrl + D

📌 تمرین عملی

یک دیتابیس برای وبلاگ ایجاد کنید:

sql
-- ایجاد دیتابیس وبلاگ
CREATE DATABASE blog_db;
USE blog_db;
-- ایجاد جدول کاربران
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE NOT NULL,
email <极 style="color: #4EC9B0;">VARCHAR(100) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ایجاد جدول پست‌ها
CREATE TABLE posts (
post_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200) NOT NULL,
content TEXT,
user_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);

راهنمای تمرین:

  1. دیتابیس blog_db را ایجاد کنید
  2. جدول users و posts را بسازید
  3. داده‌های نمونه به هر جدول اضافه کنید
  4. ساختار جدول‌ها را با DESCRIBE بررسی کنید
  5. داده‌ها را با SELECT مشاهده کنید
انجام تمرین

📌 عیب‌یابی مشکلات رایج

bash
# اگر MySQL شروع نمی‌شود:
sudo systemctl restart mysql
sudo journalctl -u mysql.service
# اگر پسورد root را فراموش کردید:
sudo mysql --defaults-file=/etc/mysql/debian.cnf
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

📌 قدم بعدی

در درس بعدی با دستورات CRUD پیشرفته در MySQL آشنا خواهیم شد!