执行下列代码,说法错误的是?( )
import sqlite3
DATABASE = 'data.db'
db = sqlite3.connect(DATABASE)
cur = db.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS list(id INTEGER PRIMARY KEY autoincrement, name text)")
db.commit()
cur.execute("SELECT COUNT(*) FROM list")
if cur.fetchall()[0][0] == 0:
cur.execute('INSERT INTO list(id,name) VALUES(1,"lilei")')
db.commit()
A
data.db文件中有一张名为list的数据表
B
list数据表中有两个字段id和name
C
list数据表中没有记录
D
去掉最后一行的db.commit(),对程序有影响
使用微信搜索喵呜刷题,轻松应对考试!
答案:
C
解析:
【喵呜刷题小喵解析】:根据代码,首先创建了一个名为`list`的表,该表有两个字段:`id`和`name`。`id`字段是整数类型,并且是主键,自动递增。`name`字段是文本类型。然后,执行了一个查询,检查`list`表中是否有记录。如果没有记录(即`SELECT COUNT(*) FROM list`返回0),则插入一条记录,`id`为1,`name`为"lilei"。选项A表示"data.db文件中有一张名为list的数据表",这是正确的,因为代码中明确创建了这个表。选项B表示"list数据表中有两个字段id和name",这也是正确的,因为代码中创建的表就是这样定义的。选项C表示"list数据表中没有记录",这是错误的,因为在查询表中记录数量为零后,插入了一条记录。选项D表示"去掉最后一行的db.commit(),对程序有影响",这是正确的,因为`db.commit()`用于提交事务,确保之前的数据库操作(如插入记录)被保存。如果去掉这行代码,插入的记录不会被保存到数据库中。因此,说法错误的是选项C。