Latest web development tutorials

سكليتي - بيثون

تثبيت

وحدة SQLite3 sqlite3 يمكن استخدامها مع التكامل بيثون. وحدة sqlite3 كتبه جيرهارد هارينغ. وهو يوفر 2.0 مواصفات DB-API التي وصفها PEP 249 متوافق مع واجهة SQL. أنت لا تحتاج إلى تثبيت وحدة على حدة، لأن بيثون 2.5.x أو تقصير في وقت لاحق يأتي مع وحدة.

من أجل استخدام وحدة sqlite3، يجب عليك أولا إنشاء تمثيل كائن اتصال قاعدة البيانات، ومن ثم يمكنك اختيار لإنشاء كائن المؤشر، والتي سوف تساعدك على أداء جميع البيانات SQL.

بيثون sqlite3 API وحدة

وفيما يلي البرنامج الهام وحدة sqlite3 لتلبية الاحتياجات الخاصة بك باستخدام قاعدة بيانات SQLite في برامج بيثون. اذا كنت بحاجة الى مزيد من التفاصيل، راجع وثائق بيثون وحدة sqlite3 الرسمية.

序号API & 描述
1sqlite3.connect(database [,timeout ,other optional arguments])

该 API 打开一个到 SQLite 数据库文件 database 的链接。您可以使用 ":memory:" 来在 RAM 中打开一个到 database 的数据库连接,而不是在磁盘上打开。如果数据库成功打开,则返回一个连接对象。

当一个数据库被多个连接访问,且其中一个修改了数据库,此时 SQLite 数据库被锁定,直到事务提交。timeout 参数表示连接等待锁定的持续时间,直到发生异常断开连接。timeout 参数默认是 5.0(5 秒)。

如果给定的数据库名称 filename 不存在,则该调用将创建一个数据库。如果您不想在当前目录中创建数据库,那么您可以指定带有路径的文件名,这样您就能在任意地方创建数据库。

2connection.cursor([cursorClass])

该例程创建一个cursor,将在 Python 数据库编程中用到。该方法接受一个单一的可选的参数 cursorClass。如果提供了该参数,则它必须是一个扩展自 sqlite3.Cursor 的自定义的 cursor 类。

3cursor.execute(sql [, optional parameters])

该例程执行一个 SQL 语句。该 SQL 语句可以被参数化(即使用占位符代替 SQL 文本)。sqlite3 模块支持两种类型的占位符:问号和命名占位符(命名样式)。

例如:cursor.execute("insert into people values (?, ?)", (who, age))

4connection.execute(sql [, optional parameters])

该例程是上面执行的由光标(cursor)对象提供的方法的快捷方式,它通过调用光标(cursor)方法创建了一个中间的光标对象,然后通过给定的参数调用光标的 execute 方法。

5cursor.executemany(sql, seq_of_parameters)

该例程对 seq_of_parameters 中的所有参数或映射执行一个 SQL 命令。

6connection.executemany(sql[, parameters])

该例程是一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的 executemany 方法。

7cursor.executescript(sql_script)

该例程一旦接收到脚本,会执行多个 SQL 语句。它首先执行 COMMIT 语句,然后执行作为参数传入的 SQL 脚本。所有的 SQL 语句应该用分号(;)分隔。

8connection.executescript(sql_script)

该例程是一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的 executescript 方法。

9connection.total_changes()

该例程返回自数据库连接打开以来被修改、插入或删除的数据库总行数。

10connection.commit()

该方法提交当前的事务。如果您未调用该方法,那么自您上一次调用 commit() 以来所做的任何动作对其他数据库连接来说是不可见的。

11connection.rollback()

该方法回滚自上一次调用 commit() 以来对数据库所做的更改。

12connection.close()

该方法关闭数据库连接。请注意,这不会自动调用 commit()。如果您之前未调用 commit() 方法,就直接关闭数据库连接,您所做的所有更改将全部丢失!

13cursor.fetchone()

该方法获取查询结果集中的下一行,返回一个单一的序列,当没有更多可用的数据时,则返回 None。

14cursor.fetchmany([size=cursor.arraysize])

