【#第一文档网# 导语】以下是®第一文档网的小编为您整理的《Python程序设计第8章 习题解答》,欢迎阅读!
8.4 习题 8.1 在IDLE交互方法下输入下面代码,观察操作过程和显示。 >>> import sqlite3 # 导入SQLite模块 # 连接到SQLite数据库,数据库文件是test.db,如果文件不存在,会自动在D:\目录创建 >>> conn = sqlite3.connect('d:\\test.db') # 创建一个Connection对象conn >>> cur = conn.cursor() # 创建一个Cursor对象cur # 执行一条SQL语句,创建user表 >>> cur.execute('create table user(id text(10) primary key, name text(10))') # 执行一条SQL语句,插入一条记录 >>> cur.execute("insert into user(id, name) values('20201', 'Jack')") # 执行一条SQL语句,再插入一条记录 >>> cur.execute("insert into user(id, name) values('20203', 'Tom')") >>> cur.rowcount # 通过rowcount获得插入的行数 1 >>> cur.close() # 关闭Cursor对象 >>> conn.commit() # 提交事务 >>> conn.close() # 关闭Connection对象 8.2 下面代码在内存中创建一个临时数据库,然后在该数据库中创建一个表user,分别用问号(?)和命名变量作为占位符添加记录,再用不同的方式显示记录。请运行程序,写出执行结果。 from sqlite3 import * conn= connect(":memory:") # 在内存中创建临时数据库,并创建连接对象 cur=conn.cursor() # 创建游标对象 # 创建表user cur.execute("CREATE TABLE user(user_no text(4), user_name text(10))") # 执行SQL语句创建表 # 添加记录,使用问号作为占位符 no="0001" name="Jerry" cur.execute("INSERT INTO user VALUES(?, ?)", (no, name)) # 添加记录,占位符的值用元组提供 # 执行查询,使用命名变量作为占位符 cur.execute("SELECT * FROM user WHERE user_no=:no AND user_name=:name",{"no":no, "name":name} 174 row = cur.fetchone() # 获得查询到的一条记录 print("获得查询到的一条记录:user_no=%s, user_name=%s" % (row[0], row[1])) # 输出结果 # 添加记录,使用命名变量 no1="0002" name1="Tom" sql="INSERT INTO user VALUES(:no1, :name1)" # SQL语句中的命名变量 var={"no1":no1, "name1":name1} # 用字典提供命名变量和对应的值 cur.execute(sql, var) # 执行SQL语句 # 添加记录,用问号(?)占位符传递参数 sql="INSERT INTO user VALUES(?, ?)" params=("0003", "Alisa") # 用元组提供占位符的值 cur.execute(sql, params) # 执行SQL语句 conn.commit() # 提交事务 # 查询所有记录,使用cur.fetchone()方法循环 cur.execute("SELECT * FROM user") row = cur.fetchone() # 获得查询到的第一条记录 print("获得查询到的记录:") while row: # 循环读取所有记录行 print(row) # 按元组显示 row = cur.fetchone() # 获得查询到的下一条记录 # 查询所有记录,必须重新执行SQL语句 cur.execute("SELECT * FROM user") row = cur.fetchone() # 获得查询到的第一条记录 while row: print("user_no=%s, user_name=%s" % (row[0], row[1])) # 使用字段输出结果 row = cur.fetchone() # 获得查询到的下一条记录 cur.close() # 关闭游标对象 conn.close() # 关闭连接对象 8.3 在IDLE交互方法下输入下面代码,观察操作过程和显示。 >>> from sqlite3 import * # 导入SQLite模块 >>> conn = connect('D:\\test.db') # 创建连接对象,打开例8-3中创建的数据库 >>> cur = conn.cursor() # 创建游标对象 >>> cur.execute('select * from user where id=?', ('20201',)) # 执行查询语句 >>> rows = cur.fetchall() # 获得查询结果集 >>> rows [('20201', 'Jack')] >>> cur.execute('select * from user') # 执行查询语句, 查询所有记录 175 >>> rows = cur.fetchall() # 获得查询结果集,是一个列表list,列表的每个元素是一个tupe >>> rows [('20201', 'Jack'), ('20203', 'Tom')] >>> cur.close() # 关闭Cursor对象 >>> conn.commit() # 提交事务 >>> conn.close() # 关闭Connection对象 8.4 学生信息包括学号、姓名、性别、出生日期、专业等。请用SQL Server创建数据库,实现学生信息的增、删、改、查功能。 176 本文来源:https://www.dywdw.cn/462f1c0d74c66137ee06eff9aef8941ea76e4b8e.html