نسخة تجريبية من المنقذ: الاشتراك المدفوع والمساعد الذكي لم يُفعَّلا بعد، والمحتوى متاح للتجربة.

الوحدة 1: الوحدة الأولى: قواعد البيانات SQLite في Python

الدرس 3إنشاء الجداول Creating Tables

من كتاب الطالبتقنية المعلومات 11 — الصف الحادي عشر — الفصل الدراسي الأول · من صفحة 43

أهداف الدرس

  • أشرح مكونات الجدول في قواعد البيانات.
  • أميّز بين أنواع البيانات المختلفة واستخداماتها المناسبة.
  • أنشئ جدولًا جديدًا وفق هياكل محددة.
  • أطبّق القيود المناسبة أثناء إنشاء الجداول.
  • أعاين هيكلية الجدول من خلال برنامج DB Browser for SQLite.

الشرح خطوة بخطوة

1 / 240:00

الموضع محفوظ على هذا الجهاز.

المقطع 1 من 7إنشاء الجداول Creating Tables0:50

لا يوجد صوت عربي على هذا الجهاز. الشرح الصوتي المسجّل سيتوفر لهذا الدرس قريبًا

مقاطع الدرس

0 من 7 مكتمل

إنشاء الجداول Creating Tables45)

تُعد الجداول هيكلًا أساسيًا في قواعد البيانات، تُستخدم لتخزين البيانات وتنظيمها، وتنفيذ العمليات الأساسية CRUD (الإدخال، الاستعلام، التعديل، الحذف) بسهولة وكفاءة. ويتكون الجدول من مجموعة من الصفوف Rows والأعمدة Columns، بحيث يُمثّل كل صف سجل Record، ويُمثّل كل عمود خاصية Attribute.45)

انتبه
يوضح شكل رقم (3-1) المكونات الأساسية لجدول بيانات الكتب الدراسية: اسم العمود Column Name في أعلى كل عمود (id وname وtitle وprice)، والمفتاح الأساسي Primary Key وهو العمود id بقيمه 1 إلى 5، والصف Row وهو سجل كتاب واحد كامل، والقيمة Value وهي الخانة الواحدة داخل الصف مثل 41.39 في عمود price.45)

أنواع البيانات Data Types في SQLite45)

أنواع البيانات تصنيفات تُحدد شكل وطبيعة المعلومات التي يمكن تخزينها في كل عمود من أعمدة الجدول. وتساعد في تنظيم المعلومات والتأكد من التعامل معها بطريقة صحيحة عند التخزين أو المعالجة.45)

  1. النوع الأول: تخزين الأرقام الصحيحة، مثل العمر سبعة عشر، وسنة النشر ألفين وخمسة وعشرين، وعدد الكتب ألفًا وخمسمائة، وعدد الطلاب عشرين.INTEGER
  2. النوع الثاني: تخزين الأرقام العشرية، مثل سعر الكتاب ثلاثة وخمس عشرة، والوزن مائة، والمسافة صفر وخمسة وسبعين من مائة.REAL
  3. النوع الثالث: تخزين النصوص، مثل عنوان الكتاب واسم المؤلف.TEXT
  4. النوع الرابع: تخزين كائنات ثنائية كبيرة، مثل الصور والمستندات والملفات الصوتية والمرئية.BLOB Binary Large Object
  5. النوع الخامس: يستخدم لتمثيل القيم الفارغة، أي بدون قيمة، مثل عنوان كتاب غير مُدخل أو بريد إلكتروني فارغ.NULL
انتبه
انتبه: عند إنشاء جدول، يجب أن يكون لكل عمود نوع بيانات أساسي مثل INTEGER أو TEXT أو REAL أو BLOB. أما NULL فهي ليست نوع بيانات للعمود، وإنما تُستخدم للدلالة على غياب القيمة.46)

القيود Constraints46)

