SQLite إنشاء وتعديل وإسقاط الجدول مع الأمثلة
⚡ ملخص ذكي
SQLite تعتمد إدارة الجداول على ثلاثة أوامر تعريف البيانات، وهي CREATE TABLE لتعريف جدول، وALTER TABLE لإعادة تسميته أو إضافة وتغيير الأعمدة، وDROP TABLE لإزالته تمامًا من قاعدة البيانات.

توضح الأقسام التالية كيفية إنشاء الجداول وتعديل بنيتها وحذفها في SQLite3 مع أمثلة، تغطي أوامر CREATE TABLE و ALTER TABLE و DROP TABLE.
SQLite إنشاء الجدول
بناء الجملة
يوجد أدناه بناء جملة عبارة CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
لإنشاء جدول، يجب عليك استخدام استعلام "CREATE TABLE" كما يلي:
CREATE TABLE guru99 ( Id Int, Name Varchar );
داخل القوسين بعد اسم الجدول، تقوم بتحديد أعمدة الجدول، ويجب أن يحتوي كل عمود على الخصائص التالية:
- الاسم، اسم العمود يجب أن يكون فريدًا بين أعمدة الجدول.
- نوع البيانات - نوع بيانات العمود.
- قيود الأعمدة الاختيارية كما سنشرح في الأقسام اللاحقة من هذا البرنامج التعليمي.
SQLite إنشاء الجدول إذا لم يكن موجودًا
عندما يتم تشغيل البرنامج النصي أكثر من مرة، فإن عبارة CREATE TABLE البسيطة تفشل إذا كان الجدول موجودًا بالفعل وتتوقف مع ظهور خطأ. SQLite يحل هذا الأمر باستخدام عبارة IF NOT EXISTS الاختيارية، والتي تقوم بإنشاء الجدول فقط عندما يكون مفقودًا ولا تفعل شيئًا عندما يكون موجودًا بالفعل.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
العبارة المذكورة أعلاه لا تثير خطأ "الجدول موجود بالفعل"، مما يجعل من الآمن الاحتفاظ بها في أعلى برنامج الإعداد أو برنامج الترحيل.
ينطبق المبدأ نفسه في الاتجاه المعاكس عند حذف جدول. إضافة عبارة IF EXISTS إلى أمر DROP TABLE يمنع حدوث خطأ عند حذف الجدول بالفعل.
DROP TABLE IF EXISTS guru99;
كلا البندين شائعان في البرامج النصية الآلية، لأنهما يسمحان بتشغيل نفس الملف بشكل متكرر دون الحاجة إلى تنظيف يدوي بين عمليات التشغيل.
إسقاط الجدول
لحذف جدول، استخدم الأمر "DROP TABLE" متبوعًا باسم الجدول كما يلي:
DROP TABLE guru99;
تغيير الجدول
يمكنك استخدام أمر "ALTER TABLE" لإعادة تسمية جدول على النحو التالي:
ALTER TABLE guru99 RENAME TO guru100;
للتأكد من تغيير اسم الجدول، يمكنك استخدام الأمر ".tables" لعرض قائمة الجداول، ويجب أن يكون اسم الجدول قد تغير الآن كما يلي:
كما ترون، تم تغيير اسم الجدول "guru99" إلى "guru100" بعد تنفيذ أمر "alter table".
SQLite إضافة أعمدة - باستخدام أمر ALTER TABLE
يمكنك أيضًا استخدام أمر "ALTER TABLE" لإضافة أعمدة:
ALTER TABLE guru100 ADD COLUMN Age INT;
سيؤدي هذا إلى تغيير الجدول "guru100" وإضافة عمود جديد باسم "العمر" إليه.
إذا لم تظهر أي نتائج، فهذا يعني أن العملية تمت بنجاح، وتمت إضافة العمود. عدم ظهور أي نتائج يعني أن المؤشر سيُوضع بعد عبارة "sqlite>" بدون أي نص بعدها، كما يلي:
مع ذلك، وللتأكد من إضافة العمود، يمكننا استخدام الأمر ".schema guru100". سيعرض لك هذا تعريف الجدول، وسترى العمود الجديد الذي أضفناه للتو.
SQLite ALTER TABLE: إعادة تسمية عمود وحذفه
بالإضافة إلى إضافة عمود، فإن الإصدارات الحديثة من SQLite يمكنك أيضًا إعادة تسمية عمود واحد وحذف عمود آخر. تتوفر ميزة إعادة تسمية الأعمدة منذ SQLite 3.25، ويقوم بتحديث الاسم داخل تعريف الجدول وكذلك في كل فهرس ومشغل وعرض يشير إلى العمود.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
لإزالة عمود، SQLite يدعم الإصدار 3.35 والإصدارات اللاحقة عبارة DROP COLUMN مباشرة:
ALTER TABLE guru100 DROP COLUMN Age;
لا يمكن حذف عمود عندما يكون جزءًا من مفتاح أساسي أو قيد فريد أو فهرس. في الإصدارات القديمة SQLite في الإصدارات التي تفتقر إلى أمر DROP COLUMN، يتمثل الحل الكلاسيكي في إنشاء جدول جديد بالأعمدة التي تريدها، ونسخ الصفوف، وحذف الجدول القديم، وأخيرًا إعادة تسمية الجدول الجديد.
كيفية نسخ جدول في SQLite باستخدام الأمر CREATE TABLE AS SELECT
في بعض الأحيان تحتاج إلى نسخة من جدول، إما كنسخة احتياطية قبل إجراء تغيير محفوف بالمخاطر أو كنقطة بداية لجدول جديد. SQLite يقوم هذا ببناء هذا في خطوة واحدة باستخدام CREATE TABLE AS SELECT، والذي يقوم بإنشاء جدول جديد تأتي أعمدته من استعلام ويملأه بالصفوف التي يعيدها هذا الاستعلام.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
يستقبل الجدول الجديد "guru100_backup" نفس الأعمدة وجميع الصفوف من الجدول "guru100". لنسخ بعض الصفوف فقط، أضف شرط WHERE إلى استعلام SELECT.
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
من المهم تذكر أن أمر CREATE TABLE AS SELECT ينسخ أسماء الأعمدة وأنواعها وبياناتها، ولكنه لا ينسخ المفاتيح الأساسية أو القيود الأخرى أو الفهارس. لذا، عليك إضافة هذه العناصر إلى الجدول الجديد بنفسك إذا كان يجب أن يلتزم الجدول الجديد بنفس قواعد الجدول الأصلي.
SQLite إدراج قيمة في جدول
لإدراج القيم في جدول، نستخدم عبارة "INSERT INTO" كما يلي:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
يمكنك حذف أسماء الأعمدة بعد اسم الجدول وكتابتها على النحو التالي:
INSERT INTO Tablename VALUES(value1, value2, ….);
في هذه الحالة، حيث تقوم بحذف أسماء الأعمدة من الجداول، يجب أن يكون عدد القيم المدرجة مساويًا تمامًا لعدد أعمدة الجدول. ثم سيتم إدراج كل قيمة في العمود المقابل. على سبيل المثال، بالنسبة لبيان الإدراج التالي:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
وستكون نتيجة هذا البيان على النحو التالي:
- سيتم إدخال القيمة 1 في عمود "id".
- سيتم إدراج القيمة "مايك" في عمود "الاسم"، و
- سيتم إدخال القيمة 25 في عمود "العمر".
إدراج ... بيان القيم الافتراضية
يمكنك ملء الجدول بالقيم الافتراضية للأعمدة مرة واحدة كما يلي:
INSERT INTO Tablename DEFAULT VALUES;
إذا كان أحد الأعمدة لا يسمح بقيمة فارغة أو قيمة افتراضية، فستتلقى خطأً يفيد بفشل قيد "NOT NULL" لهذا العمود. كما يلي:





