ورقة MySQL المرجعية
مرجع MySQL قابل للبحث والطباعة — الاستعلامات والوصلات والفهارس والدوال وأنواع البيانات وأوامر الإدارة. مجاني.
الاستعلام
10SELECT * FROM users;
تحديد كل الأعمدة والصفوف
SELECT id, name FROM users;
تحديد أعمدة معينة
SELECT DISTINCT city FROM users;
القيم الفريدة فقط
WHERE age > 18 AND active = 1
تصفية الصفوف بشروط
WHERE name LIKE 'A%'
مطابقة نمط (% = أي أحرف)
WHERE id IN (1, 2, 3)
مطابقة أي قيمة في مجموعة
WHERE age BETWEEN 18 AND 30
تصفية بنطاق شامل
ORDER BY created_at DESC
فرز تنازلي
LIMIT 10 OFFSET 20
تقسيم النتائج لصفحات
WHERE email IS NULL
مطابقة القيم null
الضمّ (Joins)
8INNER JOIN orders ON orders.user_id = users.id
الصفوف المتطابقة في الجدولين
LEFT JOIN orders ON ...
كل صفوف اليسار + المطابقات
RIGHT JOIN orders ON ...
كل صفوف اليمين + المطابقات
CROSS JOIN colors
الضرب الديكارتي
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
ضمّ جدول إلى نفسه
USING (user_id)
الضمّ على عمود بنفس الاسم
UNION / UNION ALL
دمج مجموعات النتائج
SELECT u.*, o.total FROM users u JOIN orders o
تسمية الجداول للوضوح
التجميع
9COUNT(*)
عد الصفوف
SUM(amount)
مجموع عمود رقمي
AVG(price)
القيمة المتوسطة
MIN(price), MAX(price)
الأصغر والأكبر
GROUP BY country
تجميع الصفوف للتجميع
HAVING COUNT(*) > 5
تصفية المجموعات المجمعة
GROUP_CONCAT(name)
ربط القيم المجمعة
COUNT(DISTINCT city)
عد القيم الفريدة
ROW_NUMBER() OVER (ORDER BY id)
ترتيب بدالة نافذة
تعديل البيانات
8INSERT INTO users (name) VALUES ('Sam');
إدراج صف واحد
INSERT INTO users (name) VALUES ('A'),('B');
إدراج صفوف متعددة
UPDATE users SET active = 1 WHERE id = 5;
تحديث الصفوف المطابقة
DELETE FROM users WHERE id = 5;
حذف الصفوف المطابقة
TRUNCATE TABLE logs;
إزالة كل الصفوف بسرعة
INSERT ... ON DUPLICATE KEY UPDATE
upsert على مفتاح فريد
REPLACE INTO users ...
حذف + إدراج عند التعارض
INSERT IGNORE INTO ...
تخطي الصفوف التي ستسبب خطأ
المخطط / DDL
9CREATE TABLE users (id INT PRIMARY KEY);
إنشاء جدول جديد
AUTO_INCREMENT
عمود ترقيم تلقائي
ALTER TABLE users ADD COLUMN age INT;
إضافة عمود
ALTER TABLE users DROP COLUMN age;
إزالة عمود
ALTER TABLE users MODIFY name VARCHAR(100);
تغيير نوع عمود
DROP TABLE IF EXISTS users;
حذف جدول
FOREIGN KEY (user_id) REFERENCES users(id)
الإشارة إلى جدول آخر
ON DELETE CASCADE
تتالي الحذف إلى الأبناء
CREATE TABLE t2 LIKE t1;
نسخ بنية جدول
الفهارس والمفاتيح
8PRIMARY KEY (id)
معرّف صف فريد
UNIQUE (email)
فرض قيم فريدة
CREATE INDEX idx_name ON users (name);
تسريع البحث على عمود
CREATE INDEX idx_ab ON t (a, b);
فهرس مركب (متعدد الأعمدة)
DROP INDEX idx_name ON users;
إزالة فهرس
FULLTEXT (body)
فهرس بحث نصي كامل
EXPLAIN SELECT ...;
عرض خطة الاستعلام
SHOW INDEX FROM users;
سرد الفهارس على جدول
أنواع البيانات
9INT, BIGINT, TINYINT
أنواع الأعداد الصحيحة حسب الحجم
DECIMAL(10, 2)
أرقام عشرية ثابتة دقيقة
VARCHAR(255)
سلسلة متغيرة الطول
TEXT, LONGTEXT
كتل نصية كبيرة
DATE, DATETIME, TIMESTAMP
أنواع التاريخ والوقت
BOOLEAN (TINYINT(1))
true/false مخزّن كـ 0/1
JSON
عمود مستند JSON أصلي
ENUM('a', 'b')
واحدة من مجموعة قيم ثابتة
UNSIGNED
مُعدِّل رقمي غير سالب
Type sizes & limits
20TINYINT
1 byte: -128..127 (0..255 UNSIGNED)
SMALLINT
2 bytes: -32,768..32,767 (0..65,535)
MEDIUMINT
3 bytes: -8.39M..8.39M (0..16.78M)
INT
4 bytes: -2.15B..2.15B (0..4.29B)
BIGINT
8 bytes: ±9.22×10^18 (0..1.84×10^19)
DECIMAL(M, D)
Exact: M up to 65 digits, D up to 30
FLOAT / DOUBLE
4 / 8 bytes approximate floating point
CHAR(M)
Fixed length, 0..255 characters
VARCHAR(M)
0..65,535 bytes (shared 64KB row limit)
TINYTEXT
Up to 255 bytes (~255 chars)
TEXT
Up to 65,535 bytes (64 KB)
MEDIUMTEXT
Up to 16,777,215 bytes (16 MB)
LONGTEXT
Up to 4,294,967,295 bytes (4 GB)
BLOB types
TINY/—/MEDIUM/LONG: 255B..4GB (binary)
JSON
Stored as LONGBLOB, up to ~4 GB
ENUM / SET
ENUM: 65,535 members; SET: 64 members
DATE
1000-01-01 to 9999-12-31 (3 bytes)
DATETIME
1000 to 9999, microseconds (5–8 bytes)
TIMESTAMP
1970-01-01 to 2038-01-19 UTC (4 bytes)
TIME / YEAR
±838:59:59 / 1901..2155
الدوال
9NOW(), CURDATE()
التاريخ والوقت / التاريخ الحالي
DATE_FORMAT(d, '%Y-%m-%d')
تنسيق تاريخ
DATEDIFF(a, b)
الأيام بين تاريخين
CONCAT(a, ' ', b)
ربط السلاسل النصية
COALESCE(a, b, 'n/a')
أول قيمة غير null
IFNULL(x, 0)
استبدال null بقيمة افتراضية
CASE WHEN x > 0 THEN '+' ELSE '-' END
تعبير شرطي
CAST(x AS CHAR)
تحويل نوع قيمة
ROUND(x, 2)
التقريب إلى منازل عشرية
المعاملات والإدارة
9START TRANSACTION;
بدء معاملة
COMMIT;
تثبيت المعاملة
ROLLBACK;
التراجع عن المعاملة
SAVEPOINT sp1;
تعيين نقطة تراجع
SHOW TABLES;
سرد جداول قاعدة البيانات
DESCRIBE users;
عرض بنية جدول
SHOW PROCESSLIST;
سرد الاتصالات النشطة
GRANT ALL ON db.* TO 'u'@'%';
منح صلاحيات المستخدم
mysqldump -u root db > db.sql
نسخ احتياطي لقاعدة بيانات (CLI)
لا يوجد إدخال يطابق “:q”.
هل تحتاج إلى مساعدة؟
هل واجهت مشكلة في هذه الأداة؟ أخبر فريقنا.