السلام عليكم ورحمة الله
درسنا ليوم عن قواعد البيانات sqlite
import sqlite3
con = sqlite3.connect("db.sq3")
cur = con.cursor()
cur.execute("create table test(nom text, age integer, rel real)")
cur.execute("insert into test(nom, age, rel) values('Belal' , 18, 73.3)")
cur.execute("insert into test(nom, age, rel) values('ahmad' , 19, 85.5)")
con.commit()
cur.close()
con.close()شرح الكود
con = sqlite3.connect("db.sq3")هنا قمنا بالاتصال بقاعدة البيانات في حال كانت غير موجودة سيتم انشاءها
cur = con.cursor()
انشاء مؤشر للتعامل مع قاعدة البيانات
اقتباس
هو نوع من الذاكرة العازلة ،لتخزين البيانات في الذاكرة بشكل مؤقت عند القيام بمعالجتها ،فضل عن عمليات تقوم لها عليها، قبل نقلها إلى قاعدة البيانات النهائية.
cur.execute("create table test(nom text, age integer, rel real)")هذه الدالة تقوم باستخدام اوامر sql
طبعا هذا الامر سيقوم بانشاء جدول باسم test يحتوي على ثلاث سجلات هي nom من نوع نص و age من نوع عدد صحيح و rel من نوع عدد حقيقي(انواع البيانات في sql لا تحمل نفس الاسماء في بايثون)
cur.execute("insert into test(nom, age, rel) values('Belal' , 18, 73.3)")
cur.execute("insert into test(nom, age, rel) values('ahmad' , 19, 85.5)")هذا الامر يقوم بادخال البيانات
اقتباس
في برنامج عملي ،البيانات التي تريد تسجيلها يتم حفظها في متغيات تنشأ في الغالب في متغيات بايثون .وسوف تحتاج أيضا إلى إنشاء سلسلة نصية تحتوي على طلب استعلم ،SQLلتشمل قيما من هذه المتغييرات .فمن المستحسن استخدامها لهذا الغرض في التقنيات الهادية لتنسيق السلاسل ،لان هذه قد تفتح ثغرة أمنية في برامجها ،وتسمح لقتحامها من خلال طريقة تدعى ) SQL Injectionحقن . (SQLولذلك يجب التأكد من تنسق استعلاماتك للوحدة الواجهة نفسها .والتقنية السليمة أدناه :سلسلة "رئيس" تستخدم علمة استفهام كعلمات التحويل ،وتنسيق نفسه معتمد من قبل الاسلوب ب execut() للملؤشر:
data = [('belal', 18, 73.3),('ahmad', 19, 85.5)]
for tu in data :
cur.execute("insert into test(nom, age, rel) values(?,?,?)",tu)con.commit()
هذه الدالة تقوم بحفض التغييرات من دونها لن يتم حفظ شيء
cur.close()con.close()
ما يحتاجن شرح
الى هنا ينتهي درسنا.