المشاركات

عرض المشاركات من سبتمبر, 2025

عامل SQL UNION ALL

عامل SQL UNION ALL عامل SQL UNION ALL يُستخدم عامل UNION ALL لدمج نتائج استعلامين SELECT أو أكثر في نتيجة واحدة، ويشمل جميع الصفوف بما في ذلك المكررة. الفرق بين UNION و UNION ALL هو أن UNION يحذف الصفوف المكررة تلقائيًا بينما UNION ALL يحتفظ بها. الشروط اللازمة لاستخدام UNION ALL: يجب أن تحتوي كل جملة SELECT ضمن UNION ALL على نفس عدد الأعمدة. يجب أن تكون أنواع البيانات في الأعمدة متشابهة. يجب أن تكون الأعمدة في كل جملة SELECT بنفس الترتيب. بناء الجملة (Syntax) SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2; ملاحظة: أسماء الأعمدة في النتيجة عادةً تكون مساوية لأسماء الأعمدة في أول جملة SELECT. قاعدة بيانات التجربة في هذا الدرس نستخدم قاعدة البيانات الشهيرة Northwind التي تحتوي على جدول العملاء (Customers) والموردين (Suppliers). جدول Customers CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere St...

عامل SQL UNION

عامل SQL UNION عامل SQL UNION يُستخدم عامل UNION لدمج نتائج استعلامين SELECT أو أكثر في نتيجة واحدة. يقوم UNION تلقائيًا بحذف الصفوف المكررة من النتيجة، بينما UNION ALL يحتفظ بكل الصفوف بما فيها المكررة. الشروط اللازمة لاستخدام UNION: يجب أن تحتوي كل جملة SELECT ضمن UNION على نفس عدد الأعمدة. يجب أن تكون أنواع البيانات في الأعمدة متشابهة. يجب أن تكون الأعمدة في كل جملة SELECT بنفس الترتيب. بناء الجملة (Syntax) SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2; ملاحظة: أسماء الأعمدة في النتيجة عادةً تكون مساوية لأسماء الأعمدة في أول جملة SELECT. قاعدة بيانات التجربة في هذا الدرس نستخدم قاعدة البيانات الشهيرة Northwind التي تحتوي على جدول العملاء (Customers) والموردين (Suppliers). جدول Customers CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados...

الانضمام الذاتي في SQL (Self Join)

SQL Self Join الانضمام الذاتي في SQL (Self Join) الانضمام الذاتي (Self Join) هو نوع من الانضمام العادي، لكنه يتم على نفس الجدول نفسه. يُستخدم هذا النوع للعثور على علاقات بين الصفوف داخل نفس الجدول، مثل العملاء الذين يعيشون في نفس المدينة، أو الموظفين في نفس القسم. بناء الجملة (Syntax) SELECT column_name(s) FROM table1 T1, table1 T2 WHERE condition; حيث T1 و T2 هما أسماء مستعارة (alias) مختلفة لنفس الجدول، لتسهيل الإشارة إلى الصفوف المختلفة من نفس الجدول. قاعدة بيانات التجربة في هذا الدرس نستخدم قاعدة البيانات الشهيرة Northwind. جدول Customers CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Moreno Taquería ...

كلمة SQL FULL OUTER JOIN

SQL FULL OUTER JOIN كلمة SQL FULL OUTER JOIN كلمة FULL OUTER JOIN تُستخدم لإرجاع كل السجلات عندما يكون هناك تطابق في الجدول الأيسر ( table1 ) أو الجدول الأيمن ( table2 ). إذا لم يوجد تطابق في أي من الجدولين، سيتم إرجاع NULL في الأعمدة المفقودة. ملاحظة: FULL OUTER JOIN و FULL JOIN هما نفس الشيء، ويجب الحذر عند استخدامه لأنه قد يُرجع كمية كبيرة من البيانات. بناء الجملة SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name WHERE condition; قاعدة بيانات التجربة في هذا الدرس نستخدم قاعدة بيانات Northwind. جدول Customers CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Mo...

الكلمة المفتاحية RIGHT JOIN في SQL

