قم بتنسيق استعلامات SQL مع التIndentation الصحيحة والتكبير بينما تتحقق من بناء الجملة. يجعل استعلامات قاعدة البيانات الخاصة بك قابلة للقراءة وخالية من الأخطاء على الفور.
أداة بسيطة لتنسيق والتحقق من استعلامات SQL الخاصة بك مع التحقق من بناء الجملة والتنسيق الصحيح.
أداة منسق ومدقق SQL هي أداة قوية وسهلة الاستخدام عبر الإنترنت مصممة لمساعدة المطورين ومديري قواعد البيانات والمبتدئين في SQL على تنسيق والتحقق من استعلامات SQL الخاصة بهم بكفاءة. تقوم هذه الأداة المجانية تلقائيًا بتنسيق أوامر SQL مع الهوامش الصحيحة، والتكبير، والمسافات وفقًا لقواعد بناء الجملة القياسية لـ SQL، مما يجعل استعلاماتك أكثر قابلية للقراءة والصيانة. بالإضافة إلى ذلك، تقوم بإجراء فحوصات التحقق من الصحة لتحديد الأخطاء الشائعة في بناء الجملة قبل تنفيذها ضد قاعدة البيانات الخاصة بك، مما قد يوفر ساعات من وقت تصحيح الأخطاء. سواء كنت تكتب استعلامات قاعدة بيانات معقدة، أو تتعلم SQL، أو تحتاج ببساطة إلى تنظيف كود SQL الفوضوي، فإن هذا المنسق والمدقق يوفر واجهة بديهية لتحسين سير عمل SQL الخاص بك على الفور.
استخدام منسق ومدقق SQL بسيط:
تم تصميم الواجهة لتكون بديهية واستجابة، وتعمل بسلاسة على كل من أجهزة الكمبيوتر المكتبية والأجهزة المحمولة.
يقوم المنسق تلقائيًا بتكبير الكلمات الرئيسية في SQL مثل SELECT وFROM وWHERE وJOIN، مما يجعلها تبرز عن أسماء الجداول والأعمدة. هذا يحسن من قابلية القراءة ويتبع تقاليد أسلوب SQL القياسية.
يتم إدخال استعلامات SQL وفقًا لهيكلها المنطقي:
يقوم المنسق بإدخال فواصل في نقاط منطقية في استعلامك:
كما يتم إضافة المسافات المناسبة حول المشغلين، والأقواس، وبين الفقرات لتعزيز قابلية القراءة.
يتحقق المدقق من الأخطاء الشائعة في بناء جملة SQL ويقدم ملاحظات واضحة:
يحدد المدقق أيضًا الأخطاء المنطقية الشائعة:
عند اكتشاف الأخطاء، يتم عرضها بتنسيق واضح وسهل الاستخدام:
يتبع منسق SQL هذه القواعد المحددة لضمان SQL متسق وقابل للقراءة:
يتم تكبير جميع الكلمات الرئيسية في SQL، بما في ذلك:
قبل التنسيق:
1select u.id, u.name, o.order_date from users u join orders o on u.id = o.user_id where o.status = "completed" group by u.id order by u.name;
2
بعد التنسيق:
1SELECT
2 u.id,
3 u.name,
4 o.order_date
5FROM users u
6 JOIN orders o ON u.id = o.user_id
7WHERE
8 o.status = "completed"
9GROUP BY
10 u.id
11ORDER BY
12 u.name;
13
يتحقق المدقق من القضايا التالية:
SQL غير صالح مع الأخطاء:
1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6
أخطاء التحقق من الصحة:
تعتبر أداة منسق ومدقق SQL قيمة في العديد من السيناريوهات:
بينما توفر أداة منسق ومدقق SQL وظائف أساسية، هناك بدائل يجب مراعاتها:
تم تطوير SQL (لغة الاستعلام الهيكلية) في السبعينيات في IBM، مع إصدار أول تنفيذ تجاري في عام 1979. نشرت المعهد الوطني الأمريكي للمعايير (ANSI) أول معيار SQL في عام 1986، تلاه منظمة المعايير الدولية (ISO) في عام 1987.
مع تطور SQL عبر معايير متعددة (SQL-86، SQL-89، SQL-92، SQL:1999، SQL:2003، SQL:2008، SQL:2011، SQL:2016، وSQL:2019)، تطورت أيضًا ممارسات التنسيق لتحسين قابلية قراءة الكود وصيانته.
في الأيام الأولى لـ SQL، كان التنسيق غير متسق ويعتمد إلى حد كبير على تفضيلات الأفراد. مع تعقيد أنظمة قواعد البيانات وزيادة تطوير الفرق، زادت الحاجة إلى تنسيق موحد.
المعالم الرئيسية في تاريخ تنسيق SQL:
تطور التحقق من صحة SQL من فحص بناء جملة بسيط إلى تحليل أكثر تعقيدًا:
غير المنسق:
1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2
المنسق:
1SELECT
2 id,
3 first_name,
4 last_name,
5 email
6FROM
7 customers
8WHERE
9 status = 'active'
10ORDER BY
11 last_name,
12 first_name;
13
غير المنسق:
1select c.id, c.name, o.order_date, o.total_amount from customers c left join orders o on c.id = o.customer_id where o.order_date >= '2023-01-01' and o.status != 'cancelled' order by o.order_date desc;
2
المنسق:
1SELECT
2 c.id,
3 c.name,
4 o.order_date,
5 o.total_amount
6FROM
7 customers c
8 LEFT JOIN orders o ON c.id = o.customer_id
9WHERE
10 o.order_date >= '2023-01-01'
11 AND o.status != 'cancelled'
12ORDER BY
13 o.order_date DESC;
14
غير المنسق:
1select d.department_name, (select count(*) from employees e where e.department_id = d.id) as employee_count, (select avg(salary) from employees e where e.department_id = d.id) as avg_salary from departments d where d.active = true having employee_count > 0 order by avg_salary desc;
2
المنسق:
1SELECT
2 d.department_name,
3 (
4 SELECT
5 COUNT(*)
6 FROM
7 employees e
8 WHERE
9 e.department_id = d.id
10 ) AS employee_count,
11 (
12 SELECT
13 AVG(salary)
14 FROM
15 employees e
16 WHERE
17 e.department_id = d.id
18 ) AS avg_salary
19FROM
20 departments d
21WHERE
22 d.active = TRUE
23HAVING
24 employee_count > 0
25ORDER BY
26 avg_salary DESC;
27
إليك أمثلة على كيفية تنفيذ تنسيق SQL في لغات برمجة مختلفة:
1// مثال تنسيق SQL في JavaScript باستخدام مكتبة sql-formatter
2const sqlFormatter = require('sql-formatter');
3
4function formatSQL(sql) {
5 return sqlFormatter.format(sql, {
6 language: 'sql',
7 uppercase: true,
8 linesBetweenQueries: 2,
9 indentStyle: 'standard'
10 });
11}
12
13const rawSQL = "select id, name from users where status='active'";
14const formattedSQL = formatSQL(rawSQL);
15console.log(formattedSQL);
16
1# مثال تنسيق SQL في Python باستخدام sqlparse
2import sqlparse
3
4def format_sql(sql):
5 return sqlparse.format(
6 sql,
7 reindent=True,
8 keyword_case='upper',
9 identifier_case='lower',
10 indent_width=2
11 )
12
13raw_sql = "select id, name from users where status='active'"
14formatted_sql = format_sql(raw_sql)
15print(formatted_sql)
16
1// مثال تنسيق SQL في Java باستخدام JSqlParser
2import net.sf.jsqlparser.parser.CCJSqlParserUtil;
3import net.sf.jsqlparser.statement.Statement;
4
5public class SQLFormatter {
6 public static String formatSQL(String sql) throws Exception {
7 Statement statement = CCJSqlParserUtil.parse(sql);
8 return statement.toString()
9 .replaceAll("(?i)SELECT", "\nSELECT")
10 .replaceAll("(?i)FROM", "\nFROM")
11 .replaceAll("(?i)WHERE", "\nWHERE")
12 .replaceAll("(?i)ORDER BY", "\nORDER BY");
13 }
14
15 public static void main(String[] args) throws Exception {
16 String rawSQL = "select id, name from users where status='active'";
17 String formattedSQL = formatSQL(rawSQL);
18 System.out.println(formattedSQL);
19 }
20}
21
1<?php
2// مثال تنسيق SQL في PHP
3function formatSQL($sql) {
4 // استبدال الكلمات الرئيسية بنسخها الكبيرة
5 $keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'LEFT JOIN', 'RIGHT JOIN',
6 'INNER JOIN', 'GROUP BY', 'ORDER BY', 'HAVING', 'LIMIT'];
7
8 $formattedSQL = $sql;
9 foreach ($keywords as $keyword) {
10 $formattedSQL = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/i', "\n$keyword", $formattedSQL);
11 }
12
13 // إضافة الهوامش
14 $lines = explode("\n", $formattedSQL);
15 $result = '';
16 $indentLevel = 0;
17
18 foreach ($lines as $line) {
19 $trimmedLine = trim($line);
20 if (!empty($trimmedLine)) {
21 $result .= str_repeat(" ", $indentLevel) . $trimmedLine . "\n";
22 }
23 }
24
25 return $result;
26}
27
28$rawSQL = "select id, name from users where status='active'";
29$formattedSQL = formatSQL($rawSQL);
30echo $formattedSQL;
31?>
32
تنسيق SQL هو عملية هيكلة كود SQL مع الهوامش الصحيحة، وفواصل الأسطر، والتكبير لجعله أكثر قابلية للقراءة والصيانة. يتبع تنسيق SQL الجيد تقاليد موحدة مثل تكبير الكلمات الرئيسية، ووضع الفقرات في أسطر منفصلة، واستخدام إدخال متسق للهياكل المتداخلة.
يقدم تنسيق استعلامات SQL العديد من الفوائد:
يدعم منسق SQL هذا بناء الجملة القياسي الذي يعمل عبر معظم أنظمة قواعد البيانات الرئيسية، بما في ذلك:
بينما يتعامل المنسق بشكل جيد مع SQL القياسي، قد لا يتم تنسيق بعض الميزات المحددة لللهجات بشكل مثالي.
يتحقق المدقق من الأخطاء الشائعة في بناء الجملة والقضايا الهيكلية ولكنه لا يمكنه اكتشاف جميع الأخطاء الممكنة، خاصة تلك المتعلقة بـ:
من الأفضل استخدامه كخط دفاع أول قبل تنفيذ الاستعلامات ضد قاعدة البيانات الخاصة بك.
حاليًا، يستخدم المنسق أسلوبًا قياسيًا يعتمد على تقاليد SQL المعترف بها على نطاق واسع. قد تتضمن الإصدارات المستقبلية خيارات تخصيص لـ:
نعم، تعالج هذه الأداة جميع استعلامات SQL بالكامل في المتصفح الخاص بك. لم يتم إرسال استعلامات SQL الخاصة بك إلى أي خادم أو تخزينها في أي مكان. وهذا يجعلها آمنة للاستخدام مع كود SQL حساس أو ملكية.
بالنسبة لاستعلامات SQL الكبيرة جدًا:
تتطلب هذه الأداة المستندة إلى الويب اتصالاً بالإنترنت لتحميلها في البداية. ومع ذلك، بمجرد تحميلها، تعمل بالكامل في المتصفح الخاص بك. للاستخدام غير المتصل تمامًا، يمكنك التفكير في:
يركز المدقق على عناصر بناء الجملة الشائعة عبر إصدارات SQL (SQL-92 وما بعدها). قد لا يتعرف على بعض الميزات المحددة للمعايير الأحدث أو الامتدادات الخاصة. للحصول على تحقق محدد للإصدار، يمكنك استخدام الأدوات المقدمة من بائع قاعدة البيانات الخاص بك.
بينما لا توفر هذه الأداة عبر الإنترنت دمجًا مباشرًا، فإن العديد من IDEs لديها قدرات تنسيق مماثلة من خلال الملحقات أو الإضافات. لخطوط الأنابيب الآلية، يمكنك التفكير في أدوات سطر الأوامر مثل:
جرب منسق ومدقق SQL الخاص بنا اليوم لتحسين جودة كود SQL الخاص بك، وقابليته للقراءة، وصحته!
اكتشف المزيد من الأدوات التي قد تكون مفيدة لسير عملك