مرجع SQL

استعلامات SQL الشاملة مع أمثلة — 34 أمر


Basic

10 عنصر
الاسم الوصف مثال
SELECT يستخدم لجلب البيانات من جدول معين.
SELECT * FROM users;
INSERT يستخدم لإدخال بيانات جديدة إلى الجدول.
INSERT INTO users (name, email) VALUES ("Ahmed", "[email protected]");
UPDATE يستخدم لتحديث بيانات موجودة في الجدول.
UPDATE users SET email = "[email protected]" WHERE id = 1;
DELETE يستخدم لحذف بيانات من الجدول.
DELETE FROM users WHERE id = 1;
INNER JOIN يستخدم لربط جداول وإرجاع الصفوف التي تحتوي على تطابق في كلا الجدولين.
SELECT users.name, orders.amount 
 FROM users 
 INNER JOIN orders ON users.id = orders.user_id;
LEFT JOIN يستخدم لجلب جميع الصفوف من الجدول الأول والصفوف المطابقة من الجدول الثاني.
SELECT users.name, orders.amount 
 FROM users 
 LEFT JOIN orders ON users.id = orders.user_id;
RIGHT JOIN يستخدم لجلب جميع الصفوف من الجدول الثاني والصفوف المطابقة من الجدول الأول.
SELECT users.name, orders.amount 
 FROM users 
 RIGHT JOIN orders ON users.id = orders.user_id;
GROUP BY يستخدم لتجميع الصفوف التي لها نفس القيم في أعمدة معينة.
SELECT category, COUNT(*) 
 FROM products 
 GROUP BY category;
HAVING يستخدم لتصفية النتائج بعد عملية GROUP BY.
SELECT category, COUNT(*) 
 FROM products 
 GROUP BY category 
 HAVING COUNT(*) > 5;
UNION يستخدم لدمج نتائج استعلامين أو أكثر في نتيجة واحدة.
SELECT name FROM employees 
 UNION 
 SELECT name FROM customers;

Advanced

24 عنصر
الاسم الوصف مثال
INNER JOIN يستخدم لربط جداول وإرجاع الصفوف التي تحتوي على تطابق في كلا الجدولين.
SELECT users.name, orders.amount 
 FROM users 
 INNER JOIN orders ON users.id = orders.user_id;
LEFT JOIN يستخدم لجلب جميع الصفوف من الجدول الأول والصفوف المطابقة من الجدول الثاني.
SELECT users.name, orders.amount 
 FROM users 
 LEFT JOIN orders ON users.id = orders.user_id;
RIGHT JOIN يستخدم لجلب جميع الصفوف من الجدول الثاني والصفوف المطابقة من الجدول الأول.
SELECT users.name, orders.amount 
 FROM users 
 RIGHT JOIN orders ON users.id = orders.user_id;
FULL OUTER JOIN يستخدم لجلب جميع الصفوف من كلا الجدولين، مع إرجاع NULL عند عدم التطابق.
SELECT users.name, orders.amount 
 FROM users 
 FULL OUTER JOIN orders ON users.id = orders.user_id;
GROUP BY يستخدم لتجميع الصفوف التي لها نفس القيم في أعمدة معينة.
SELECT category, COUNT(*) 
 FROM products 
 GROUP BY category;
HAVING يستخدم لتصفية النتائج بعد عملية GROUP BY.
SELECT category, COUNT(*) 
 FROM products 
 GROUP BY category 
 HAVING COUNT(*) > 5;
UNION يستخدم لدمج نتائج استعلامين أو أكثر في نتيجة واحدة.
SELECT name FROM employees 
 UNION 
 SELECT name FROM customers;
UNION ALL مشابه لـ UNION لكنه لا يزيل القيم المكررة.
SELECT name FROM employees 
 UNION ALL 
 SELECT name FROM customers;
CREATE PROCEDURE يستخدم لإنشاء إجراء مخزن يتم تنفيذه لاحقًا.
DELIMITER //
CREATE PROCEDURE GetUsers()
BEGIN
   SELECT * FROM users;
END //
DELIMITER ;
CALL يستخدم لاستدعاء إجراء مخزن.
CALL GetUsers();
DROP PROCEDURE يستخدم لحذف إجراء مخزن.
DROP PROCEDURE IF EXISTS GetUsers;
CREATE INDEX يستخدم لإنشاء فهرس على عمود لتحسين أداء البحث.
CREATE INDEX idx_username ON users(username);
DROP INDEX يستخدم لحذف فهرس من الجدول.
DROP INDEX idx_username ON users;
CREATE USER يستخدم لإنشاء مستخدم جديد في MySQL.
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT يمنح صلاحيات محددة لمستخدم معين.
GRANT SELECT, INSERT ON database_name.* TO 'newuser'@'localhost';
REVOKE يستخدم لإلغاء الصلاحيات من مستخدم معين.
REVOKE INSERT ON database_name.* FROM 'newuser'@'localhost';
DROP USER يستخدم لحذف مستخدم من MySQL.
DROP USER 'newuser'@'localhost';
mysqldump يستخدم لإنشاء نسخة احتياطية من قاعدة البيانات.
mysqldump -u root -p database_name > backup.sql
استعادة النسخة الاحتياطية يستخدم لاستعادة قاعدة البيانات من ملف النسخة الاحتياطية.
mysql -u root -p database_name < backup.sql
EXPLAIN يستخدم لتحليل استعلام SQL وتوضيح كيفية تنفيذه لتحسين الأداء.
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';
ANALYZE TABLE يستخدم لتحليل وتحسين الإحصائيات الخاصة بالجدول.
ANALYZE TABLE users;
OPTIMIZE TABLE يستخدم لتحسين أداء الجدول.
OPTIMIZE TABLE users;
SHOW PROCESSLIST يستخدم لعرض العمليات الجارية في MySQL.
SHOW PROCESSLIST;
KILL يستخدم لإنهاء عملية معينة في MySQL.
KILL process_id;