SQL RIGHT JOIN الكلمة المفتاحية RIGHT JOIN في SQL كلمة RIGHT JOIN تُستخدم لإرجاع جميع السجلات من الجدول الأيمن ( table2 )، والسجلات المطابقة من الجدول الأيسر ( table1 ). إذا لم يوجد تطابق، تُرجع النتيجة NULL من جانب الجدول الأيسر. تعتبر RIGHT JOIN مفيدة جدًا عند تحليل البيانات التي قد تكون ناقصة في الجدول الأول. بناء الجملة (Syntax) SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name; ملاحظة: في بعض قواعد البيانات يُطلق على RIGHT JOIN اسم RIGHT OUTER JOIN . مثال من قاعدة بيانات Northwind جزء من جدول الطلبات (Orders) : OrderID CustomerID EmployeeID OrderDate ShipperID 10308 2 7 1996-09-18 3 10309 37 3 1996-09-19 1 10310 77 8 1996-09-20 2 وجزء من جدول الموظفين (Employees) : EmployeeID LastName FirstName BirthDate Photo 1 Davolio Nancy 1968-12-08 EmpID1.pic 2 Fuller Andrew 1952-02-19 EmpID2.pic 3 Leverling Janet 1...

الكلمة المفتاحية LEFT JOIN في SQL

SQL LEFT JOIN الكلمة المفتاحية LEFT JOIN في SQL كلمة LEFT JOIN تُستخدم لإرجاع جميع السجلات من الجدول الأيسر ( table1 )، والسجلات المطابقة من الجدول الأيمن ( table2 ). إذا لم يوجد تطابق، تُرجع النتيجة NULL من جانب الجدول الأيمن. تعتبر LEFT JOIN مفيدة جدًا عند تحليل البيانات التي قد تكون ناقصة في الجدول الثاني. بناء الجملة (Syntax) SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name; ملاحظة: في بعض قواعد البيانات يُطلق على LEFT JOIN اسم LEFT OUTER JOIN . مثال من قاعدة بيانات Northwind جزء من جدول العملاء (Customers) : CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio M...

INNER JOIN في SQL

SQL INNER JOIN INNER JOIN في SQL كلمة INNER JOIN تُستخدم لاختيار السجلات التي تحتوي على قيم متطابقة في كلا الجدولين. تُسهل عملية الربط بين الجداول وعرض البيانات المرتبطة بطريقة دقيقة ومنظمة. جدول المنتجات (Products) معرّف المنتج (ProductID) اسم المنتج (ProductName) معرّف الفئة (CategoryID) السعر (Price) 1 Chais 1 18 2 Chang 1 19 3 Aniseed Syrup 2 10 4 Chef Anton's Cajun Seasoning 22 جدول الفئات (Categories) معرّف الفئة (CategoryID) اسم الفئة (CategoryName) الوصف (Description) 1 Beverages مشروبات: شاي، قهوة، عصائر، بيرة، وغيرها 2 Condiments صلصات حلوة وحامضة، توابل ومخللات 3 Confections حلويات: كيك، بسكويت، وشوكولاتة مثال على الاستعلام SELECT ProductID, ProductName, CategoryName FROM Products INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID; ملاحظة: كلمة INNER JOIN تُرجع فقط الصفوف التي تحتوي على تطابق بين الجدولين. مثلاً المنتج "Chef Anton...

SQL Joins - الجداول المترابطة في SQL

SQL Joins - الجداول المترابطة في SQL SQL Joins - الجداول المترابطة في SQL جملة JOIN تُستخدم لدمج الصفوف من جدولين أو أكثر، بناءً على عمود مشترك بينهم. تُسهل عمليات استعلام البيانات المعقدة من أكثر من جدول وتساعد على تحليل البيانات بشكل أفضل. مثال توضيحي جدول Orders : OrderID CustomerID OrderDate 10308 2 1996-09-18 10309 37 1996-09-19 10310 77 1996-09-20 جدول Customers : CustomerID CustomerName ContactName Country 1 Alfreds Futterkiste Maria Anders Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico 3 Antonio Moreno Taquería Antonio Moreno Mexico لاحظ أن عمود CustomerID في جدول Orders يشير إلى العمود نفسه في جدول Customers . إذن العلاقة بين الجدولين تتم من خلال هذا العمود. INNER JOIN باستخدام INNER JOIN نستطيع إحضار السجلات ...

