13 من أهم أوامر SQL يجب على أي مبرمج معرفتها

13 من أهم أوامر SQL يجب على أي مبرمج معرفتها

قواعد البيانات تقود الويب الحديث. يستخدم كل موقع ويب كبير أو ديناميكي قاعدة بيانات بطريقة ما ، وعندما يقترن بملفات لغة الاستعلام الهيكلية (SQL) ، فإن إمكانيات التلاعب بالبيانات لا حصر لها حقًا. إذا كنت تعرف SQL بالفعل ، فتأكد من مراجعة مهارات البرمجة التي يجب أن يعرفها جميع مطوري مواقع الويب.





اليوم سأعرض لكم بعض من أوامر SQL الأساسية تحتاج إلى أن تعرف كمبرمج.





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





مقدمة

سوف تستند جميع الأمثلة اليوم إلى أربعة جداول خيالية. ال عميل يحتوي الجدول على اسم العملاء وأعمارهم:

ال مرتفعات جدول يحتوي على اسم أي شخص وارتفاعه:



ال طاقم عمل يحتوي الجدول على اسم وعمر الموظفين - تمامًا مثل جدول العملاء:

الجدول النهائي يسمى اشخاص يحتوي على اسم وعمر الأشخاص ، تمامًا مثل جداول العملاء والموظفين:





1. حدد

ال تحديد العبارة هي الأبسط ، ومن الضروري أن تفهمها لأنها تدعم جميع الأوامر الأخرى تقريبًا. تعتبر كتابة كلمات SQL المحجوزة بأحرف كبيرة من أفضل الممارسات ، لأنها تجعل الأمر أسهل في القراءة والفهم.

كما يوحي اسمها ، يتم استخدام select لـ تحديد بيانات من قاعدة بيانات. إليك أبسط استخدام:





SELECT * FROM table;

هنالك جزئين لهذا. الجزء الاول ( تحديد * ) يحدد الأعمدة التي ترغب في تحديدها. تشير علامة النجمة إلى رغبتك في تحديد جميع الأعمدة في الجدول. الجزء الثاني ( من الجدول ) يخبر محرك قاعدة البيانات الخاص بك بالمكان الذي ترغب في استرداد هذه البيانات منه. استبدل 'جدول' باسم جدول قاعدة البيانات.

يُعرف هذا التحديد باسم 'تحديد نجمة'. يعد استخدام علامة النجمة طريقة جيدة لمعرفة البيانات الموجودة في الجدول ، لكنني لا أوصي باستخدامها لأي كود إنتاج. عند استخدام نجمة محددة ، فإن الأمر متروك لمحرك قاعدة البيانات ليقدم لك البيانات التي تريدها. ليس لديك أي تحكم في ترتيب إرجاع البيانات ، لذلك إذا أضاف شخص ما عمودًا جديدًا إلى الجدول ، فقد تجد متغيراتك في لغة البرمجة الخاصة بك لم تعد تمثل البيانات الصحيحة. لحسن الحظ، هناك حل.

يمكنك تحديد الأعمدة التي ترغب في استردادها بشكل صريح ، مثل هذا:

SELECT age, name FROM people;

يسترد هذا الاستعلام عمودي 'العمر' و 'الاسم' من جدول 'الأشخاص'. قد يكون هذا الصريح مملاً قليلاً إذا كان لديك الكثير من البيانات ، ولكن القيام بذلك سيقلل من المشاكل في المستقبل ، إلى جانب تسهيل فهم SQL الخاص بك من قبل أي مبرمج في المستقبل.

إذا كنت تريد تحديد جزء إضافي من البيانات ، ولكن لم يتم تخزينه في أي من جداولك ، فيمكنك القيام بذلك على النحو التالي:

SELECT age, '1234' FROM people;

سيتم إرجاع أي سلسلة داخل علامات الاقتباس المفردة بدلاً من مطابقة اسم العمود.

2. أين

يعد الأمر select ممتازًا لاسترداد البيانات ، ولكن ماذا لو كنت تريد تصفية النتائج أكثر قليلاً؟ ماذا عن استرجاع الأشخاص ذوي العيون الزرقاء فقط؟ ماذا عن الأشخاص الذين ولدوا في يناير ويعملون ميكانيكيين؟ هذا حيث أين يأتي الأمر. يسمح لك هذا بتطبيق الشروط على التحديد ، ويمكنك ببساطة إلحاقه بنهاية العبارة:

SELECT age, name FROM people WHERE age > 10;

