كيف تستخدم مترجم SQL عبر الإنترنت
- اكتب SQL في المحرر. يمكنك إنشاء الجداول (
CREATE TABLE) وإضافة البيانات (INSERT) والاستعلام عنها (SELECT) في نص برمجي واحد. افصل العبارات بفواصل منقوطة. - اضغط تشغيل أو استخدم Ctrl + Enter (⌘ + Enter على Mac).
- كل عبارة تُرجع صفوفًا تُعرض في جدول نتائج خاص بها، بالترتيب، مع عدد الصفوف تحته. وتُوسَم قيم
NULLبذلك. وإن لم ترجع أي عبارة صفوفًا، فسترى تأكيدًا قصيرًا بدلًا من ذلك. - اختر الحدّ الزمني 5 أو 15 أو 60 ثانية، وهو مفيد للاستعلامات التكرارية الخارجة عن السيطرة. ويُلغي زر إيقاف الاستعلام فورًا.
محرك SQLite صغير، أقل بكثير من 1 MB، فيُحمَّل فورًا تقريبًا. ويستعيد زر إعادة ضبط المثال مخطط الموظفين التجريبي، وينزّل main.sql نصك البرمجي.
تعمل استعلاماتك في Web Worker داخل متصفحك أنت. لا يُرفع SQL ولا البيانات ولا تُخزَّن على خوادمنا. ويحتفظ المحرر بآخر نص برمجي لك في التخزين المحلي لمتصفحك، ولا في أي مكان آخر.
ما المدعوم
يشغّل المترجم SQLite 3 عبر sql.js، وهي مكتبة SQLite بلغة C مترجمة إلى WebAssembly. إنه محرك قواعد بيانات علائقية حقيقي، لا محاكٍ.
- DDL وDML:
CREATE TABLEوCREATE INDEXوCREATE VIEWوINSERTوUPDATEوDELETEوالقيود والمفاتيح الأجنبية والمشغّلات. - الاستعلامات: الربط (joins) والاستعلامات الفرعية و
GROUP BY/HAVINGوUNIONوCASEوتعابير الجداول المشتركة، بما فيهاWITH RECURSIVE. - دوال النوافذ مثل
ROW_NUMBER()وRANK()وLAG()والمجاميع التراكمية بـSUM() OVER (...). - دوال مدمجة للنصوص (
substrوupperوreplace) والأرقام والتواريخ (dateوstrftime).
القيود:
- قاعدة بيانات جديدة وفارغة في الذاكرة في كل تشغيل. لا تبقى الجداول بين مرات التشغيل، فأبقِ عبارات
CREATEوINSERTفي أعلى النص البرمجي. - إنه SQLite، وليس MySQL أو PostgreSQL. يعمل معظم SQL القياسي، لكن الميزات الخاصة بكل مورّد مثل الإجراءات المخزَّنة و
GRANTأو الكلمة المفتاحيةAUTO_INCREMENTفي MySQL أو النوعSERIALفي PostgreSQL لا تعمل. - تعرض مجموعات النتائج الكبيرة أول 1,000 صف، مع العدد الإجمالي للصفوف.
- لا يمكنك الاتصال بقاعدة بيانات خارجية أو فتح ملف
.dbخاص بك.
مرجع سريع لـ SQL
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
customer TEXT NOT NULL,
amount REAL,
placed TEXT DEFAULT (date('now'))
);
INSERT INTO orders (customer, amount) VALUES
('Ada', 120.0), ('Ada', 35.5), ('Grace', 80.0);
WITH totals AS (
SELECT customer, SUM(amount) AS spent, COUNT(*) AS n
FROM orders
GROUP BY customer
)
SELECT customer, spent, n
FROM totals
WHERE spent >= 50 AND n <> 0
ORDER BY spent DESC;
| المهمة | SQL |
|---|---|
| مفتاح مرقَّم تلقائيًا | id INTEGER PRIMARY KEY |
| تصفية الصفوف | WHERE price BETWEEN 10 AND 20 |
| مطابقة نمط | WHERE name LIKE 'A%' |
| ضمّ النصوص | first || ' ' || last |
| الترقيم إلى صفحات | LIMIT 10 OFFSET 20 |
| استبدال NULL | COALESCE(phone, 'n/a') |
| الإدراج أو التحديث | INSERT ... ON CONFLICT(id) DO UPDATE SET ... |
نصائح
- استخدم
sqlite_masterلسرد ما أنشأته:SELECT name, sql FROM sqlite_master; - استخدم
EXPLAIN QUERY PLAN SELECT ...لمعرفة هل يستخدم الاستعلام فهرسًا. - يستخدم SQLite أنواعًا مرنة (flexible typing): فالعمود المعرَّف بـ
INTEGERيمكنه مع ذلك تخزين نص. أضف قيودCHECK، أو استخدم جداولSTRICT، حين تريد فرض الأنواع. - لا تُفرض المفاتيح الأجنبية إلا بعد
PRAGMA foreign_keys = ON;. - استعلام طويل ومبعثر؟ نظّفه باستخدام منسّق SQL قبل مشاركته.
BEGIN; … COMMIT;. وتوليد بيانات الاختبار بتعبير جدول مشترك تكراري طريقة سريعة لملء جدول بآلاف الصفوف للتدرّب.الأسئلة الشائعة
ما لهجة SQL التي يستخدمها هذا المترجم؟
SQLite 3. وهي تتبع SQL القياسي عن قرب، فهي مناسبة جدًا لتعلّم SELECT والربط والتجميع ودوال النوافذ. وقد تحتاج الصياغة الخاصة بـ MySQL أو PostgreSQL أو SQL Server إلى تعديلات صغيرة.
هل تُحفظ بياناتي؟
لا. ينشئ كل تشغيل قاعدة بيانات جديدة في الذاكرة تُحذف بمجرد انتهاء التشغيل. ولا يُتذكَّر سوى نص SQL في المحرر، محليًا في متصفحك.
هل يمكنني تشغيل عدة استعلامات دفعة واحدة؟
نعم. افصل بينها بفواصل منقوطة. تُنفَّذ العبارات بالترتيب، وكل واحدة تُرجع صفوفًا تنتج جدول نتائج خاصًا بها.
هل يمكنني التدرّب بلغات أخرى أيضًا؟
نعم. جرّب مترجم Python عبر الإنترنت، حيث تعمل وحدة sqlite3 المدمجة في Python أيضًا، أو تصفّح جميع أدوات المطورين لدينا.
آخر تحديث