SQL Aliases - الأسماء المستعارة في SQL

SQL Aliases - الأسماء المستعارة في SQL SQL Aliases - الأسماء المستعارة في SQL الأسماء المستعارة (Aliases) تُستخدم في SQL لإعطاء جدول أو عمود اسم مؤقت أثناء تنفيذ الاستعلام. الهدف منها هو جعل أسماء الأعمدة أو الجداول أكثر وضوحًا وأسهل في القراءة. الاسم المستعار يختفي بمجرد انتهاء تنفيذ الاستعلام. إنشاء Alias باستخدام AS يتم إنشاء الاسم المستعار باستخدام الكلمة المفتاحية AS ، وهي الطريقة الأكثر وضوحًا: SELECT CustomerID AS ID FROM Customers; AS اختياري في معظم أنظمة قواعد البيانات يمكن تجاهل الكلمة AS والحصول على نفس النتيجة: SELECT CustomerID ID FROM Customers; الصياغة (Syntax) عند استخدام Alias مع الأعمدة: SELECT column_name AS alias_name FROM table_name; عند استخدام Alias مع الجداول: SELECT column_name(s) FROM table_name AS alias_name; قاعدة البيانات التجريبية جدول Customers CustomerID CustomerName ContactName Address City PostalCode Country 1 Al...

عامل BETWEEN في SQL

عامل BETWEEN في SQL عامل BETWEEN في SQL عامل BETWEEN يُستخدم لاختيار القيم التي تقع ضمن نطاق محدد. القيم يمكن أن تكون أرقام أو نصوص أو تواريخ . هذا العامل يشمل القيم الحدودية (أي أن القيمة الأولى والأخيرة تُعتبر جزءًا من النطاق). يمكن دمجه مع AND و IN للحصول على نتائج أكثر تحديدًا. مثال مع الأرقام إرجاع كل المنتجات التي سعرها بين 10 و 20: SELECT * FROM Products WHERE Price BETWEEN 10 AND 20; ملاحظات حول الأداء استخدام BETWEEN مع نطاقات كبيرة جدًا يمكن أن يبطئ الأداء خصوصًا إذا لم يكن العمود مفهرسًا. يُفضل دائمًا التأكد من وجود Index على الأعمدة التي ستستخدم مع BETWEEN عند التعامل مع قواعد بيانات كبيرة. صياغة BETWEEN SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; قاعدة البيانات التجريبية الجدول التالي من جدول Products المستخدم في الأمثلة: ...

عامل IN في SQL

عامل IN في SQL عامل IN في SQL عامل IN في SQL يسمح لك بتحديد أكثر من قيمة داخل جملة WHERE . يعتبر اختصارًا لاستخدام عدة شروط OR . يُستخدم لتسهيل الكتابة وجعل الاستعلام أكثر وضوحًا وفعالية. مثال بسيط إرجاع جميع العملاء من: ألمانيا، فرنسا، أو المملكة المتحدة: SELECT * FROM Customers WHERE Country IN ('Germany', 'France', 'UK'); ملاحظات حول الأداء استخدام IN مناسب للقيم القليلة، أما إذا كانت القائمة كبيرة جدًا فقد يكون من الأفضل استخدام جدول مؤقت أو JOIN مع جدول آخر لتقليل استهلاك الموارد. الصياغة (Syntax) SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); قاعدة البيانات التجريبية الجدول التالي يحتوي على عينة من جدول Customers : CustomerID CustomerName ContactName Address Cit...

Wildcards في SQL

Wildcards في SQL Wildcards في SQL تُستخدم الـ Wildcards كبدائل لواحد أو أكثر من الحروف داخل النصوص. وغالبًا يتم استخدامها مع العامل LIKE في جملة WHERE للبحث عن نمط معين داخل عمود. مثال سريع إرجاع العملاء الذين يبدأ اسمهم بالحرف a : SELECT * FROM Customers WHERE CustomerName LIKE 'a%'; الرموز الشائعة (Wildcards) الرمز الوصف % يمثل صفر أو أكثر من الحروف _ يمثل حرف واحد فقط [] أي حرف واحد داخل الأقواس ^ أي حرف غير الموجود داخل الأقواس - أي حرف ضمن نطاق محدد {} يمثل حرف مُهَرب (مدعوم فقط في Oracle) جدول Customers (بيانات تجريبية) CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados...

