0Pricing
Python Academy · درس

الاتصال وإنشاء الجداول

افتح قاعدة بيانات وعرّف مخططها

الاتصال وإنشاء الجداول درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

ما هي sqlite3؟

تأتي Python مع وحدة sqlite3 ضمن مكتبتها القياسية. وتتيح لك العمل مع SQLite، وهي قاعدة بيانات SQL خفيفة تعتمد على الملفات ولا تحتاج إلى خادم منفصل.

  • لا تتطلب تثبيتًا
  • توجد قاعدة البيانات كاملة في ملف واحد
  • مثالية للنماذج الأولية والاختبارات والتطبيقات الصغيرة
import sqlite3
print(sqlite3.version)

الاتصال بقاعدة بيانات

استخدم sqlite3.connect() لفتح قاعدة بيانات. وإذا لم يكن الملف موجودًا، فستنشئه SQLite.

يؤدي تمرير ':memory:' إلى إنشاء قاعدة بيانات مؤقتة في الذاكرة تختفي عند إغلاق الاتصال.

import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()

كائن Cursor

لتنفيذ SQL، تحتاج إلى مؤشر. استدعِ conn.cursor() للحصول عليه، ثم استخدم cursor.execute() لإرسال عبارات SQL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()

إنشاء جدول

حدّد مخططًا باستخدام CREATE TABLE. يحتاج كل عمود إلى اسم ونوع، مثل INTEGER أو TEXT أو REAL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()

المفاتيح الأساسية

يحدّد المفتاح الأساسي كل صف بشكل فريد. ويؤدي تعريف INTEGER PRIMARY KEY إلى زيادة القيمة تلقائيًا في SQLite نيابةً عنكم.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()

IF NOT EXISTS

يؤدي تشغيل CREATE TABLE مرتين إلى حدوث خطأ. أضيفوا IF NOT EXISTS لتصبح العبارة آمنة عند تشغيلها بشكل متكرر.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()

قيود الأعمدة

تفرض القيود قواعد البيانات على مستوى قاعدة البيانات.

  • يتطلب NOT NULL قيمة
  • يمنع UNIQUE التكرارات
  • يوفّر DEFAULT قيمة بديلة
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()

فحص المخطط

يخزّن SQLite معلومات المخطط في sqlite_master. استعلموا عنه لسرد جداولكم.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()

الحفظ في ملف

للاحتفاظ بالبيانات، مرّروا اسم ملف إلى connect(). وتبقى قاعدة البيانات موجودة بعد انتهاء برنامجكم.

يجب استدعاء conn.commit() لكتابة التغييرات على القرص.

import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()

حذف جدول

أزيلوا جدولًا باستخدام DROP TABLE. استخدموا IF EXISTS لتجنب الأخطاء إذا كان الجدول قد أزيل بالفعل.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()

أغلقوا الاتصال دائمًا

تحتفظ الاتصالات المفتوحة بمقابض الملفات. أغلقوها دائمًا باستخدام conn.close() عند الانتهاء، أو استخدموا كتلة with للتنظيف التلقائي.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')

اختبار سريع

اختبروا مدى فهمكم لإنشاء الجداول.

مراجعة

تعلّمتم أساسيات sqlite3.

  • يفتح connect() ملف قاعدة بيانات أو ينشئه
  • يوفّر cursor() كائنًا لتشغيل SQL
  • يعرّف CREATE TABLE المخطط باستخدام الأنواع والقيود
  • يحفظ commit() التغييرات، بينما يحرّر close() الاتصال

ستدرجون الصفوف وتقرؤونها بعد ذلك.

الأسئلة الشائعة

هل درس «الاتصال وإنشاء الجداول» مجاني؟

نعم — نص درس «الاتصال وإنشاء الجداول» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «الاتصال وإنشاء الجداول»؟

افتح قاعدة بيانات وعرّف مخططها تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الاتصال وإنشاء الجداول»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الاتصال وإنشاء الجداول
  2. Insert وSelect وUpdate وDelete
  3. الاستعلامات المعلَّمة بالمعاملات
  4. المعاملات ومديرو السياق
← العودة إلى Python Academy