هذا الاستعلام يقتصر الآن على الأشخاص الذين تزيد أعمارهم عن 10 سنوات. يمكنك الجمع بين شروط متعددة باستخدام و المشغل أو العامل:

SELECT age, name FROM people WHERE age > 10 AND age <20;

ال و يعمل الأمر تمامًا كما هو الحال في اللغة الإنجليزية: فهو يطبق شرطًا آخر على العبارة. في هذا المثال ، ستكون البيانات التي يتم إرجاعها هي أي سجلات يتراوح عمرها بين 10 و 20 عامًا. نظرًا لعدم وجود نتائج مطابقة ، لا يتم إرجاع أي بيانات.

كيف تجد كلمة مرور شخص ما

أمر آخر يمكن استخدامه مع هذا هو أو . هذا مثال:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

يقوم هذا الاستعلام بإرجاع السجلات التي يكون العمر فيها أكثر من 10 ، أو الاسم يساوي 'Joe'. لاحظ كيف توجد علامة يساوي واحدة فقط؟ تستخدم معظم لغات البرمجة المعادلات المزدوجة (==) للتحقق من التكافؤ. هذا ليس ضروريًا للغالبية العظمى من محركات قواعد البيانات (ولكن يمكن أن يكون ذلك لكل بيئة ، لذا تحقق جيدًا أولاً).

3. ترتيب

ال ترتيب يتم استخدام الأمر لفرز النتائج التي تم إرجاعها. إنها طريقة أخرى سهلة الاستخدام. ما عليك سوى إلحاقه في نهاية البيان الخاص بك:

SELECT name, age FROM people ORDER BY age DESC;

تحتاج إلى تحديد العمود والترتيب الذي يمكن أن يكون ASC للصعود أو تنازلي للهبوط. يمكنك الطلب بأعمدة متعددة مثل هذا:

SELECT name, age FROM people ORDER BY name ASC, age DESC

ترتيب حسب ربما يكون أكثر فائدة عند دمجه مع أوامر أخرى. لن تُرجع جميع الاستعلامات البيانات بطريقة منطقية أو مرتبة - يتيح لك هذا الأمر تغيير ذلك.

4. الانضمام

ال انضم يتم استخدام الأمر ل انضم البيانات ذات الصلة المخزنة في جدول واحد أو أكثر. أنت انضم الجدول الثاني بالجدول الأول ، وتحديد كيفية توصيل البيانات. إليك مثال أساسي:

الفرق بين اكس بوكس ​​لايف وجولد
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

هناك بعض الأشياء التي تحدث هنا. يجب أن تبدأ بصيغة 'LEFT JOIN' ، والتي تحدد أنك تريد الانضمام إلى جدول باستخدام صلة من النوع الأيسر. بعد ذلك ، حدد الجدول الذي ترغب في الانضمام إليه (الارتفاعات). ال استخدام (الاسم) ينص بناء الجملة على أنه يمكن العثور على 'اسم' العمود في كلا الجدولين ، وأنه يجب استخدام هذا كمفتاح لربط الجدولين معًا.

لا تقلق إذا كانت أعمدتك لها أسماء مختلفة في كل جدول. يمكنك استخدام 'ON' بدلاً من 'USING':

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