عامل LIKE في SQL

عامل LIKE في SQL عامل LIKE في SQL يُستخدم LIKE داخل جملة WHERE للبحث عن نمط محدد داخل عمود. وغالبًا يتم استخدامه مع رمزين يُعرفان باسم Wildcards: % : يمثل صفر أو أكثر من الحروف. _ : يمثل حرف واحد فقط. مثال أساسي إرجاع كل العملاء الذين يبدأ اسمهم بالحرف a : SELECT * FROM Customers WHERE CustomerName LIKE 'a%'; الصياغة (Syntax) SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern; جدول Customers (بيانات تجريبية) CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico 4 Around the Horn ...

دالة AVG() في SQL

دالة AVG() في SQL دالة AVG() في SQL دالة AVG() تُستخدم لحساب المتوسط الحسابي لقيم عمود رقمي. تُعد هذه الدالة مهمة جدًا في التحليل المالي والإحصائي، خصوصًا عند الحاجة لمعرفة متوسط الأسعار أو الكميات. ملاحظة: القيم NULL يتم تجاهلها أثناء الحساب. مثال أساسي إيجاد متوسط الأسعار لجميع المنتجات: SELECT AVG(Price) FROM Products; الصياغة (Syntax) SELECT AVG(column_name) FROM table_name WHERE condition; جدول Products (بيانات تجريبية) ProductID ProductName SupplierID CategoryID Unit Price 1 Chais 1 1 10 boxes x 20 bags 18 2 Chang 1 1 24 - 12 oz bottles 19 3 Aniseed Syrup 1 2 12 - 550 ml bottles 10 4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22 5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35 استخدام WHERE إرجاع متوسط سعر المنتجات في الفئة رقم 1 : SELECT AV...

دالة SUM() في SQL

دالة SUM() في SQL دالة SUM() في SQL دالة SUM() تُستخدم لحساب مجموع القيم الرقمية في عمود معين. تُعتبر من أهم الدوال التجميعية في SQL وتُستخدم كثيرًا مع الجملة GROUP BY لإنشاء تقارير مالية وإحصائية. مثال أساسي إرجاع مجموع الحقول Quantity من جدول OrderDetails : SELECT SUM(Quantity) FROM OrderDetails; الصياغة (Syntax) SELECT SUM(column_name) FROM table_name WHERE condition; جدول OrderDetails (بيانات تجريبية) OrderDetailID OrderID ProductID Quantity 1 10248 11 12 2 10248 42 10 3 10248 72 5 4 10249 14 9 5 10249 51 40 استخدام WHERE إرجاع مجموع Quantity للمنتج الذي ProductID = 11 : SELECT SUM(Quantity) AS مجموع_الكمية FROM OrderDetails WHERE ProductID = 11; استخدام Alias SELECT SUM(Quantity) AS total FROM OrderDetails; SUM() مع GROUP BY إرجاع مجموع الكميات ل...

دالة COUNT() في SQL

دالة COUNT() في SQL دالة COUNT() في SQL دالة COUNT() تُرجع عدد الصفوف (السجلات) التي تطابق شرطًا محددًا. تُستخدم عادة لحساب عدد السجلات في الجدول أو عدد القيم غير الفارغة في عمود معين. هذه الدالة مفيدة جدًا في التحليلات الإحصائية والتقارير. مثال أساسي إيجاد العدد الكلي للصفوف في جدول Products : SELECT COUNT(*) FROM Products; الفرق بين COUNT(*) و COUNT(column) COUNT(*) تحتسب جميع الصفوف بغض النظر عن وجود قيم NULL. COUNT(column_name) تحتسب فقط الصفوف التي تحتوي على قيمة غير NULL في العمود المحدد. جدول Products (بيانات تجريبية) ProductID ProductName SupplierID CategoryID Unit Price 1 Chais 1 1 10 boxes x 20 bags 18 2 Chang 1 1 24 - 12 oz bottles 19 3 Aniseed Syrup 1 2 12 - 550 ml bottles 10 4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22 5 Chef Anton'...

