skill
استعلامات SQL
كتابة SQL صحيح وعالي الأداء عبر جميع لهجات مستودعات البيانات الرئيسية (Snowflake و BigQuery و Databricks و PostgreSQL وغيرها). استخدمه عند كتابة الاستعلامات أو تحسين SQL البطيء أو الترجمة بين اللهجات أو بناء استعلامات تحليلية معقدة باستخدام CTEs والدوال النافذة أو العمليات الإجمالية.
نبذة
# مهارة استعلامات SQL
كتابة استعلامات SQL صحيحة وفعّالة وسهلة القراءة عبر جميع لهجات قواعد البيانات الرئيسية.
## مرجع خاص باللهجات
### PostgreSQL (بما فيها Aurora وRDS وSupabase وNeon)
**التاريخ والوقت:** ```sql -- التاريخ والوقت الحالي CURRENT_DATE, CURRENT_TIMESTAMP, NOW()
-- العمليات الحسابية على التاريخ date_column + INTERVAL '7 days' date_column - INTERVAL '1 month'
-- قطع التاريخ إلى فترة زمنية DATE_TRUNC('month', created_at)
-- استخراج الأجزاء EXTRACT(YEAR FROM created_at) EXTRACT(DOW FROM created_at) -- 0=الأحد
-- التنسيق TO_CHAR(created_at, 'YYYY-MM-DD') ```
**دوال النصوص:** ```sql -- الربط first_name || ' ' || last_name CONCAT(first_name, ' ', last_name)
-- مطابقة الأنماط column ILIKE '%pattern%' -- غير حساسة لحالة الأحرف column ~ '^regex_pattern$' -- تعبير نمطي
-- معالجة النصوص LEFT(str, n), RIGHT(str, n) SPLIT_PART(str, delimiter, position) REGEXP_REPLACE(str, pattern, replacement) ```
**المصفوفات وJSON:** ```sql -- وصول JSON data->>'key' -- نص data->'nested'->'key' -- json data#>>'{path,to,key}' -- نص متداخل
-- عمليات المصفوفة ARRAY_AGG(column) ANY(array_column) array_column @> ARRAY['value'] ```
**نصائح الأداء:** - استخدم `EXPLAIN ANALYZE` لتحليل الاستعلامات - أنشئ فهارس على الأعمدة المستخدمة بكثرة في التصفية والربط - استخدم `EXISTS` بدلاً من `IN` للاستعلامات الفرعية المترابطة - استخدم الفهارس الجزئية لشروط التصفية الشائعة - استخدم تجميع الاتصالات للوصول المتزامن
---
### Snowflake
**التاريخ والوقت:** ```sql -- التاريخ والوقت الحالي CURRENT_DATE(), CURRENT_TIMESTAMP(), SYSDATE()
-- العمليات الحسابية على التاريخ DATEADD(day, 7, date_column) DATEDIFF(day, start_date, end_date)
-- قطع التاريخ إلى فترة زمنية DATE_TRUNC('month', created_at)
-- استخراج الأجزاء YEAR(created_at), MONTH(created_at), DAY(created_at) DAYOFWEEK(created_at)
-- التنسيق TO_CHAR(created_at, 'YYYY-MM-DD') ```
**دوال النصوص:** ```sql -- غير حساسة لحالة الأحرف افتراضياً (يعتمد على الترتيب) column ILIKE '%pattern%' REGEXP_LIKE(column, 'pattern')
-- تحليل JSON column:key::string -- دوال النقط للنوع VARIANT PARSE_JSON('{"key": "value"}') GET_PATH(variant_col, 'path.to.key')
-- فك المصفوفات والكائنات SELECT f.value FROM table, LATERAL FLATTEN(input => array_col) f ```
**البيانات شبه المنظمة:** ```sql -- وصول النوع VARIANT data:customer:name::STRING data:items[0]:price::NUMBER
-- فك الهياكل المتداخلة SELECT t.id, item.value:name::STRING as item_name, item.value:qty::NUMBER as quantity FROM my_table t, LATERAL FLATTEN(input => t.data:items) item ```
**نصائح الأداء:** - استخدم مفاتيح التجميع على الجداول الكبيرة (ليس الفهارس التقليدية) - قم بالتصفية على أعمدة مفتاح التجميع لتقليل البيانات المفحوصة - اضبط حجم المستودع المناسب لتعقيد الاستعلام - استخدم `RESULT_SCAN(LAST_QUERY_ID())` لتجنب إعادة تشغيل الاستعلامات المكلفة - استخدم الجداول المؤقتة للبيانات المرحلية
---
### BigQuery (Google Cloud)
**التاريخ والوقت:** ```sql -- التاريخ والوقت الحالي CURRENT_DATE(), CURRENT_TIMESTAMP()
-- العمليات الحسابية على التاريخ DATE_ADD(date_column, INTERVAL 7 DAY) DATE_SUB(date_column, INTERVAL 1 MONTH) DATE_DIFF(end_date, start_date, DAY) TIMESTAMP_DIFF(end_ts, start_ts, HOUR)
-- قطع التاريخ إلى فترة زمنية DATE_TRUNC(created_at, MONTH) TIMESTAMP_TRUNC(created_at, HOUR)
-- استخراج الأجزاء EXTRACT(YEAR FROM created_at) EXTRACT(DAYOFWEEK FROM created_at) -- 1=الأحد
-- التنسيق FORMAT_DATE('%Y-%m-%d', date_column) FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', ts_column) ```
**دوال النصوص:** ```sql -- لا يوجد ILIKE، استخدم LOWER() LOWER(column) LIKE '%pattern%' REGEXP_CONTAINS(column, r'pattern') REGEXP_EXTRACT(column, r'pattern')
-- معالجة النصوص SPLIT(str, delimiter) -- يرجع ARRAY ARRAY_TO_STRING(array, delimiter) ```
**المصفوفات والهياكل:** ```sql -- عمليات المصفوفة ARRAY_AGG(column) UNNEST(array_column) ARRAY_LENGTH(array_column) value IN UNNEST(array_column)
-- وصول الهيكل struct_column.field_name ```
**نصائح الأداء:** - قم دائماً بالتصفية على أعمدة التقسيم (عادة التاريخ) لتقليل البايتات المفحوصة - استخدم التجميع للأعمدة المستخدمة بكثرة في التصفية ضمن التقسيمات - استخدم `APPROX_COUNT_DISTINCT()` لتقدير عدد القيم المميزة على نطاق واسع - تجنب `SELECT *` -- يتم الفواتير حسب البايتات المفحوصة - استخدم `DECLARE` و`SET` للنصوص البرمجية ذات المعاملات - معاينة تكلفة الاستعلام بتشغيل تجريبي قبل تنفيذ الاستعلامات الكبيرة
---
### Redshift (Amazon)
**التاريخ والوقت:** ```sql -- التاريخ والوقت الحالي CURRENT_DATE, GETDATE(), SYSDATE
-- العمليات الحسابية على التاريخ DATEADD(day, 7, date_column) DATEDIFF(day, start_date, end_date)
-- قطع التاريخ إلى فترة زمنية DATE_TRUNC('month', created_at)
-- استخراج الأجزاء EXTRACT(YEAR FROM created_at) DATE_PART('dow', created_at) ```
**دوال النصوص:** ```sql -- غير حساسة لحالة الأحرف column ILIKE '%pattern%' REGEXP_INSTR(column, 'pattern') > 0
-- معالجة النصوص SPLIT_PART(str, delimiter, position) LISTAGG(column, ', ') WITHIN GROUP (ORDER BY column) ```
**نصائح الأداء:** - صمم مفاتيح التوزيع للربط المتواجد (DISTKEY) - استخدم مفاتيح الترتيب للأعمدة المستخدمة بكثرة في التصفية (SORTKEY) - استخدم `EXPLAIN` للتحقق من خطة الاستعلام - تجنب حركة البيانات عبر العقد (راقب DS_BCAST و DS
التثبيت
شغل هذا الأمر
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/data/skills/sql-queries ~/.claude/skills/يعمل مع
خطوات التثبيت
استنسخ المستودع وانسخ مجلد `data/skills/sql-queries` إلى دليل مهارات Claude الخاص بك. متوافق مع Claude Code و Cursor و Codex وأي وكيل متوافق مع Agent Skills.
أصول ذات صلة
مختارات أخرى في البيانات والتحليلات.
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/bio-research/skills/nextflow-development ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/data/skills/data-context-extractor ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/bio-research/skills/instrument-data-to-allotrope ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/data/skills/analyze ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/bio-research/skills/start ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/data/skills/validate-data ~/.claude/skills/
افحص قبل التثبيت
شغل أي مصدر عبر فحوصاتنا - الظهور في الذكاء الاصطناعي والأمان والأداء واكتشاف التقنيات.
فحص أمني تلقائي للموقع
الأمان
محلل سرعة الصفحة
الأداء
اختبار جودة المحتوى العربي بالذكاء الاصطناعي
جودة المحتوى
مختبر وكلاء الذكاء الاصطناعي
اختبار الذكاء الاصطناعي
كاشف منصة الموقع
الترحيل
تدقيق الظهور في محركات الذكاء الاصطناعي
الظهور في الذكاء الاصطناعي
مولد ملف llms.txt
الظهور في الذكاء الاصطناعي
مقياس سهولة القراءة بالعربية
جودة المحتوى
منشئ البيانات المنظمة
الظهور في الذكاء الاصطناعي
حاسبة تكاليف الذكاء الاصطناعي
اختبار الذكاء الاصطناعي
محلل العناوين العربية
جودة المحتوى