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


أهلاً بك! اليوم رح نتكلم عن جزء مهم جداً في SQL وهو DML (Data Manipulation Language). ببساطة، DML هي الأوامر اللي تستخدمها عشان تتعامل مع البيانات داخل الجداول: تستعرضها، تضيفها، تعدلها، أو تحذفها. يعني الشغل اليومي كله هنا.

1. SELECT - استعراض البيانات

هذا الأمر هو خبز وزبدة أي مطور قواعد بيانات. تستخدمه عشان تسحب البيانات من قاعدة البيانات.

أ. استعراض كل الأعمدة من جدول:

لو تبغى كل شيء في الجدول:

SELECT * FROM اسم_الجدول;

ب. استعراض أعمدة محددة:

لو تبغى أعمدة معينة بس:

SELECT العمود_1, العمود_2 FROM اسم_الجدول;

ج. تصفية البيانات باستخدام WHERE:

هنا تبدأ المتعة! لو تبغى بيانات تطابق شروط معينة، تستخدم WHERE.

SELECT * FROM اسم_الجدول WHERE العمود = 'قيمة';

ملاحظة: تقدر تستخدم عوامل مقارنة زي =, >, <, >=, <=, <>, LIKE, IN, BETWEEN، وكمان AND, OR للجمع بين الشروط.

د. ترتيب البيانات باستخدام ORDER BY:

عشان ترتب النتائج تصاعدياً (ASC) أو تنازلياً (DESC).

SELECT * FROM اسم_الجدول ORDER BY العمود ASC;

هـ. تحديد عدد النتائج باستخدام LIMIT (أو TOP في SQL Server):

لو تبغى أول عدد معين من الصفوف.

-- MySQL/PostgreSQL
SELECT * FROM اسم_الجدول LIMIT 10;

-- SQL Server
SELECT TOP 10 * FROM اسم_الجدول;

2. INSERT INTO - إضافة بيانات جديدة

هذا الأمر عشان تضيف صفوف جديدة (Records) لجدول معين.

أ. إضافة صف كامل (كل الأعمدة):

لازم تعطي قيم لكل الأعمدة بنفس ترتيبها في الجدول.

INSERT INTO اسم_الجدول VALUES (قيمة_1, قيمة_2, قيمة_3, ...);

ب. إضافة لصفوف محددة (أعمدة معينة):

هنا تحدد الأعمدة اللي بتدخل فيها البيانات، والباقي ياخذ قيمة افتراضية أو NULL.

INSERT INTO اسم_الجدول (العمود_1, العمود_2) VALUES (قيمة_1, قيمة_2);

ج. إضافة بيانات من جدول آخر:

تقدر تسحب بيانات من جدول وتضيفها لجدول ثاني.

INSERT INTO الجدول_الوجهة (العمود_1, العمود_2)
SELECT العمود_A, العمود_B FROM الجدول_المصدر WHERE شرط;

3. UPDATE - تعديل البيانات الموجودة

لو عندك بيانات موجودة وتبغى تغيرها، تستخدم UPDATE.

أ. تعديل عمود واحد:

مهم جداً تستخدم WHERE عشان تحدد الصفوف اللي تتعدل. لو ما حطيت WHERE، كل الصفوف بتتعدل!

UPDATE اسم_الجدول SET العمود = 'القيمة_الجديدة' WHERE شرط;

ب. تعديل عدة أعمدة:

تقدر تعدل أكثر من عمود في نفس الوقت.

UPDATE اسم_الجدول SET العمود_1 = 'قيمة_1_جديدة', العمود_2 = 'قيمة_2_جديدة' WHERE شرط;

تحذير: دائماً تأكد إنك حاط WHERE مع UPDATE و DELETE، إلا لو كنت تقصد تعديل/حذف كل شيء.

4. DELETE FROM - حذف البيانات

الأمر هذا يحذف صفوف كاملة من الجدول.

أ. حذف صفوف محددة:

هنا برضه WHERE هو صديقك الصدوق عشان ما تحذف شيء بالغلط.

DELETE FROM اسم_الجدول WHERE شرط;

ب. حذف كل الصفوف من الجدول:

هذا بيحذف كل البيانات من الجدول لكن الجدول نفسه يبقى موجود.

DELETE FROM اسم_الجدول;

ملاحظة: TRUNCATE TABLE يسوي نفس الشيء (يحذف كل البيانات) لكنه أسرع بكثير لأنه ما يسجل كل صف انحذف، وما تقدر تتراجع عنه عادةً. DELETE ممكن تتراجع عنه لو كان داخل TRANSACTION.

هذي هي أساسيات DML اللي بتحتاجها كل يوم. تدرب عليها كويس عشان تصير محترف في التعامل مع البيانات!