القيود قواعد تُطبق في الجدول لضمان صحة ودقة البيانات، وتُستخدم لمنع إدخال بيانات غير صحيحة أو غير مسموح بها، ويمكن إضافتها عند إنشاء الجدول أو تعديله. والصيغة العامة للقيد هي: column DATA_TYPE Constraint.46)

  1. الصيغة العامة لأي قيد: اسم العمود، ثم نوع البيانات، ثم القيد.column DATA_TYPE Constraint
  2. القيد الأول: لا يسمح بترك العمود فارغًا.name TEXT NOT NULL
  3. القيد الثاني: يضمن عدم تكرار القيم في العمود.email TEXT UNIQUE
  4. القيد الثالث: يحدد العمود كمفتاح أساسي، مما يجعله غير فارغ وغير مكرر في الوقت نفسه.id INTEGER PRIMARY KEY
  5. القيد الرابع: يفرض شرطًا منطقيًا يجب أن يتحقق عند إدخال قيمة للعمود، كأن يكون العمر عشرين فأقل.age INTEGER CHECK (age <= 20)
  6. ومثال آخر للقيد نفسه: أن يكون طول الاسم أقل من ثلاثين حرفًا.name TEXT CHECK (length (name) < 30)
  1. الملاحظة الأولى: يُمكن الجمع بين أكثر من قيد في نفس العمود.name TEXT NOT NULL CHECK (length (name) < 30)
  2. الملاحظة الثانية: سلوك خاص داخل SQLite يُستخدم مع المفتاح الأساسي من النوع INTEGER، ليتم زيادة القيمة تلقائيًا بمقدار واحد مع كل صف جديد.AUTOINCREMENT
  3. الملاحظة الثالثة: هذا القيد يزيد القيمة تلقائيًا بمقدار واحد، حتى بدون كتابة AUTOINCREMENT.INTEGER PRIMARY KEY
  4. الملاحظة الرابعة: يتم تحديد قيمة افتراضية عند عدم إدخال قيمة للعمود.nationality TEXT DEFAULT 'Kuwait'

ضوابط إنشاء الجداول، وتسمية الجداول والأعمدة في SQLite47)

  1. يجب عند إنشاء جدول تحديد أربعة أمور.
  2. اسم الجدول: اختيار اسمًا واضحًا ومعبرًا.
  3. الأعمدة وأنواع البيانات: تحديد أنواعها وخصائصها، وضبط القيود إن لزم ذلك.
  4. المفتاح الأساسي: تحديد عمود أو أعمدة المفتاح الأساسي.
  5. العلاقات مع الجداول الأخرى: إن وجدت.
  1. القاعدة الأولى: يحتوي اسم الجدول أو اسم العمود على أحرف وأرقام والشرطة السفلية.
  2. القاعدة الثانية: يبدأ اسم الجدول أو اسم العمود بحرف، ويُمكن أن يبدأ بشرطة سفلية.
  3. القاعدة الثالثة: لا يبدأ اسم الجدول أو اسم العمود برقم.
  4. القاعدة الرابعة: لا يُسمح باستخدام المسافات أو الرموز الخاصة.@ , # , $
  5. القاعدة الخامسة: اسم الجدول أو اسم العمود غير حساس لحالة الأحرف الإنجليزية، صغيرة كانت أو كبيرة.
  6. القاعدة السادسة: يجب أن يكون لكل جدول اسم فريد لا يُمكن تكراره.
  7. القاعدة السابعة: يجب أن يكون لكل عمود بالجدول اسم فريد لا يُمكن تكراره.

صيغة التعليمة البرمجية لإنشاء جدول في قاعدة البيانات SQLite في Python47)

  1. أول جزء: تنفيذ أمر SQL داخل قاعدة البيانات، ويُكتب أمر الجدول بين ثلاث علامات تنصيص مفردة.cursor.execute('''
  2. ثم أمر SQL لإنشاء جدول، تليه عبارة شرطية اختيارية، ثم اسم الجدول.CREATE TABLE IF NOT EXISTS table_name (
  3. ثم أسماء الأعمدة، ولكل عمود نوع بياناته ثم قيوده الاختيارية، ويفصل بين الأعمدة فاصلة. column1 data_type constraints,
  4. ثم العمود الثاني بالطريقة نفسها، وهكذا لبقية الأعمدة. column2 data_type constraints,
  5. ثم نغلق قوس الجدول.
  6. ثم نغلق علامات التنصيص الثلاث وقوس الدالة.''')
