الأدلة

ما هو SQL؟ لغة قواعد البيانات مشروحة ببساطة

SQL (Structured Query Language، وتُنطق "إس-كيو-إل" أو "سيكوال") هي اللغة القياسية للتعامل مع قواعد البيانات العلائقية، وهي القواعد التي تخزن البيانات في جداول من صفوف وأعمدة، مثل Postgres وMySQL وSQLite وSQL Server. تستخدم SQL لطرح أسئلة على بياناتك ("أي العملاء حجزوا هذا الشهر؟") ولإضافة السجلات أو تغييرها أو حذفها. وهي موجودة منذ السبعينيات، وهي معيار دولي، وتشغّل حصة كبيرة من تطبيقات العالم.

لماذا تهم SQL عند البناء بالذكاء الاصطناعي

حين تطلب من أداة بناء التطبيقات بالذكاء الاصطناعي أن "تحفظ الطلبات" أو "تعرض قائمة الحجوزات القادمة"، فهناك شيء يجب أن يتحدث مع قاعدة البيانات، وفي معظم التطبيقات يكون ذلك SQL، إما مكتوباً مباشرة أو مولّداً عبر ORM.

لا تحتاج إلى كتابة SQL بنفسك، لكن القليل من الفهم يفيدك كثيراً:

  • يمكنك فحص بياناتك. استعلام قصير يجيب عن "كم عدد التسجيلات هذا الأسبوع؟" أسرع من بناء شاشة جديدة.
  • يمكنك طلب تقارير أفضل. "جمّع الإيرادات حسب الشهر والخدمة" فكرة من SQL، ومعرفتها تجعل طلبك أوضح.
  • يمكنك اكتشاف التغييرات الخطرة. أمر DELETE أو UPDATE بلا عبارة WHERE يؤثر على كل الصفوف. ومن الأفضل التقاطها قبل أن تُنفَّذ.
  • بياناتك ليست محبوسة. فSQL معيار مشترك، لذلك يمكن نقل البيانات الموجودة في قاعدة SQL وقراءتها بواسطة أدوات كثيرة.

تشبيه من الحياة اليومية

فكّر في مكتبة منظمة جيداً، فيها أمين مكتبة لا يتحدث إلا لغة دقيقة وبسيطة.

لا تتجول بين الرفوف بنفسك. بل تسلّم أمين المكتبة بطاقة: "اعثر على كل كتب هذا المؤلف المنشورة بعد 2010، الأحدث أولاً." يعرف أمين المكتبة المبنى من الداخل، ويعود إليك بتلك الكتب بالضبط، وبذلك الترتيب.

SQL هي اللغة المكتوبة على البطاقة. أنت تقول ما تريده، لا كيف تجده، وقاعدة البيانات تحدد الطريق الأسرع بنفسها.

كيف تعمل SQL: الجداول والصفوف والأعمدة

تحتفظ قاعدة البيانات العلائقية بالبيانات في جداول (Tables). يحتوي كل جدول على نوع واحد من الأشياء، وكل صف (Row) هو سجل واحد، وكل عمود (Column) هو جزء واحد من المعلومات:

customers (العملاء)

idnameemailcity
1Lena Ortizlena@example.comLisbon
2Sam Patelsam@example.comLeeds

orders (الطلبات)

idcustomer_idtotalplaced_at
101142.002026-09-20
102218.502026-09-22
103125.002026-09-27

يربط العمود customer_id كل طلب بعميل. وهذا الرابط هو ما يجعل قاعدة البيانات "علائقية".

مثال عملي: الإجابة عن أسئلة حقيقية

1. قراءة البيانات: "أرني كل العملاء في لشبونة":

SELECT name, email
FROM customers
WHERE city = 'Lisbon';

2. الترتيب والتحديد: "أحدث خمسة طلبات":

SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;

3. دمج الجداول: "كل طلب مع اسم العميل":

SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;

4. التلخيص: "إجمالي ما أنفقه كل عميل":

SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;

مع البيانات النموذجية أعلاه، يعيد هذا الاستعلام Lena Ortiz بمبلغ 67.00 وSam Patel بمبلغ 18.50.

5. تغيير البيانات:

INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');

UPDATE customers SET city = 'Porto' WHERE id = 1;

DELETE FROM orders WHERE id = 102;

تتوافق هذه مع الإجراءات الأربعة الأساسية في معظم التطبيقات: الإنشاء والقراءة والتحديث والحذف، المعروفة باسم CRUD.

تحذير مهم: UPDATE customers SET city = 'Porto'; بدون عبارة WHERE تغيّر كل العملاء. تحقق دائماً من عبارة WHERE قبل تشغيل أي تغيير.

الأجزاء الرئيسية في SQL

الأمرماذا يفعل
SELECTقراءة البيانات
INSERTإضافة صفوف جديدة
UPDATEتغيير صفوف موجودة
DELETEإزالة صفوف
CREATE TABLE / ALTER TABLEإنشاء بنية جدول أو تغييرها
WHEREتصفية الصفوف المتأثرة
JOINدمج الجداول المرتبطة
GROUP BYتلخيص الصفوف في مجموعات، مع COUNT وSUM وAVG
ORDER BY / LIMITترتيب النتائج وتحديد عددها

SQL موحّدة، لكن كل قاعدة بيانات تضيف إضافاتها الخاصة، وتسمى لهجة (Dialect). فPostgres وMySQL وSQLite تفهم كلها الأمثلة أعلاه، بينما تختلف التفاصيل مثل دوال التاريخ قليلاً.

شرح المصطلحات

المصطلحالمعنى
Query (الاستعلام)عبارة SQL، خاصة التي تقرأ البيانات.
Table / row / column (جدول / صف / عمود)نوع من الأشياء / سجل واحد / خاصية واحدة.
Primary key (المفتاح الأساسي)العمود الذي يعرّف كل صف بشكل فريد، وغالباً id.
Foreign key (المفتاح الأجنبي)عمود يشير إلى صف في جدول آخر، مثل customer_id.
Index (الفهرس)بنية بحث تجعل البحث في عمود أسرع بكثير.
Schema (المخطط)بنية كل الجداول والأعمدة.
Transaction (المعاملة)مجموعة من التغييرات تنجح معاً أو تفشل معاً.
SQL injection (حقن SQL)هجوم يُدسّ فيه مدخل المستخدم داخل استعلام. ويُمنع بالاستعلامات ذات المعاملات (Parameterized queries).

مفاهيم خاطئة شائعة

  • "SQL هي قاعدة البيانات." SQL هي اللغة، وPostgres وMySQL وSQLite قواعد بيانات تتحدث بها.
  • "SQL قديمة، لذلك هي متقادمة." إنها ناضجة، وليست مهجورة. فقواعد البيانات الحديثة وأدوات البيانات ما زالت تستخدمها، وكثير من الجديدة تضيف دعم SQL.
  • "لا يستخدم SQL إلا المطورون." يستخدم المحللون والمسوّقون والمؤسسون استعلامات بسيطة كل يوم.
  • "SQL لا تستطيع التعامل مع البيانات المرنة." كثير من قواعد SQL تخزن JSON أيضاً. فPostgres مثلاً لديه نوع jsonb. راجع SQL مقابل NoSQL.
  • "السماح للذكاء الاصطناعي بتشغيل أي SQL على قاعدة الإنتاج أمر لا بأس به." القراءات منخفضة الخطورة، أما التغييرات والحذف على البيانات الحية فتستحق نسخة احتياطية ونظرة ثانية. راجع كيف تنسخ قاعدة بيانات تطبيقك احتياطياً.

ماذا تطلب من أداة البناء بالذكاء الاصطناعي

  • "أرني الجداول في قاعدة بياناتي، وماذا يعني كل عمود."
  • "اكتب استعلاماً للقراءة فقط: كم عدد التسجيلات الجديدة يومياً خلال آخر 30 يوماً؟"
  • "قبل تشغيل أي UPDATE أو DELETE، أرني الاستعلام وعدد الصفوف التي سيؤثر عليها."
  • "أضف فهارس على الأعمدة التي نصفّي بها أو نرتب بها أكثر شيء."
  • "تأكد أن كل استعلام يستخدم مدخلات المستخدم بصيغة ذات معاملات (Parameterized)."
  • "ضع تحديثات الطلبات والمدفوعات داخل معاملة (Transaction) حتى لا تنجح نصف نجاح."

SQL في Mythex

حين يحتاج تطبيقك إلى تخزين البيانات، يضيف Mythex قاعدة بيانات Postgres مخصصة للمشروع. اطلب ذلك في الدردشة، مثلاً "احفظ عناوين البريد الإلكتروني للقائمة الانتظار في قاعدة بيانات"، أو استخدم الأمر /database (قاعدة البيانات). ينشئ الوكيل الجداول ويكتب الاستعلامات، ويمكنك في وضع Ask أن تطلب منه شرح أي استعلام بلغة بسيطة. ولمزيد عن قاعدة البيانات نفسها، اقرأ ما هو Postgres.

الأسئلة

ما هو SQL ببساطة؟

SQL (Structured Query Language، أي لغة الاستعلام البنيوية) هي اللغة القياسية للتعامل مع قواعد البيانات العلائقية. تستخدمها لطرح أسئلة على بياناتك، مثل 'أي الطلبات تم وضعها هذا الأسبوع'، ولإضافة السجلات أو تغييرها أو حذفها.

كيف تُنطق SQL؟

النطق 'إس-كيو-إل' (بتهجئة الحروف) و'سيكوال' كلاهما شائع وصحيح. فاللغة كان اسمها الأصلي SEQUEL، ومنه جاء النطق الثاني.

هل SQL لغة برمجة؟

SQL لغة استعلام مصممة لإدارة البيانات. أنت تصف النتيجة التي تريدها، وقاعدة البيانات تحدد كيف تحصل عليها. ولا تُستخدم وحدها لبناء تطبيقات كاملة، لكنها جزء من معظم التطبيقات التي تستخدم قاعدة بيانات علائقية.

هل SQL صعبة التعلّم؟

أساسياتها سهلة المنال: SELECT وWHERE وORDER BY وINSERT وUPDATE وDELETE تغطي معظم الاحتياجات اليومية، وتُقرأ تقريباً كالإنجليزية. أما الربط (Joins) والتجميع وضبط الأداء فتحتاج وقتاً أطول لإتقانها.

هل أحتاج إلى معرفة SQL لبناء تطبيق بالذكاء الاصطناعي؟

لا. فأداة البناء بالذكاء الاصطناعي تكتب لك شيفرة SQL أو شيفرة قاعدة البيانات. ومعرفة القليل تساعدك على فحص بياناتك وطلب التقارير واكتشاف التغييرات الخطرة قبل حدوثها.

Mythex · Pricing · ابنِ أي شيء بالذكاء الاصطناعي · قوالب المواقع والتطبيقات · مقارنات Mythex · مصطلحات بناء التطبيقات بالذكاء الاصطناعي · أدوات مجانية لبناء التطبيقات بالذكاء الاصطناعي · English

English አማርኛ Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)