15.4.2 无条件查询
import sqlite3
try:
#1、建立数据库连接
con = sqlite3.connect('school_db.db')
#2、创建游标对象
cursor = con.cursor()
#3、执行SQL查询操作
sql = 'SELECT s_id s_name s_sex s_birthday FROM student'
cursor.execute(sql)
#4、提取结果集
result_set = cursor.fetchall()
for row in result_set:
print('学号:{0} - 姓名:{1} - 性别:{2} - 生日:{3}'
.format(row[0],row[1],row[2],row[3]))
except sqlite3.Error as e:
print("数据查询发生错误:{}".format(e))
finally:
#5、关闭游标
if cursor:
cursor.close()
#6、关闭数据连接
if con:
con.close()
15.4.3 有条件查询
import sqlite3
istr = input("请输入生日(yyyyMMdd):")
try:
#1、建立数据库连接
con = sqlite3.connect('school_db.db')
#2、创建游标对象
cursor = con.cursor()
#3、执行SQL查询操作
sql = 'SELECT s_id s_name s_sex s_birthday FROM student'
cursor.execute(sql,[istr]) #参数放到序列或元组中
#4、提取结果集
result_set = cursor.fetchall()
for row in result_set:
print('学号:{0} - 姓名:{1} - 性别:{2} - 生日:{3}'
.format(row[0],row[1],row[2],row[3]))
except sqlite3.Error as e:
print("数据查询发生错误:{}".format(e))
finally:
#5、关闭游标
if cursor:
cursor.close()
#6、关闭数据连接
if con:
con.close()
15.4.4 插入数据
import sqlite3
i_name = input("请输入【姓名】:")
i_sex = input("请输入【性别】(1表示男,0表示女):")
i_birthday = input("请输入【生日】:")
try:
#1、建立数据库连接
con = sqlite3.connect('school_db.db')
#2、创建游标对象
cursor = con.cursor()
#3、执行SQL插入操作
sql = 'INSERT INTO student (s_name,s_sex,s_birthday) VALUES(?,?,?)'
cursor.execute(sql,[i_name,i_sex,i_birthday])
#4、提交数据库事务
con.commit()
print("插入数据成功。")
except sqlite3.Error as e:
print("插入数据失败:{}".format(e))
#4、回滚数据库事务
con.rollback()
finally:
#5、关闭游标
if cursor:
cursor.close()
#6、关闭数据连接
if con:
con.close()
15.4.5 更新数据
import sqlite3
i_id = input("请输入【学号】:")
i_name = input("请输入【姓名】:")
i_sex = input("请输入【性别】(1表示男,0表示女):")
i_birthday = input("请输入【生日】:")
try:
#1、建立数据库连接
con = sqlite3.connect('school_db.db')
#2、创建游标对象
cursor = con.cursor()
#3、执行SQL更新操作
sql = 'UPDATE student SET s_name = ?,s_sex = ?,s_birthday = ? WHERE s_id = ?'
cursor.execute(sql,[i_name,i_sex,i_birthday,i_id])
#4、提交数据库事务
con.commit()
print("插入数据成功。")
except sqlite3.Error as e:
print("插入数据失败:{}".format(e))
#4、回滚数据库事务
con.rollback()
finally:
#5、关闭游标
if cursor:
cursor.close()
#6、关闭数据连接
if con:
con.close()
15.4.6 删除数据
import sqlite3
i_id = input("请输入要删除学生的【学号】:")
try:
#1、建立数据库连接
con = sqlite3.connect('school_db.db')
#2、创建游标对象
cursor = con.cursor()
#3、执行SQL更新操作
sql = 'DELETE FROM student WHERE s_id=?'
cursor.execute(sql,[i_id])
#4、提交数据库事务
con.commit()
print("插入数据成功。")
except sqlite3.Error as e:
print("插入数据失败:{}".format(e))
#4、回滚数据库事务
con.rollback()
finally:
#5、关闭游标
if cursor:
cursor.close()
#6、关闭数据连接
if con:
con.close()
15.5 防止SQL注入攻击
import sqlite3
istr = input("请输入生日(yyyyMMdd):")
try:
#1、建立数据库连接
con = sqlite3.connect('school_db.db')
#2、创建游标对象
cursor = con.cursor()
#3、执行SQL查询操作
sql = 'SELECT s_id s_name s_sex s_birthday FROM student WHERE s_birthday < ' + istr
cursor.execute(sql) #参数放到序列或元组中
#4、提取结果集
result_set = cursor.fetchall()
for row in result_set:
print('学号:{0} - 姓名:{1} - 性别:{2} - 生日:{3}'
.format(row[0],row[1],row[2],row[3]))
except sqlite3.Error as e:
print("数据查询发生错误:{}".format(e))
finally:
#5、关闭游标
if cursor:
cursor.close()
#6、关闭数据连接
if con:
con.close()