انتبه
ملاحظة: المؤشر cursor هو كائن يُستخدم كأداة تساعد في التفاعل مع قاعدة البيانات بطريقة منظمة مثل (إنشاء قاعدة البيانات، وأيضًا إضافة، استرجاع، تعديل، وحذف البيانات). ويُفضل استخدام العبارة الشرطية IF NOT EXISTS لمنع حدوث أخطاء عند محاولة إنشاء جدول موجود مسبقًا.48)
  1. الخطوة الأولى: تحديد بنية أو هيكلية الجدول، وتشمل اسم الجدول، وأسماء الأعمدة، ونوع البيانات لكل عمود، والقيود اللازمة لكل عمود إن وجدت، والعلاقة مع الجداول الأخرى إن وُجدت.
  2. الخطوة الثانية: كتابة التعليمات البرمجية، وهي ست تعليمات بالترتيب: استدعاء المكتبة، ثم إنشاء أو فتح اتصال بقاعدة البيانات، ثم إنشاء كائن المؤشر، ثم إنشاء الجدول، ثم حفظ التغيرات، ثم إغلاق الاتصال.
  3. الخطوة الثالثة: تنفيذ التعليمات البرمجية.
  4. الخطوة الرابعة: معاينة بنية الجدول في برنامج DB Browser.

مثال 1: إنشاء جدول book في قاعدة البيانات grade11_books49)

  1. العمود الأول رقم الكتاب، ونوعه عدد صحيح، وقيده المفتاح الأساسي.id INTEGER PRIMARY KEY
  2. العمود الثاني عنوان الكتاب، ونوعه نص، وقيده غير فارغ.title TEXT NOT NULL
  3. العمود الثالث المؤلف، ونوعه نص، بلا قيد.author TEXT
  4. العمود الرابع التصنيف، ونوعه نص، بلا قيد.category TEXT
  5. العمود الخامس سنة النشر، ونوعه عدد صحيح، بلا قيد.year INTEGER
  6. العمود السادس السعر، ونوعه عدد عشري، بلا قيد.price REAL
  7. وخطوات التنفيذ في هذا المثال ثمانٍ بالترتيب:
  8. استدعاء مكتبة قواعد البيانات.sqlite3
  9. إنشاء أو فتح اتصال بقاعدة البيانات.
  10. إنشاء كائن المُؤشر للتعامل مع قاعدة البيانات.
  11. إنشاء جدول.
  12. حفظ التغيرات.
  13. إغلاق الاتصال.
  14. تنفيذ التعليمات البرمجية.
  15. معاينة بنية الجدول في برنامج DB Browser.
مثال
  1. السطر الأول: استيراد مكتبة sqlite3.

    import sqlite3
  2. السطر الثاني: الاتصال بقاعدة بيانات grade11_books.db، وإذا كانت قاعدة البيانات غير موجودة فسيتم إنشاؤها تلقائيًا.

    connection = sqlite3.connect("grade11_books.db")
  3. السطر الثالث: إنشاء كائن المؤشر cursor الذي نتفاعل به مع قاعدة البيانات.

    cursor = connection.cursor()
  4. السطر الرابع: بداية تنفيذ أمر SQL داخل قاعدة البيانات، والأمر مكتوب بين ثلاث علامات تنصيص مفردة.

    cursor.execute('''
  5. السطر الخامس: أمر إنشاء الجدول book مع العبارة الشرطية التي تمنع الخطأ إن كان الجدول موجودًا مسبقًا.

    CREATE TABLE IF NOT EXISTS book(
  6. السطر السادس: العمود id عدد صحيح وهو المفتاح الأساسي.

    id INTEGER PRIMARY KEY ,
  7. السطر السابع: العمود title نص ولا يُقبل تركه فارغًا.

    title TEXT NOT NULL ,
  8. السطر الثامن: العمود author نص بلا قيد.

    author TEXT,
  9. السطر التاسع: العمود year عدد صحيح بلا قيد.

    year INTEGER,
  10. السطر العاشر: العمود category نص بلا قيد.

    category TEXT,
  11. السطر الحادي عشر: العمود price عدد عشري بلا قيد، ثم نغلق قوس الجدول.

    price REAL )
  12. السطر الثاني عشر: نغلق علامات التنصيص الثلاث وقوس الدالة execute.

    ''')
  13. السطر الثالث عشر: حفظ التغييرات التي تم إجراؤها على قاعدة البيانات.

    connection.commit()
  14. السطر الرابع عشر: إغلاق الاتصال بقاعدة البيانات.

    connection.close()
