استكشاف SQL

مكتمل

تلميح

راجع علامة التبويب النص والصور لمزيد من التفاصيل!

يرمز SQL إلى لغة الاستعلام المنظم، ويستخدم للاتصال بقاعدة بيانات ارتباطية. إنها اللغة القياسية لأنظمة إدارة قواعد البيانات الارتباطية. تستخدم عبارات SQL لتنفيذ مهام مثل تحديث البيانات في قاعدة بيانات أو استرداد البيانات من قاعدة بيانات. بعض أنظمة إدارة قواعد البيانات العلائقية الشائعة التي تستخدم SQL تشمل Microsoft SQL Server، قاعدة بيانات Azure SQL، مثيل Azure SQL المُدار، SQL Server على أجهزة Azure الظاهرية، MySQL، PostgreSQL، وأوركل.

إشعار

تم توحيد SQL في الأصل من قبل المعهد الأمريكي للمعايير الوطنية (ANSI) في عام 1986، والمنظمة الدولية للتوحيد القياسي (ISO) في عام 1987. ومنذ ذلك الحين، تم تمديد المعيار عدة مرات حيث أضاف موردو قواعد البيانات الارتباطية ميزات جديدة إلى أنظمتهم. بالإضافة إلى ذلك، معظم بائعي قواعد البيانات يضمون امتداداتهم الخاصة التي ليست جزءا من المعيار، مما أدى إلى تنوع لهجات SQL.

يمكنك استخدام عبارات SQL مثل SELECTوINSERT و UPDATEوDELETEوCREATEوDROP لإنجاز كل ما تحتاج إلى القيام به تقريبا مع قاعدة بيانات. على الرغم من أن عبارات SQL هذه هي جزء من معيار SQL، فإن العديد من أنظمة إدارة قواعد البيانات لديها أيضا ملحقات خاصة إضافية للتعامل مع تفاصيل نظام إدارة قاعدة البيانات هذا. توفر هذه الملحقات وظائف غير مشمولة بمعيار SQL، وتتضمن مجالات مثل إدارة الأمان وقابلية البرمجة. على سبيل المثال، Microsoft SQL Server وخدمات قاعدة بيانات Azure التي تستند إلى محرك قاعدة بيانات SQL Server، استخدم Transact-SQL. يتضمن هذا التنفيذ ملحقات خاصة لكتابة الإجراءات والمشغلات المخزنة (رمز التطبيق الذي يمكن تخزينه في قاعدة البيانات)، وإدارة حسابات المستخدمين. كما أن PostgreSQL وMySQL لديهما إصداراتهما الخاصة من هذه الميزات.

تتضمن بعض اللهجات الشائعة من SQL ما يلي:

  • Transact-SQL (T-SQL). يستخدم هذا الإصدار من SQL من قبل Microsoft SQL Server، قاعدة بيانات Azure SQL، مثيل Azure SQL المُدار، و SQL Server على أجهزة Azure الظاهرية.

  • pgSQL. هذه هي اللهجة، مع تنفيذ الملحقات في PostgreSQL.

  • PL/SQL. هذه هي اللهجة التي تستخدمها Oracle. يرمز PL/SQL إلى اللغة الإجرائية/SQL.

يجب على المستخدمين الذين يخططون للعمل على وجه التحديد مع نظام قاعدة بيانات واحد معرفة تعقيدات لهجة SQL المفضلة لديهم والنظام الأساسي.

إشعار

يتضمن قاعدة بيانات Azure SQL ميزات الذكاء الاصطناعي التي يمكنك استخدامها لكتابة وفهم استعلامات SQL باستخدام اللغة الطبيعية.

إشعار

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

أنواع عبارة SQL

يتم تجميع عبارات SQL في ثلاث مجموعات منطقية رئيسية:

  • لغة تعريف البيانات (DDL)
  • لغة التحكم في البيانات (DCL)
  • لغة معالجة البيانات (DML)

عبارات لغة تعريف البيانات "DDL"

يمكنك استخدام عبارات DDL لإنشاء جداول وعناصر أخرى في قاعدة بيانات وتعديلها وإزالتها (الجدول والإجراءات المخزنة وطرق العرض وما إلى ذلك).

عبارات DDL الأكثر شيوعا هي:

البيان‬ ‏‏الوصف
CREATE إنشاء كائن جديد في قاعدة البيانات، مثل جدول أو طريقة عرض.
ALTER تعديل بنية كائن. على سبيل المثال، تغيير جدول لإضافة عمود جديد.
DROP إزالة كائن من قاعدة البيانات.
RENAME إعادة تسمية كائن موجود.

تحذير

عبارة DROP قوية جدا. عند إسقاط جدول، يتم فقدان كافة الصفوف في هذا الجدول. ما لم يكن لديك نسخة احتياطية، فلن تتمكن من استرداد هذه البيانات.

ينشئ المثال التالي جدول قاعدة بيانات جديد. تحدد العناصر بين الأقواس تفاصيل كل عمود، بما في ذلك الاسم ونوع البيانات، وما إذا كان يجب أن يحتوي العمود دائما على قيمة (NOT NULL)، وما إذا كانت البيانات الموجودة في العمود تستخدم لتعريف صف بشكل فريد (PRIMARY KEY). يجب أن يحتوي كل جدول على مفتاح أساسي، على الرغم من أن SQL لا يفرض هذه القاعدة.

إشعار

يشار إلى الأعمدة التي تم وضع علامة NOT NULL عليها كأعمدة إلزامية . إذا حذفت عبارة NOT NULL ، يمكنك إنشاء صفوف لا تحتوي على قيمة في العمود. يقال إن عمودا فارغا في صف ما يحتوي على قيمة NULL .

CREATE TABLE Product
(
    ID INT PRIMARY KEY,
    Name VARCHAR(20) NOT NULL,
    Price DECIMAL NULL
);

تختلف أنواع البيانات المتوفرة للأعمدة في جدول بين أنظمة إدارة قواعد البيانات. ومع ذلك، تدعم معظم أنظمة إدارة قواعد البيانات الأنواع الرقمية مثل INT (عدد صحيح أو عدد صحيح) و DECIMAL (رقم عشري) وأنواع السلاسل مثل VARCHAR (VARCHAR يرمز إلى بيانات حرف طول المتغير). لمزيد من المعلومات، راجع الوثائق الخاصة بنظام إدارة قاعدة البيانات المحدد.

عبارات DCL

يستخدم مسؤولو قاعدة البيانات عبارات DCL بشكل عام لإدارة الوصول إلى الكائنات في قاعدة بيانات عن طريق منح أذونات لمستخدمين أو مجموعات معينة أو رفضها أو إبطالها.

عبارات DCL الرئيسية الثلاثة هي:

البيان‬ ‏‏الوصف
GRANT منح الإذن لتنفيذ إجراءات محددة
DENY رفض الإذن لتنفيذ إجراءات محددة
REVOKE إزالة إذن تم منحه مسبقا

على سبيل المثال، تسمح عبارة GRANT التالية لمستخدم يسمى user1 بقراءة البيانات وإدراجها وتعديلها في جدول Product .

GRANT SELECT, INSERT, UPDATE
ON Product
TO user1;

بيانات لغة معالجات البيانات DML

يمكنك استخدام عبارات DML لمعالجة الصفوف في الجداول. تمكنك هذه العبارات من استرداد (استعلام) البيانات أو إدراج صفوف جديدة أو تعديل الصفوف الموجودة. يمكنك أيضا حذف الصفوف إذا لم تعد بحاجة إليها.

عبارات DML الرئيسية الأربعة هي:

البيان‬ ‏‏الوصف
SELECT قراءة الصفوف من جدول
INSERT إدراج صفوف جديدة في جدول
UPDATE تعديل البيانات في الصفوف الموجودة
DELETE حذف الصفوف الموجودة

سيدرج النموذج الأساسي ل عبارة INSERT صفا واحدا في كل مرة. بشكل افتراضي، يتم تطبيق عبارات SELECT و UPDATEوDELETE على كل صف في جدول. عادة ما تطبق عبارة WHERE مع هذه العبارات لتحديد المعايير؛ سيتم تحديد الصفوف التي تطابق هذه المعايير فقط أو تحديثها أو حذفها.

تحذير

لا يوفر SQL هل أنت متأكد؟ المطالبات، لذا كن حذرا عند استخدام DELETE أو UPDATE بدون عبارة WHERE لأنه يمكنك فقدان الكثير من البيانات أو تعديلها.

التعليمات البرمجية التالية هي مثال على عبارة SQL التي تحدد كافة الأعمدة (المشار إليها بواسطة *) من جدول العميل حيث تكون قيمة عمود المدينة "سياتل":

SELECT *
FROM Customer
WHERE City = 'Seattle';

لاسترداد مجموعة فرعية معينة فقط من الأعمدة من الجدول، يمكنك سردها في عبارة SELECT ، مثل هذا:

SELECT FirstName, LastName, Address, City
FROM Customer
WHERE City = 'Seattle';

إذا أرجع استعلام العديد من الصفوف، فلن تظهر بالضرورة في أي تسلسل محدد. إذا كنت تريد فرز البيانات، يمكنك إضافة عبارة ORDER BY . سيتم فرز البيانات حسب العمود المحدد:

SELECT FirstName, LastName, Address, City
FROM Customer
WHERE City = 'Seattle'
ORDER BY LastName;

يمكنك أيضا تشغيل عبارات SELECT التي تسترد البيانات من جداول متعددة باستخدام عبارة JOIN . تشير الصلات إلى كيفية توصيل الصفوف في جدول واحد بصفوف في الجدول الآخر لتحديد البيانات التي يجب إرجاعها. يتطابق شرط الصلة النموذجي مع مفتاح خارجي من جدول واحد والمفتاح الأساسي المقترن به في الجدول الآخر.

يعرض الاستعلام التالي مثالا ينضم إلى جدولي "العميل " و" الطلب ". يستخدم الاستعلام الأسماء المستعارة للجداول لاختصار أسماء الجداول عند تحديد الأعمدة المراد استردادها في عبارة SELECT والأعمدة المراد مطابقتها في عبارة JOIN .

SELECT o.OrderNo, o.OrderDate, c.Address, c.City
FROM Order AS o
JOIN Customer AS c
ON o.Customer = c.ID

يوضح المثال التالي كيفية تعديل صف موجود باستخدام SQL. يقوم بتغيير قيمة عمود العنوان في جدول العميل للصفوف التي تحتوي على القيمة 1 في عمود المعرف . يتم ترك كافة الصفوف الأخرى دون تغيير:

UPDATE Customer
SET Address = '123 High St.'
WHERE ID = 1;

تحذير

إذا حذفت عبارة WHERE ، فستعدل عبارة UPDATEكل صف في الجدول.

استخدم عبارة DELETE لإزالة الصفوف. يمكنك تحديد الجدول المراد الحذف منه، وعبارة WHERE التي تحدد الصفوف المراد حذفها:

DELETE FROM Product
WHERE ID = 162;

تحذير

إذا حذفت عبارة WHERE ، فستزيل عبارة DELETEكل صف من الجدول.

تأخذ عبارة INSERT شكلا مختلفا قليلا. يمكنك تحديد جدول وأعمدة في عبارة INTO وقائمة بالقيم التي سيتم تخزينها في هذه الأعمدة. يدعم SQL القياسي إدراج صف واحد فقط في كل مرة، كما هو موضح في المثال التالي. تسمح لك بعض اللهجات بتحديد عبارات VALUES متعددة لإضافة عدة صفوف في كل مرة:

INSERT INTO Product(ID, Name, Price)
VALUES (99, 'Drill', 4.99);

إشعار

يصف هذا الموضوع بعض عبارات SQL الأساسية وبناء الجملة لمساعدتك على فهم كيفية استخدام SQL للعمل مع العناصر في قاعدة بيانات. إذا كنت ترغب في معرفة المزيد حول الاستعلام عن البيانات باستخدام SQL، فراجع مسار التعلم بدء الاستعلام باستخدام Transact-SQL على Microsoft Learn.