该方法获取查询结果集中的下一行组,返回一个列表。当没有更多的可用的行时,则返回一个空的列表。该方法尝试获取由 size 参数指定的尽可能多的行。

15cursor.fetchall()

该例程获取查询结果集中所有(剩余)的行,返回一个列表。当没有可用的行时,则返回一个空的列表。

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

يظهر رمز بيثون التالية كيفية الاتصال قاعدة بيانات موجودة. حالة عدم وجود قاعدة بيانات، يتم إنشاؤه، وأخيرا بإرجاع كائن قاعدة البيانات.

#! / البيرة / بن / الثعبان

sqlite3 استيراد

كون = sqlite3.connect ( 'test.db')

طباعة "تماما قاعدة البيانات بنجاح".

هنا، يمكنك أيضا نسخ اسم قاعدة البيانات عناسم محدد: ذاكرة :، هذا سيخلق قاعدة البيانات في ذاكرة الوصول العشوائي.الآن، دعونا تشغيل البرنامج المذكور أعلاه، إنشاءtest.db قاعدة البيانات الخاصة بنا في الدليل الحالي.يمكنك تغيير المسار حسب الحاجة. حفظ التعليمات البرمجية أعلاه لsqlite.py الملف واضغط تتم على النحو التالي مبين. إذا تم إنشاء قاعدة البيانات بنجاح، فإنه سيتم عرض الرسالة هو موضح أدناه:

$ تطبيق التصريح + س sqlite.py
$. / Sqlite.py
فتح قاعدة البيانات بنجاح

إنشاء جدول

وسوف تستخدم رمز بيثون التالية لإنشاء جدول في قاعدة البيانات التي تم إنشاؤها مسبقا:

#! / البيرة / بن / الثعبان

sqlite3 استيراد

كون = sqlite3.connect ( 'test.db')
طباعة "تماما قاعدة البيانات بنجاح".