50)
انتبه
التفسير كما ورد في الكتاب: import sqlite3 استيراد مكتبة sqlite3. وconnection = sqlite3.connect ("grade11_books.db") الاتصال بقاعدة بيانات grade11_books.db، وإذا كانت قاعدة البيانات غير موجودة فسيتم إنشاؤها تلقائيًا. وcursor = connection.cursor() إنشاء كائن المؤشر cursor. وكتلة cursor.execute مع أمر CREATE TABLE إنشاء الجدول book. وconnection.commit() حفظ التغييرات، وهي دالة تُستخدم لحفظ التغييرات التي تم إجراؤها على قاعدة البيانات. وconnection.close() إغلاق الاتصال بقاعدة البيانات.51)

معاينة هيكلية الجدول Table Structure52)

  1. الخطوة الأولى: تشغيل البرنامج.DB Browser for SQLite
  2. الخطوة الثانية: اختيار الأداة.Open Database
  3. الخطوة الثالثة: تحديد قاعدة البيانات من مجلد المشروع.grade11_books.db
  4. الخطوة الرابعة: الانتقال إلى علامة التبويب.Database Structure
  5. الخطوة الخامسة: اختيار الجدول من قائمة جداول قاعدة البيانات لتظهر تفاصيل هيكلية الجدول.book

الملخص

  • الجدول هيكل أساسي في قواعد البيانات لتخزين البيانات وتنظيمها وتنفيذ عمليات CRUD (الإدخال، الاستعلام، التعديل، الحذف)، ويتكون من صفوف Rows يمثل كل صف سجل Record، وأعمدة Columns يمثل كل عمود خاصية Attribute.
  • أنواع البيانات في SQLite خمسة: INTEGER للأرقام الصحيحة، وREAL للأرقام العشرية، وTEXT للنصوص، وBLOB للكائنات الثنائية الكبيرة، وNULL لتمثيل القيم الفارغة.
  • NULL ليست نوع بيانات للعمود، وإنما تُستخدم للدلالة على غياب القيمة؛ ولكل عمود نوع أساسي من INTEGER أو TEXT أو REAL أو BLOB.
  • القيود Constraints أربعة: NOT NULL لا يسمح بترك العمود فارغًا، وUNIQUE يمنع تكرار القيم، وPRIMARY KEY يجعل العمود NOT NULL وUNIQUE معًا، وCHECK يفرض شرطًا منطقيًا.
  • الصيغة العامة للقيد: column DATA_TYPE Constraint، ويمكن الجمع بين أكثر من قيد في العمود نفسه، وتُحدد قيمة افتراضية بـ DEFAULT.
  • AUTOINCREMENT سلوك خاص في SQLite يُستخدم مع PRIMARY KEY من النوع INTEGER لزيادة القيمة تلقائيًا بمقدار واحد، وINTEGER PRIMARY KEY يزيدها تلقائيًا حتى بدونه.
  • صيغة إنشاء الجدول: cursor.execute مع الأمر CREATE TABLE IF NOT EXISTS ثم اسم الجدول، ثم أسماء الأعمدة وأنواعها وقيودها.
  • خطوات إنشاء الجدول: تحديد بنية الجدول، ثم كتابة التعليمات البرمجية (sqlite3، الاتصال، المؤشر، إنشاء الجدول، commit، close)، ثم التنفيذ، ثم معاينة البنية في DB Browser.

الأفكار الرئيسية

  1. نوع البيانات والقيد يعملان معًا: النوع يحدد شكل المعلومة، والقيد يحدد شروط قبولها؛ فبدون القيود يمكن إدخال بيانات ناقصة أو مكررة.
  2. PRIMARY KEY ليس قيدًا واحدًا بل أثر مزدوج: يمنع الفراغ ويمنع التكرار في الوقت نفسه.
  3. العبارة IF NOT EXISTS تحمي البرنامج من التوقف عند إعادة تشغيله، فهي تمنع خطأ إنشاء جدول موجود مسبقًا.
  4. لا تُحفظ التغييرات في قاعدة البيانات إلا بعد commit()، ولا يُترك الاتصال مفتوحًا بعد close().

الأسئلة المهمة

عرّف الجدول في قواعد البيانات، واذكر مكوناته.

الجدول هيكل أساسي في قواعد البيانات يُستخدم لتخزين البيانات وتنظيمها وتنفيذ العمليات الأساسية CRUD (الإدخال، الاستعلام، التعديل، الحذف) بسهولة وكفاءة. ويتكون من مجموعة من الصفوف Rows والأعمدة Columns، بحيث يمثل كل صف سجل Record، ويمثل كل عمود خاصية Attribute.

الكتاب صفحة 45

اذكر أنواع البيانات في SQLite مع مثال لكل نوع.

INTEGER لتخزين الأرقام الصحيحة مثل العمر 17 وسنة النشر 2025. وREAL لتخزين الأرقام العشرية مثل سعر الكتاب 3.15. وTEXT لتخزين النصوص مثل عنوان الكتاب Learn SQLite. وBLOB لتخزين كائنات ثنائية كبيرة Binary Large Object مثل الصور JPEG وPNG والمستندات PDF وWord. وNULL لتمثيل القيم الفارغة (بدون قيمة) مثل عنوان كتاب غير مُدخل.

الكتاب صفحة 45

علّل: لا يُعدّ NULL نوع بيانات للعمود.

لأن كل عمود عند إنشاء الجدول يجب أن يكون له نوع بيانات أساسي مثل INTEGER أو TEXT أو REAL أو BLOB، أما NULL فهي ليست نوع بيانات للعمود، وإنما تُستخدم للدلالة على غياب القيمة.

الكتاب صفحة 46

قارن بين القيود NOT NULL وUNIQUE وPRIMARY KEY.

NOT NULL لا يسمح بترك العمود فارغًا، وصيغته name TEXT NOT NULL. وUNIQUE يضمن عدم تكرار القيم في العمود، وصيغته email TEXT UNIQUE. وPRIMARY KEY يحدد العمود كمفتاحٍ أساسي مما يجعله NOT NULL وUNIQUE معًا، وصيغته id INTEGER PRIMARY KEY.

الكتاب صفحة 46

ما وظيفة القيد CHECK؟ اكتب مثالين عليه من الكتاب.

يفرض شرطًا منطقيًا يجب أن يتحقق عند إدخال قيمة للعمود. ومثاله: age INTEGER CHECK (age <= 20) و name TEXT CHECK (length (name) < 30).

الكتاب صفحة 46

اذكر القواعد القياسية لتسمية الجداول والأعمدة.

يحتوي الاسم على أحرف وأرقام والشرطة السفلية ( _ )، ويبدأ بحرف (ويُمكن أن يبدأ بشرطة سفلية)، ولا يبدأ برقم، ولا يُسمح بالمسافات أو الرموز الخاصة مثل @ و# و$، والاسم غير حساس لحالة الأحرف الإنجليزية، ويجب أن يكون لكل جدول اسم فريد لا يُمكن تكراره، وكذلك لكل عمود بالجدول اسم فريد لا يُمكن تكراره.

الكتاب صفحة 47

ما المؤشر cursor؟ ولماذا يُفضّل استخدام IF NOT EXISTS؟

المؤشر cursor كائن يُستخدم كأداة تساعد في التفاعل مع قاعدة البيانات بطريقة منظمة، مثل إنشاء قاعدة البيانات وأيضًا إضافة واسترجاع وتعديل وحذف البيانات. ويُفضل استخدام العبارة الشرطية IF NOT EXISTS لمنع حدوث أخطاء عند محاولة إنشاء جدول موجود مسبقًا.

