📋 مرجع SQL السريع

جميع أوامر SQL الأساسية في مكان واحد

📖

SELECT - استرجاع البيانات

قراءة البيانات من الجداول

SELECT الأساسي أساسي

استرجاع جميع الأعمدة أو أعمدة محددة

SELECT * FROM table_name; SELECT col1, col2 FROM table_name;
مثال:
SELECT name, email FROM users;
DISTINCT أساسي

إزالة التكرار من النتائج

SELECT DISTINCT column FROM table;
مثال:
SELECT DISTINCT country FROM customers;
AS (Alias) أساسي

إعطاء أسماء مستعارة للأعمدة أو الجداول

SELECT col AS alias_name FROM table; SELECT * FROM table AS t;
مثال:
SELECT first_name AS الاسم FROM users;
LIMIT & OFFSET أساسي

تحديد عدد الصفوف المُرجعة

SELECT * FROM table LIMIT n; SELECT * FROM table LIMIT n OFFSET m;
مثال (أول 10 صفوف):
SELECT * FROM products LIMIT 10;
ORDER BY أساسي

ترتيب النتائج تصاعدياً (ASC) أو تنازلياً (DESC)

SELECT * FROM table ORDER BY column ASC|DESC;
مثال:
SELECT * FROM products ORDER BY price DESC;
🔍

WHERE - تصفية البيانات

استخدام الشروط للتصفية

WHERE الأساسي أساسي

تصفية الصفوف بناءً على شرط

SELECT * FROM table WHERE condition;
مثال:
SELECT * FROM users WHERE age > 18;
AND / OR / NOT أساسي

دمج عدة شروط معاً

WHERE cond1 AND cond2 WHERE cond1 OR cond2 WHERE NOT condition
مثال:
WHERE age >= 18 AND country = 'SA';
IN أساسي

التحقق من وجود القيمة ضمن قائمة

WHERE column IN (val1, val2, ...);
مثال:
WHERE country IN ('SA', 'AE', 'EG');
BETWEEN أساسي

التحقق من وقوع القيمة ضمن نطاق

WHERE column BETWEEN val1 AND val2;
مثال:
WHERE price BETWEEN 100 AND 500;
LIKE أساسي

البحث بنمط معين (% = أي عدد أحرف، _ = حرف واحد)

WHERE column LIKE 'pattern';
أمثلة:
WHERE name LIKE 'أ%'; -- يبدأ بـ أ WHERE name LIKE '%محمد%'; -- يحتوي محمد WHERE code LIKE 'A__'; -- A متبوع بحرفين
IS NULL / IS NOT NULL أساسي

التحقق من القيم الفارغة

WHERE column IS NULL; WHERE column IS NOT NULL;
مثال:
WHERE phone IS NOT NULL;
🔗

JOIN - ربط الجداول

دمج البيانات من عدة جداول

INNER JOIN الأكثر استخداماً

الصفوف المتطابقة فقط من كلا الجدولين

SELECT * FROM table1 INNER JOIN table2 ON table1.col = table2.col;
LEFT JOIN شائع

كل الجدول الأيسر + المتطابق من الأيمن

SELECT * FROM table1 LEFT JOIN table2 ON table1.col = table2.col;
RIGHT JOIN متوسط

كل الجدول الأيمن + المتطابق من الأيسر

SELECT * FROM table1 RIGHT JOIN table2 ON table1.col = table2.col;
FULL OUTER JOIN متقدم

كل الصفوف من كلا الجدولين

SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.col = table2.col;
📊

GROUP BY - التجميع

تجميع الصفوف وحساب الإحصائيات

GROUP BY الأساسي متوسط

تجميع الصفوف حسب عمود معين

SELECT column, COUNT(*) FROM table GROUP BY column;
مثال:
SELECT country, COUNT(*) AS total FROM users GROUP BY country;
HAVING متوسط

تصفية المجموعات (بعد GROUP BY)

SELECT column, COUNT(*) FROM table GROUP BY column HAVING COUNT(*) > n;
مثال (دول بأكثر من 10 مستخدمين):
HAVING COUNT(*) > 10;
دوال التجميع أساسي

الدوال المستخدمة مع GROUP BY

COUNT(col) -- عدد القيم SUM(col) -- مجموع القيم AVG(col) -- متوسط القيم MAX(col) -- أكبر قيمة MIN(col) -- أصغر قيمة

INSERT - إضافة البيانات

إدراج صفوف جديدة

INSERT صف واحد أساسي
INSERT INTO table (col1, col2) VALUES (val1, val2);
مثال:
INSERT INTO users (name, email) VALUES ('أحمد', 'ahmed@mail.com');
INSERT عدة صفوف أساسي
INSERT INTO table (col1, col2) VALUES (val1, val2), (val3, val4), (val5, val6);
✏️

UPDATE - تحديث البيانات

تعديل الصفوف الموجودة

UPDATE الأساسي أساسي

⚠️ دائماً استخدم WHERE لتحديد الصفوف!

UPDATE table SET col1 = val1, col2 = val2 WHERE condition;
مثال:
UPDATE users SET status = 'active' WHERE id = 5;
🗑️

DELETE - حذف البيانات

إزالة الصفوف

DELETE أساسي

⚠️ دائماً استخدم WHERE لتحديد الصفوف!

DELETE FROM table WHERE condition;
مثال:
DELETE FROM users WHERE id = 10;
TRUNCATE متقدم

حذف جميع الصفوف (أسرع من DELETE)

TRUNCATE TABLE table_name;
🏗️

CREATE / ALTER - إنشاء وتعديل الجداول

DDL - لغة تعريف البيانات

CREATE TABLE متوسط
CREATE TABLE table_name ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
ALTER TABLE متوسط
-- إضافة عمود ALTER TABLE table ADD column type; -- حذف عمود ALTER TABLE table DROP COLUMN column; -- تغيير نوع عمود ALTER TABLE table MODIFY column new_type;
DROP TABLE ⚠️ خطر

حذف الجدول بالكامل

DROP TABLE table_name; DROP TABLE IF EXISTS table_name;

المعاملات

معاملات المقارنة والحساب

المعامل الوصف مثال
=يساويWHERE age = 25
!= أو <>لا يساويWHERE status != 'deleted'
>أكبر منWHERE price > 100
<أصغر منWHERE quantity < 10
>=أكبر من أو يساويWHERE score >= 50
<=أصغر من أو يساويWHERE discount <= 20
+جمعSELECT price + tax
-طرحSELECT price - discount
*ضربSELECT price * quantity
/قسمةSELECT total / count
%باقي القسمةSELECT id % 2
🔧

الدوال الشائعة

دوال النصوص والأرقام والتاريخ

دوال النصوص
UPPER(str) -- تحويل لأحرف كبيرة LOWER(str) -- تحويل لأحرف صغيرة LENGTH(str) -- طول النص TRIM(str) -- إزالة المسافات CONCAT(s1,s2) -- دمج النصوص SUBSTRING(str,start,len)
دوال التاريخ والوقت
NOW() -- التاريخ والوقت الحالي CURDATE() -- التاريخ الحالي YEAR(date) -- استخراج السنة MONTH(date) -- استخراج الشهر DAY(date) -- استخراج اليوم DATEDIFF(d1,d2) -- الفرق بين تاريخين
دوال أخرى
COALESCE(v1,v2,...) -- أول قيمة غير NULL IFNULL(col,default) -- بديل لـ NULL CASE WHEN cond THEN result ELSE default END