内容正文:
专题十七 sqlite3数据库
一、单项选择题
1.在SQLite3中,用于删除表的SQL语句是( )。
A. DELETE TABLE table;
B. DROP TABLE table;
C. REMOVE TABLE table;
D. ERASE TABLE table;
【答案】B
【解析】DROP TABLE语句用于删除表。
2.在SQLite3中,用于存储文本字符串的数据类型是( )。
A. int
B. text
C. real
D. blob
【答案】B
【解析】text数据类型用于存储文本字符串。
3.在SQLite3中,用于获取下一行查询结果的方法是( )。
A. fetchone()
B. fetchall()
C. fetchnext()
D. fetchrow()
【答案】A
【解析】fetchone()方法用于获取下一行查询结果。
4.在SQLite3中,用于修改表结构的SQL语句的是( )。
A. ALTER TABLE table ADD column;
B. CHANGE TABLE table;
C. MODIFY TABLE table;
D. UPDATE TABLE table;
【答案】A
【解析】ALTER TABLE语句用于修改表结构,如添加或删除列。
5.在SQLite3中,用于回滚事务的方法是( )。
A. commit()
B. rollback()
C. undo()
D. revert()
【答案】B
【解析】rollback()方法用于回滚事务,撤销尚未提交的更改。
6.在SQLite3中,用于删除表中的所有数据的SQL语句( )。
A. DELETE * FROM table;
B. TRUNCATE TABLE table;
C. CLEAR TABLE table;
D. REMOVE ALL FROM table;
【答案】B
【解析】TRUNCATE TABLE语句用于删除表中的所有数据,但不删除表本身。
7.在SQLite3中,用于执行SQL语句的方法是( )。
A. execute()
B. run()
C. query()
D. sql()
【答案】A
【解析】execute()方法用于执行SQL语句。
8.在SQLite3中,用于创建表的SQL语句( )。
A. CREATE TABLE table (columns);
B. MAKE TABLE table (columns);
C. NEW TABLE table (columns);
D. BUILD TABLE table (columns);
【答案】A
【解析】CREATE TABLE语句用于创建表。
9.在SQLite3中,用于查询表中的所有数据的SQL语句( )。
A. SELECT * FROM table;
B. GET * FROM table;
C. FIND * FROM table;
D. RETRIEVE * FROM table;
【答案】A
【解析】SELECT * FROM table语句用于查询表中的所有数据。
10.在SQLite3中,用于按照指定字段升序排列查询结果的SQL语句( )。
A. SELECT * FROM table ORDER BY field ASC;
B. SELECT * FROM table ORDER BY field DESC;
C. SELECT * FROM table SORT BY field ASC;
D. SELECT * FROM table SORT BY field DESC;
【答案】A
【解析】ORDER BY field ASC子句用于按照指定字段升序排列查询结果。
二、填空题
1.在SQLite3中,用于连接数据库的方法是______。
【答案】connect()
【解析】使用sqlite3.connect('database_name')可以连接到指定的SQLite数据库,如果数据库不存在,则会创建一个新的数据库。
2.在SQLite3中,创建游标对象的方法是______。
【答案】cursor()
【解析】通过调用数据库连接对象的cursor()方法来创建游标对象,游标对象用于执行SQL语句。
3.在SQLite3中,提交数据库更改的方法是______。
【答案】commit()
【解析】调用数据库连接对象的commit()方法可以提交事务,使对数据库的更改永久生效。
4.在SQLite3中,关闭数据库连接的方法是______。
【答案】close()
【解析】调用数据库连接对象的close()方法可以关闭数据库连接,释放资源。
5.在SQLite3中,执行SQL语句的方法是______。
【答案】execute()
【解析】通过游标对象的execute()方法可以执行SQL语句,例如创建表、插入数据等。
6.在SQLite3中,用于获取查询结果中所有行的方法是______。
【答案】fetchall()
【解析】游标对象的fetchall()方法可以获取查询结果中的所有行,返回一个列表。
7.在SQLite3中,用于获取查询结果中下一行的方法是______。
【答案】fetchone()
【解析】游标对象的fetchone()方法可以获取查询结果中的下一行,返回一个元组。
8.在SQLite3中,创建表的SQL语句是______。
【答案】CREATE TABLE
【解析】使用CREATE TABLE语句可以创建一个新的数据库表,指定表名和各列的数据类型等。
9.在SQLite3中,插入数据的SQL语句是______。
【答案】INSERT INTO
【解析】使用INSERT INTO语句可以向表中插入新的数据行,指定各列的值。
10.在SQLite3中,更新数据的SQL语句是______。
【答案】UPDATE...SET...
【解析】使用UPDATE语句可以更新表中的现有数据,SET子句指定要修改的列和新值,WHERE子句指定更新的条件。
三、综合应用题
1. 连接数据库“index.db”,创建数据表“stu”,此表中有两个字段,分别为学号、成绩。学号为整数,成绩为浮点数,并且学号为主键。(注:编写的程序文件与题中涉及的相关文件,都在同一层级的文件夹中)
【答案】
import sqlite3
conn=sqlite3.connect('index.db')
cur=conn.cursor()
cur.execute('create table stu(学号 integer primary key,成绩 real)')
conn.commit()
cur.close()
conn.close()
【解析】
导入模块:首先需要导入sqlite3模块。
连接数据库:使用sqlite3.connect('index.db.db')连接到数据库。如果数据库不存在,该方法会创建一个新数据库。
创建游标:通过连接对象的cursor()方法创建游标对象,用于执行SQL语句。
执行SQL语句:使用cursor.execute()方法执行SQL语句。在这里,需要执行CREATE TABLE语句来创建表。
提交更改:使用连接对象的commit()方法提交更改,确保数据持久化。
关闭连接:最后,使用conn.close()关闭数据库连接,释放资源。
2. 编程实现下列功能,连接数据库文件"test.db",在数据库文件"test.db"中创建"学生信息"数据表,此表有三列,列名、数据类型对应如下:(学号,字符串),(姓名,字符串),(成绩,浮点数)。然后在"学生信息"数据表中依次添加多条数据记录,添加的多条数据记录依次为"D2025100郭亮亮749.2""D2025101 张静600.3""D2025102 田飞 640.9"和"D2025103李子豪510.7"。由于信息有误,现将学号为"D2025100"的成绩更正为709.2。(注:编写的程序文件与题中涉及的相关文件都处在同一层级的文件夹中)
【答案】
import sqlite3
conn=sqlite3.connect('test.db')
cur=conn.cursor()
cur.execute('create table if not exists 学生信息(学号 text,姓名 text,成绩 real)')
datas=[('D2025100','郭亮亮',749.2),('D2025101','张静',600.3),('D2025102','田飞',640.9),('D2025103','李子豪',510.7)]
cur.executemany('insert into 学生信息 values(?,?,?)',datas)
cur.execute('update 学生信息 set 成绩=709.2 where 学号="D2025100"')
conn.commit() # 提交
cur.close()
conn.close()
【解析】
导入模块:首先需要导入sqlite3模块。
连接数据库:使用sqlite3.connect('test.db')连接到数据库文件。如果文件不存在,该方法会创建一个新数据库文件。
创建游标:通过连接对象的cursor()方法创建游标对象,用于执行SQL语句。
创建表:使用CREATE TABLE IF NOT EXISTS语句创建表,确保如果表已经存在,则不会重新创建。
插入数据:使用INSERT INTO语句向表中插入数据。可以使用参数化查询来避免SQL注入问题。
更新数据:使用UPDATE语句更新指定条件下的数据。
提交更改:使用连接对象的commit()方法提交更改,确保数据持久化。
关闭连接:最后,使用conn.close()关闭数据库连接,释放资源。
学科网(北京)股份有限公司
$$
专题十七 sqlite3数据库
一、单项选择题
1.在SQLite3中,用于删除表的SQL语句是( )。
A. DELETE TABLE table;
B. DROP TABLE table;
C. REMOVE TABLE table;
D. ERASE TABLE table;
2.在SQLite3中,用于存储文本字符串的数据类型是( )。
A. int
B. text
C. real
D. blob
3.在SQLite3中,用于获取下一行查询结果的方法是( )。
A. fetchone()
B. fetchall()
C. fetchnext()
D. fetchrow()
4.在SQLite3中,用于修改表结构的SQL语句的是( )。
A. ALTER TABLE table ADD column;
B. CHANGE TABLE table;
C. MODIFY TABLE table;
D. UPDATE TABLE table;
5.在SQLite3中,用于回滚事务的方法是( )。
A. commit()
B. rollback()
C. undo()
D. revert()
6.在SQLite3中,用于删除表中的所有数据的SQL语句( )。
A. DELETE * FROM table;
B. TRUNCATE TABLE table;
C. CLEAR TABLE table;
D. REMOVE ALL FROM table;
7.在SQLite3中,用于执行SQL语句的方法是( )。
A. execute()
B. run()
C. query()
D. sql()
8.在SQLite3中,用于创建表的SQL语句( )。
A. CREATE TABLE table (columns);
B. MAKE TABLE table (columns);
C. NEW TABLE table (columns);
D. BUILD TABLE table (columns);
9.在SQLite3中,用于查询表中的所有数据的SQL语句( )。
A. SELECT * FROM table;
B. GET * FROM table;
C. FIND * FROM table;
D. RETRIEVE * FROM table;
10.在SQLite3中,用于按照指定字段升序排列查询结果的SQL语句( )。
A. SELECT * FROM table ORDER BY field ASC;
B. SELECT * FROM table ORDER BY field DESC;
C. SELECT * FROM table SORT BY field ASC;
D. SELECT * FROM table SORT BY field DESC;
二、填空题
1.在SQLite3中,用于连接数据库的方法是______。
2.在SQLite3中,创建游标对象的方法是______。
3.在SQLite3中,提交数据库更改的方法是______。
4.在SQLite3中,关闭数据库连接的方法是______。
5.在SQLite3中,执行SQL语句的方法是______。
6.在SQLite3中,用于获取查询结果中所有行的方法是______。
7.在SQLite3中,用于获取查询结果中下一行的方法是______。
8.在SQLite3中,创建表的SQL语句是______。
9.在SQLite3中,插入数据的SQL语句是______。
10.在SQLite3中,更新数据的SQL语句是______。
三、综合应用题
1. 连接数据库“index.db”,创建数据表“stu”,此表中有两个字段,分别为学号、成绩。学号为整数,成绩为浮点数,并且学号为主键。(注:编写的程序文件与题中涉及的相关文件,都在同一层级的文件夹中)。
2. 编程实现下列功能,连接数据库文件"test.db",在数据库文件"test.db"中创建"学生信息"数据表,此表有三列,列名、数据类型对应如下:(学号,字符串),(姓名,字符串),(成绩,浮点数)。然后在"学生信息"数据表中依次添加多条数据记录,添加的多条数据记录依次为"D2025100郭亮亮749.2""D2025101 张静600.3""D2025102 田飞 640.9"和"D2025103李子豪510.7"。由于信息有误,现将学号为"D2025100"的成绩更正为709.2。(注:编写的程序文件与题中涉及的相关文件都处在同一层级的文件夹中)。
学科网(北京)股份有限公司
$$