الكتاب صفحة 48

ما وظيفة الدالة commit()؟ وماذا يحدث لو نُسيت؟

commit() دالة تُستخدم لحفظ التغييرات التي تم إجراؤها على قاعدة البيانات، وتأتي في مثال الكتاب بعد إنشاء الجدول وقبل إغلاق الاتصال. ولو نُسيت فلن تُحفَظ التغييرات على قاعدة البيانات، لأن الكتاب جعل حفظ التغيرات خطوة مستقلة ضمن خطوات إنشاء الجدول.

الكتاب صفحة 51

اختبار الدرس

أجب ثم اضغط «صحّح» لترى درجتك وتفسير كل إجابة.

سؤال 1
1

أي نوع بيانات في SQLite يُستخدم لتخزين سعر الكتاب 3.15؟

سهل
سؤال 2
2

أي نوع بيانات يُستخدم لتخزين الصور والمستندات والملفات الصوتية والمرئية؟

متوسط
سؤال 3
3

أي القيود يجعل العمود NOT NULL وUNIQUE في الوقت نفسه؟

متوسط
سؤال 4
4

ما التعليمة الصحيحة لجعل عمود email لا تتكرر قيمه؟

متوسط
سؤال 5
5

أي أسماء الأعمدة التالية مخالف للقواعد القياسية للتسمية؟

صعب
سؤال 6
6

العبارة الشرطية IF NOT EXISTS تمنع حدوث أخطاء عند محاولة إنشاء جدول موجود مسبقًا.

سهل
سؤال 7
7

القيد INTEGER PRIMARY KEY لا يزيد القيمة تلقائيًا إلا إذا كُتب معه AUTOINCREMENT.

صعب
سؤال 8
8

أكمل: الدالة .......... تُستخدم لحفظ التغييرات التي تم إجراؤها على قاعدة البيانات.

متوسط
سؤال 9
9

اكتب سطر إنشاء كائن المؤشر بعد فتح الاتصال بقاعدة البيانات.

متوسط
سؤال 10
10

أراد طالب أن يمنع إدخال طالب عمره أكبر من 20 سنة في عمود age. اكتب القيد المناسب بصيغة الكتاب.

صعب

الواجب

أسئلة تطبيقية لتحلها في البيت. يمكنك طباعتها من الأعلى.

سؤال 1
1

حدّد نوع البيانات المناسب لكل عمود: رقم الطالب، اسم الطالب، معدل الطالب، صورة الطالب.

متوسط
سؤال 2
2

اكتب التعليمة البرمجية لإنشاء جدول باسم student يحوي: id مفتاحًا أساسيًا، وname نصًا غير فارغ لا يزيد طوله على 30 حرفًا، وage عددًا صحيحًا لا يزيد على 20، وnationality نصًا قيمته الافتراضية Kuwait.

صعب
سؤال 3
3

نفّذ عمليًا: أنشئ الجدول book كما في مثال 1، ثم عاين هيكليته في برنامج DB Browser for SQLite، واكتب الخطوات التي اتبعتها في المعاينة.

متوسط
سؤال 4
4

طالب كتب اسم جدول بصيغة 1st table وعمودًا باسم student#name، ولم ينجح البرنامج. حلّل الأخطاء واقترح أسماء صحيحة.

صعب

مصطلحات الدرس

الجدول Table
هيكل أساسي في قاعدة البيانات يُستخدم لتخزين البيانات وتنظيمها وتنفيذ عمليات CRUD، ويتكون من صفوف وأعمدة.
CRUD
العمليات الأساسية على البيانات: الإدخال، الاستعلام، التعديل، الحذف.
أنواع البيانات Data Types
تصنيفات تُحدد شكل وطبيعة المعلومات التي يمكن تخزينها في كل عمود من أعمدة الجدول.
BLOB
نوع بيانات لتخزين كائنات ثنائية كبيرة Binary Large Object مثل الصور والمستندات والملفات الصوتية والمرئية.
القيود Constraints
قواعد تُطبق في الجدول لضمان صحة ودقة البيانات، ولمنع إدخال بيانات غير صحيحة أو غير مسموح بها.
CHECK
قيد يفرض شرطًا منطقيًا يجب أن يتحقق عند إدخال قيمة للعمود.
AUTOINCREMENT
سلوك خاص داخل SQLite يُستخدم مع المفتاح الأساسي من النوع INTEGER لزيادة القيمة تلقائيًا بمقدار واحد مع كل صف جديد.
المؤشر cursor
كائن يُستخدم كأداة تساعد في التفاعل مع قاعدة البيانات بطريقة منظمة: إنشاء وإضافة واسترجاع وتعديل وحذف البيانات.
commit()
دالة تُستخدم لحفظ التغييرات التي تم إجراؤها على قاعدة البيانات.