بيان on ينص صراحةً على الأعمدة التي يجب أن تفتحها. هناك العديد من أنواع الانضمام ، وسيستغرق الأمر وقتًا طويلاً للدخول في التفاصيل لكل منها ، لذلك إليك ملخص سريع لاستخداماتها:

  • (صلة داخلية - إرجاع الصفوف مع تطابق في كلا الجدولين.
  • ترك صلة خارجية - إرجاع جميع الصفوف من الجدول الأيسر ، مع أي تطابق من الجدول الأيمن. إذا لم تكن هناك مطابقات ، فسيتم إرجاع سجلات الجدول الأيسر.
  • الحق (الخارجي) الانضمام - هذا هو عكس الصلة اليسرى: يتم إرجاع جميع الصفوف من الجدول الأيمن ، مع أي تطابقات في الجدول الأيسر.
  • انضمام كامل (خارجي) - إرجاع أي سجلات مع تطابق في أي من الجدولين.

بناء الجملة 'الداخلي' أو 'الخارجي' اختياري. يمكن أن يسهل فهم الأشياء ، لكن لا يتعين عليك تحديدها في الغالبية العظمى من الوقت.

5. الأسماء المستعارة

الآن بعد أن تعرفت على الأساسيات ، دعنا نلقي نظرة على ملف الاسم المستعار أمر. يستخدم هذا لإعادة تسمية الجدول مؤقتًا - أكثر من لقب أكثر من أي شيء آخر ، لأن هذا الاسم الجديد موجود فقط داخل المعاملة الفردية التي تقوم بتشغيلها. إليك كيفية استخدامه:

SELECT A.age FROM people A;

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

SELECT people.age FROM people;

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

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

وإليك نفس الاستعلام مع الأسماء المستعارة:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

يتم إعطاء جدول الموظفين الاسم المستعار 'أ' ، وتم إعطاء جدول العملاء الاسم المستعار 'ب'. تساعد جداول الأسماء المستعارة حقًا في تسهيل فهم التعليمات البرمجية الخاصة بك ، وتقليل كمية الكتابة التي يتعين عليك القيام بها.

يمكنك أيضًا إعادة تسمية عمود باسم مستعار باستخدام الأمر 'AS':

SELECT age AS person_age FROM people;

عند تشغيل هذا الاستعلام ، سيُطلق على العمود الآن اسم 'person_age' بدلاً من 'age'.

6. الاتحاد

اتحاد هي وصية عظيمة. يسمح لك بإلحاق الصفوف ببعضها البعض. على عكس الصلات التي تُلحق أعمدة متطابقة ، يمكن أن يُلحق الاتحاد صفوفًا غير مرتبطة بشرط أن يكون لها نفس رقم واسم الأعمدة. إليك كيفية استخدامه:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

يمكنك التفكير في الاتحاد كطريقة للجمع بين نتائج استعلامين. سوف يقوم الاتحاد بإرجاع النتائج فقط في حالة وجود صف فريد بين الاستعلامين. يمكنك استخدام صيغة 'UNION ALL' لإرجاع جميع البيانات ، بغض النظر عن التكرارات:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

لاحظ كيف يتغير ترتيب الصفوف؟ يعمل Union بالطريقة الأكثر فاعلية ، لذلك يمكن أن تختلف البيانات التي يتم إرجاعها بالترتيب.

حالة الاستخدام المحتملة للوحدة عبارة عن إجمالي فرعي: يمكنك توحيد استعلام المجموع الإجمالي في استعلام عن الإجماليات الفردية لسيناريو معين.

7. أدخل

أنت تعرف الآن كل شيء عن استرداد البيانات من قاعدة بيانات ، ولكن ماذا عن إدراجها؟ هذا حيث إدراج يأتي الأمر. إليك مثال:

INSERT INTO people(name, age) VALUES('Joe', 102);

يجب عليك تحديد اسم الجدول (الأشخاص) ، والأعمدة التي ترغب في استخدامها (الاسم والعمر). ثم يتم استخدام صيغة 'القيم' لتوفير القيم المراد إدراجها. يجب أن تكون هذه بنفس ترتيب الأعمدة التي تم تحديدها مسبقًا.

لا يمكنك تحديد عبارة أين للإدخالات ، وتحتاج إلى التأكد من اتباع أي قيود جدول ضرورية موجودة.

8. التحديث

بعد إدخال بعض البيانات ، من الطبيعي فقط أن تحتاج إلى تغيير صفوف معينة. هنا هو تحديث بناء جملة الأمر:

UPDATE people SET name = 'Joe', age = 101;

يجب عليك تحديد الجدول الذي ترغب في تغييره ، ثم استخدام صيغة 'SET' لتحديد الأعمدة وقيمها الجديدة. هذا المثال جيد ، لكنه سيحدّث كل سجل - وهو أمر غير مرغوب فيه دائمًا!

لكي تكون أكثر تحديدًا ، يمكنك استخدام عبارات 'WHERE' تمامًا كما تفعل عند التحديد:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

يمكنك حتى تحديد شروط متعددة باستخدام 'و' و 'أو':

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

لاحظ كيف يتم استخدام الأقواس لتقييد الشروط.

هل يمكنك خلط ومطابقة ذاكرة الوصول العشوائي

9. تقلب

وجه الفتاة هي كلمة غريبة ، لكنها أمر مفيد للغاية. لنفترض أن لديك قيدًا في الجدول ، وقد حددت أنك لا تريد سوى سجلات بأسماء فريدة - على سبيل المثال ، لا تريد تخزين صفين بنفس الاسم. إذا حاولت إدراج قيم متعددة لـ 'Joe' ، فسيقوم محرك قاعدة البيانات الخاص بك بإلقاء خطأ ويرفض القيام بذلك (بشكل صحيح تمامًا). يسمح لك UPSERT بتحديث سجل إذا كان موجودًا بالفعل. هذا مفيد بشكل لا يصدق! بدون هذا الأمر ، سيتعين عليك كتابة الكثير من المنطق للتحقق أولاً من وجود سجل ، وإدخاله إذا لم يكن موجودًا ، أو استرداد المفتاح الأساسي الصحيح ثم التحديث.

لسوء الحظ ، يتم تنفيذ عمليات التنشيط بشكل مختلف في محركات قواعد البيانات المختلفة. اكتسبت PostgreSQL هذه القدرة مؤخرًا فقط ، بينما اكتسبتها MySQL لفترة طويلة. إليك بناء جملة MySQL كمرجع:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

لاحظ كيف أن هذا يعد في الأساس تحديثًا وعبارة insert ، والتي يمكن تلخيصها على أنها 'تحديث إذا فشل الإدراج'.

10- تحذف

حذف تُستخدم لإزالة السجلات تمامًا - يمكن أن تكون ضارة جدًا إذا تم إساءة استخدامها! الصيغة الأساسية سهلة الاستخدام للغاية:

DELETE FROM people;

مثل معظم الأوامر الأخرى ، سيتم حذف هذا كل شىء ! تحتاج إلى استخدام مكان لتقييده بعدد أكثر عقلانية من الصفوف - من الناحية المثالية واحد:

DELETE FROM people WHERE name = 'Joe';

إذا كنت تطور نظامًا ، فمن الحكمة غالبًا تنفيذ 'حذف بسيط'. لا تقوم مطلقًا بتشغيل أمر الحذف ، بل تقوم بإنشاء عمود محذوف ، ثم تحقق من هذا العمود في اختياراتك - يمكن أن يتجنب الكثير من الإحراج المحتمل إذا كان بإمكانك استرداد السجلات المفترضة المحذوفة بسرعة وسهولة. هذا ليس بديلاً عن النسخ الاحتياطية المناسبة ، مع ذلك.

11. إنشاء جدول

ال اصنع جدول يتم استخدام الأمر لإنشاء الجداول. إنها طريقة أخرى بسيطة للغاية:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

لاحظ كيف أن أسماء الأعمدة والقيود موجودة داخل الأقواس ، وأن الأعمدة تُعطى نوع بيانات مناسب. يتم تحديد مفتاح أساسي ، كما هو مطلوب في أي تصميم جيد لقاعدة البيانات.

12. تعديل الجدول

ال تغيير الجدول يتم استخدام الأمر لتعديل هيكل الجدول. هذا محدود إلى حد ما ، لأن قاعدة البيانات الخاصة بك لن تسمح لك بتغيير جدول إذا كانت البيانات الحالية ستؤدي إلى تعارض - تغيير سلسلة إلى عدد صحيح ، على سبيل المثال. في تلك الحالات ، قم بإصلاح البيانات أولاً ، ثم قم بتعديل الجدول. هذا مثال:

ALTER TABLE people ADD height integer;

يضيف هذا المثال عمودًا يسمى 'ارتفاع' من نوع عدد صحيح إلى جدول الأشخاص. لا يوجد حد حقيقي لما يمكنك تغييره.

13. إسقاط الجدول

الأمر الأخير هو إسقاط الجدول . فكر في هذا على أنه حذف ، ولكن بدلاً من حذف سجل واحد ، فإنه يزيل كل سجل منفرد مع الجدول! إليك كيفية استخدامه:

DROP TABLE people;

إنه أمر صارم تمامًا ، ولا يوجد سبب لضرورة برمجته في نظامك. يجب أن يتم إجراؤه يدويًا فقط في الغالبية العظمى من الحالات ، ويمكن أن يكون كذلك جدا مدمرة.

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

لماذا لا تترك تعليقًا أدناه مع نصائح وحيل SQL المفضلة لديك؟

اعتمادات الصورة: HYS_NP / Shutterstock

يشارك يشارك سقسقة بريد الالكتروني هل يستحق الترقية إلى Windows 11؟

تم إعادة تصميم Windows. لكن هل هذا كافٍ لإقناعك بالانتقال من Windows 10 إلى Windows 11؟

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • برمجة
  • SQL
نبذة عن الكاتب جو كوبورن(تم نشر 136 مقالاً)

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

المزيد من Joe Coburn

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك