0Pricing
Python Academy · درس

Insert وSelect وUpdate وDelete

نفّذ عمليات CRUD

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

عمليات CRUD

الإجراءات الأساسية الأربعة في قاعدة البيانات هي الإنشاء والقراءة والتحديث والحذف (CRUD). وتقابلها في SQL العبارات INSERT وSELECT وUPDATE وDELETE.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
print('Ready for CRUD')
conn.close()

إدراج صف

استخدموا INSERT INTO لإضافة صف. اذكروا الأعمدة، ثم القيم المطابقة لها.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
print('Inserted Alice')
conn.close()

قراءة جميع الصفوف

تقرأ SELECT * كل الأعمدة. استخدموا fetchall() للحصول على قائمة بكل الصفوف على شكل صفوف.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cur.execute('SELECT * FROM users')
print(cur.fetchall())
conn.close()

جلب صف واحد

تعيد fetchone() صفًا واحدًا، أو None عند عدم وجود صفوف أخرى. وتكون مفيدة عندما تتوقعون نتيجة واحدة بالضبط.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
cur.execute('SELECT * FROM users')
print(cur.fetchone())
conn.close()

اختيار أعمدة محددة

بدلًا من استخدام *، اذكروا أسماء الأعمدة التي تريدونها. فهذا أسرع وأكثر وضوحًا.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute('SELECT name FROM users')
print(cur.fetchall())
conn.close()

التصفية باستخدام WHERE

تحدّ عبارة WHERE من الصفوف التي تتأثر أو تُعاد.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cur.execute('SELECT name FROM users WHERE age > 28')
print(cur.fetchall())
conn.close()

تحديث الصفوف

تغيّر UPDATE البيانات الموجودة. أضيفوا دائمًا عبارة WHERE، وإلا فسيُحدَّث كل صف.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
cur.execute('SELECT age FROM users')
print(cur.fetchone())
conn.close()

حذف الصفوف

تزيل DELETE FROM الصفوف. وكما هو الحال مع UPDATE، تحتاج إلى عبارة WHERE لاستهداف صفوف محددة.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
cur.execute("INSERT INTO users (name) VALUES ('Bob')")
cur.execute("DELETE FROM users WHERE name = 'Bob'")
cur.execute('SELECT * FROM users')
print(cur.fetchall())
conn.close()

عدّ الصفوف المتأثرة

بعد تنفيذ UPDATE أو DELETE، يخبركم cursor.rowcount بعدد الصفوف التي تغيّرت.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
cur.execute("INSERT INTO users (name) VALUES ('Bob')")
cur.execute('DELETE FROM users')
print('Deleted rows:', cur.rowcount)
conn.close()

The lastrowid

بعد تنفيذ INSERT، يوفّر cursor.lastrowid المفتاح الأساسي الذي أُنشئ تلقائيًا للصف الجديد.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("INSERT INTO users (name) VALUES ('Alice')")
print('New id:', cur.lastrowid)
conn.close()

ترتيب النتائج

أضيفوا ORDER BY للفرز. استخدموا ASC للترتيب التصاعدي (وهو الافتراضي)، أو DESC للترتيب التنازلي.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
cur.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
cur.execute('SELECT name FROM users ORDER BY age DESC')
print(cur.fetchall())
conn.close()

اختبار سريع

اختبروا معرفتكم بعمليات CRUD.

مراجعة

تدرّبتم على عمليات CRUD الكاملة باستخدام SQLite.

  • يضيف INSERT INTO الصفوف، ويعطي lastrowid المعرّف الجديد
  • يقرأ SELECT البيانات باستخدام fetchone() أو fetchall()
  • يغيّر UPDATE وDELETE الصفوف، مع استخدام WHERE دائمًا
  • يفرز ORDER BY النتائج

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

هل درس «Insert وSelect وUpdate وDelete» مجاني؟

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

ماذا ستتعلم في «Insert وSelect وUpdate وDelete»؟

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

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

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

كم من الوقت يستغرق درس «Insert وSelect وUpdate وDelete»؟

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

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

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

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

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