تمارين الكتاب كاملة

كل سؤال ونشاط وتمرين ورد في صفحات هذا الدرس، بنصه وإجابته النموذجية. 1 تمرينًا.

ورقة عمل (3) — إنشاء جدول landmark بقاعدة البيانات Kuwait_landmarks.dbإنشاء جدول جديد landmark بقاعدة البيانات Kuwait_landmarks.db لتخزين بيانات بعض معالم دولة الكويت، مُتبعًا الخطوات التالية: 1. استدعِ المشروع landmark_table. 2. افتح ملف data_table.py (الأسطر 1 و2 و3 مكتوبة: import sqlite3 ثم connection = sqlite3.connect ('Kuwait_landmarks.db') ثم cursor = connection.cursor()، والأسطر 4 إلى 12 متروكة لك، والسطران 13 و14 هما commit ثم close). 3. استكمل التعليمة البرمجية لإنشاء جدول landmark، وفقًا للبيانات التالية: id نوعه INTEGER وقيده PRIMARY KEY (المفتاح الأساسي)، name نوعه TEXT وقيده NOT NULL (غير فارغ)، location نوعه TEXT، category نوعه TEXT، year نوعه INTEGER، price نوعه REAL. 4. نفّذ التعليمات البرمجية. 5. عاين هيكلية الجدول باستخدام برنامج DB Browser.53)

الأسطر من 4 إلى 12 تُستكمل على نمط مثال 1 هكذا: cursor.execute(''' ثم CREATE TABLE IF NOT EXISTS landmark( ثم id INTEGER PRIMARY KEY , ثم name TEXT NOT NULL , ثم location TEXT, ثم category TEXT, ثم year INTEGER, ثم price REAL ) ثم ''') لإغلاق الأمر. ويبقى السطران الأخيران: connection.commit() ثم connection.close(). تنبيه: السطر 13 مطبوع في الكتاب هكذا connction.commit() وفيه سقط حرف، وصوابه connection.commit() وإلا توقّف البرنامج بخطأ. الناتج المتوقع: لا تُطبع رسالة، بل يُنشأ الجدول داخل الملف Kuwait_landmarks.db. وللمعاينة: شغّل DB Browser for SQLite، ثم Open Database، ثم حدّد Kuwait_landmarks.db من مجلد المشروع، ثم انتقل إلى علامة التبويب Database Structure واختر الجدول landmark فتظهر الأعمدة الستة بأنواعها وقيودها.

صفحات الكتاب

صفحات هذا الدرس من كتاب الطالب الرسمي كما هي، صفحات 43 إلى 54.

المصدر: تقنية المعلومات 11 — الصف الحادي عشر — الفصل الدراسي الأول

  • ص 45: «تُعد الجداول هيكلًا أساسيًا في قواعد البيانات، تستخدم لتخزين، تنظيم البيانات»
  • ص 46: «قواعد تُطبق في الجدول لضمان صحة ودقة البيانات، وتُستخدم لمنع إدخال بيانات غير صحيحة»
  • ص 47: «لا يبدأ اسم الجدول أو اسم العمود برقم»
  • ص 48: «يُفضل استخدام العبارة الشرطية IF NOT EXISTS لمنع حدوث أخطاء عند محاولة إنشاء جدول موجود مسبقًا»
  • ص 51: «دالة تُستخدم لحفظ التغييرات التي تم إجراؤها على قاعدة البيانات»