دوال MIN() و MAX() في SQL

دوال MIN و MAX في SQL دوال MIN() و MAX() في SQL دالة MIN() تُرجع أصغر قيمة من العمود المحدد، بينما دالة MAX() تُرجع أكبر قيمة من العمود المحدد. تُستخدم هذه الدوال لتحليل البيانات واستخراج القيم الحدية بسرعة. مثال على MIN() إيجاد أقل سعر في عمود السعر: SELECT MIN(Price) AS أصغر_سعر FROM Products; مثال على MAX() إيجاد أعلى سعر في عمود السعر: SELECT MAX(Price) AS أكبر_سعر FROM Products; الصياغة (Syntax) SELECT MIN(column_name) FROM table_name WHERE condition; SELECT MAX(column_name) FROM table_name WHERE condition; مثال على جدول Products ProductID ProductName SupplierID CategoryID Unit Price 1 Chais 1 1 10 boxes x 20 bags 18 2 Chang 1 1 24 - 12 oz bottles 19 3 Aniseed Syrup 1 2 12 - 550 ml bottles 10 4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22 5 Chef Anton...

دوال التجميع في SQL (Aggregate Functions)

دوال التجميع في SQL (Aggregate Functions) دوال التجميع في SQL (Aggregate Functions) دالة التجميع هي دالة تقوم بإجراء عملية حسابية على مجموعة من القيم وتُرجع قيمة واحدة فقط. تُستخدم غالبًا مع جملة GROUP BY في عبارة SELECT . حيث تقوم GROUP BY بتقسيم النتائج إلى مجموعات، ثم تُطبق دالة التجميع لإرجاع قيمة واحدة لكل مجموعة. أشهر دوال التجميع في SQL MIN() — تُرجع أصغر قيمة في العمود المحدد. MAX() — تُرجع أكبر قيمة في العمود المحدد. COUNT() — تُرجع عدد الصفوف في مجموعة البيانات. SUM() — تُرجع مجموع القيم في عمود رقمي. AVG() — تُرجع المتوسط الحسابي لقيم عمود رقمي. ملاحظة: دوال التجميع تتجاهل القيم NULL (باستثناء COUNT(*) التي تحتسب كل الصفوف بما فيها التي تحتوي على قيم فارغة). أمثلة على دوال التجميع MIN() SELECT MIN(Salary) AS أقل_راتب FROM Employees; تُرجع أقل راتب موجود في جدول الموظفين. MAX() SELECT MAX(Salary) AS أعلى_راتب FROM Employees; تُ...

عبارة SQL: TOP و LIMIT و FETCH FIRST و ROWNUM

تعليمات SQL: استخدام TOP و LIMIT و FETCH FIRST و ROWNUM عبارة SQL: TOP و LIMIT و FETCH FIRST و ROWNUM تُستخدم عبارة SELECT TOP لتحديد عدد السجلات المراد عرضها من الجدول. وهي مفيدة بشكل خاص عند التعامل مع الجداول الكبيرة التي تحتوي على آلاف السجلات، حيث إن استرجاع عدد كبير من الصفوف قد يؤثر على الأداء. مثال (SQL Server) SELECT TOP 3 * FROM Customers; يعرض هذا الاستعلام أول 3 سجلات فقط من جدول Customers . ملاحظة: ليست كل أنظمة قواعد البيانات تدعم SELECT TOP . فمثلاً: MySQL يستخدم LIMIT . Oracle يستخدم FETCH FIRST n ROWS ONLY أو ROWNUM . بناء الجمل حسب نوع قاعدة البيانات SQL Server / MS Access SELECT TOP number|percent column_name(s) FROM table_name WHERE condition; MySQL SELECT column_name(s) FROM table_name WHERE condition LIMIT number; Oracle 12+ SELECT column_name(s) FROM table_name ORDER BY column_name(s) FETCH FIRST number ROWS ONLY; Oracle الأقدم SELE...