conn.execute ( '' 'إنشاء المقاولة الجدول
       (ID INT PRIMARY KEY NOT NULL،
       النص اسم NOT NULL،
       AGE INT NOT NULL،
       شار عنوان (50)،
       ريال راتب)؛ '' ')
طباعة "خلق الجدول بنجاح".

conn.close ()

عندما الإجراء أعلاه، فإنه يخلق الجدول شركة فيtest.db ويعرض الرسالة هو مبين أدناه:

قاعدة البيانات المفتوحة بنجاح
جدول تم إنشاؤه بنجاح

عملية INSERT

يظهر برنامج بيثون التالي كيفية إنشاء السجلات في الجدول شركة تم إنشاؤها أعلاه:

#! / البيرة / بن / الثعبان

sqlite3 استيراد

كون = sqlite3.connect ( 'test.db')
طباعة "تماما قاعدة البيانات بنجاح".

conn.execute ( "INSERT INTO شركة (ID، الاسم والعمر والعنوان، الراتب) \
      VALUES (1، 'بول'، 32، 'كاليفورنيا'، 20000.00) ")؛

conn.execute ( "INSERT INTO شركة (ID، الاسم والعمر والعنوان، الراتب) \
      VALUES (2، "ألين"، 25، "تكساس"، 15000.00) ")؛

conn.execute ( "INSERT INTO شركة (ID، الاسم والعمر والعنوان، الراتب) \
      VALUES (3، 'تيدي'، 23، 'النرويج'، 20000.00) ")؛

conn.execute ( "INSERT INTO شركة (ID، الاسم والعمر والعنوان، الراتب) \
      VALUES (4، "مارك (25 عاما)" ريتش موند "، 65000.00)")؛

conn.commit ()
طباعة "السجلات التي تم إنشاؤها بنجاح".
conn.close ()

يتم تنفيذ البرنامج المذكور أعلاه، فإنه سيتم إنشاء في الجدول شركة لسجل معين، ويعرض السطرين التاليين:

قاعدة البيانات المفتوحة بنجاح
السجلات التي تم إنشاؤها بنجاح

عمليات SELECT

يظهر برنامج بيثون التالية كيفية الحصول عليها من الجدول الشركة التي تم إنشاؤها في وقت سابق ويعرض سجل:

#! / البيرة / بن / الثعبان

sqlite3 استيراد

كون = sqlite3.connect ( 'test.db')
طباعة "تماما قاعدة البيانات بنجاح".

المؤشر = conn.execute ( "SELECT الهوية، والاسم والعنوان والمرتبات من شركة")
لالتوالي في المؤشر:
   طباعة "ID =" الصف [0]
   طباعة "NAME =" الصف [1]
   طباعة "عنوان =" الصف [2]
   طباعة "راتب =" الصف [3]، "\ ن"

طباعة "عملية فعلت بنجاح".
conn.close ()

عندما يتم تنفيذ البرنامج المذكور أعلاه، وسوف تؤدي إلى النتائج التالية:

قاعدة البيانات المفتوحة بنجاح
ID = 1
NAME = بول
عنوان = كاليفورنيا
راتب = 20000.0

ID = 2
NAME = ألين
عنوان = تكساس
راتب = 15000.0

ID = 3
NAME = تيدي
عنوان = النرويج
راتب = 20000.0

ID = 4
NAME = كافة
عنوان = ريتش موند
راتب = 65000.0

العملية تمت العملية بنجاح

عملية تحديث

يظهر رمز بيثون التالي كيفية استخدام عبارة UPDATE لتحديث أي سجلات، ثم الحصول من الجدول الشركة وعرض سجل تحديث:

#! / البيرة / بن / الثعبان

sqlite3 استيراد

كون = sqlite3.connect ( 'test.db')
طباعة "تماما قاعدة البيانات بنجاح".

( "مجموعة شركة استكمال راتب = 25000.00 حيث ID = 1") conn.execute
conn.commit
طباعة "عدد الصفوف تحديث:" conn.total_changes

المؤشر = conn.execute ( "SELECT الهوية، والاسم والعنوان والمرتبات من شركة")
لالتوالي في المؤشر:
   طباعة "ID =" الصف [0]
   طباعة "NAME =" الصف [1]
   طباعة "عنوان =" الصف [2]
   طباعة "راتب =" الصف [3]، "\ ن"

طباعة "عملية فعلت بنجاح".
conn.close ()

عندما يتم تنفيذ البرنامج المذكور أعلاه، وسوف تؤدي إلى النتائج التالية:

قاعدة البيانات المفتوحة بنجاح
إجمالي عدد الصفوف تحديث: 1
ID = 1
NAME = بول
عنوان = كاليفورنيا
راتب = 25000.0

ID = 2
NAME = ألين
عنوان = تكساس
راتب = 15000.0

ID = 3
NAME = تيدي
عنوان = النرويج
راتب = 20000.0

ID = 4
NAME = كافة
عنوان = ريتش موند
راتب = 65000.0

العملية تمت العملية بنجاح

عملية الحذف

يظهر رمز بيثون التالي كيفية استخدام عبارة DELETE حذف أي سجلات، ثم تؤخذ من الجدول الشركة ويعرض تسجيل المتبقية:

#! / البيرة / بن / الثعبان

sqlite3 استيراد

كون = sqlite3.connect ( 'test.db')
طباعة "تماما قاعدة البيانات بنجاح".

conn.execute ( "DELETE من شركة حيث ID = 2؛")
conn.commit
طباعة "إجمالي عدد الصفوف المحذوفة:" conn.total_changes

المؤشر = conn.execute ( "SELECT الهوية، والاسم والعنوان والمرتبات من شركة")
لالتوالي في المؤشر:
   طباعة "ID =" الصف [0]
   طباعة "NAME =" الصف [1]
   طباعة "عنوان =" الصف [2]
   طباعة "راتب =" الصف [3]، "\ ن"

طباعة "عملية فعلت بنجاح".
conn.close ()

عندما يتم تنفيذ البرنامج المذكور أعلاه، وسوف تؤدي إلى النتائج التالية:

قاعدة البيانات المفتوحة بنجاح
إجمالي عدد الصفوف حذف: 1
ID = 1
NAME = بول
عنوان = كاليفورنيا
راتب = 20000.0

ID = 3
NAME = تيدي
عنوان = النرويج
راتب = 20000.0

ID = 4
NAME = كافة
عنوان = ريتش موند
راتب = 65000.0

العملية تمت العملية بنجاح