import sqlite3def create_table(): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS customers (id INTEGER PRIMARY KEY, name TEXT, age INTEGER, gender TEXT, balance INTEGER)''') c.execute('''CREATE TABLE IF NOT EXISTS computers (id INTEGER PRIMARY KEY, brand TEXT, model TEXT, status TEXT)''') conn.commit() conn.close()def add_customer(name, age, gender, balance): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''INSERT INTO customers(name, age, gender, balance) VALUES (?, ?, ?, ?)''', (name, age, gender, balance)) conn.commit() conn.close()def get_customers(): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''SELECT * FROM customers''') customers = c.fetchall() conn.close() return customersdef delete_customer(customer_id): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''DELETE FROM customers WHERE id=?''', (customer_id,)) conn.commit() conn.close()def add_computer(brand, model, status): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''INSERT INTO computers(brand, model, status) VALUES (?, ?, ?)''', (brand, model, status)) conn.commit() conn.close()def get_computers(): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''SELECT * FROM computers''') computers = c.fetchall() conn.close() return computersdef delete_computer(computer_id): conn = sqlite3.connect('cybercafe.db') c = conn.cursor() c.execute('''DELETE FROM computers WHERE id=?''', (computer_id,)) conn.commit() conn.close()if __name__ == '__main__': create_table()
时间: 2024-01-07 11:03:56 浏览: 106
这是一个Python程序,用于创建和管理一个名为cybercafe.db的SQLite数据库,其中包含两个表:customers和computers。下面是各个函数的功能:
- create_table(): 创建两个表,如果它们不存在。
- add_customer(name, age, gender, balance): 向customers表中添加一行,包含一个姓名、年龄、性别和余额字段。
- get_customers(): 获取customers表中的所有行。
- delete_customer(customer_id): 从customers表中删除指定id的行。
- add_computer(brand, model, status): 向computers表中添加一行,包含品牌、型号和状态字段。
- get_computers(): 获取computers表中的所有行。
- delete_computer(computer_id): 从computers表中删除指定id的行。
如果这个程序被当做主程序运行,它会调用create_table()函数来创建表。
相关问题
conn = sqlite3.connect('main.db', check_same_thread=False) cur = conn.cursor()
这是一个 Python 中使用 sqlite3 模块连接到名为 main.db 的 SQLite 数据库的代码。check_same_thread=False 参数表示允许多个线程同时访问数据库。cur = conn.cursor() 则是创建了一个游标对象,用于执行 SQL 查询和操作。
sqlite3中 conn=sqlite3.connect conn.text_factory=str
在SQLite3的Python模块中,可以使用`sqlite3.connect()`方法连接到SQLite数据库,并可以在连接对象上设置一些属性。其中,`text_factory`就是一个属性,用于指定在读取字符串类型数据时应该使用的文本编码格式。
默认情况下,Python的SQLite3模块会尝试使用系统默认的文本编码格式来解码读取的字符串数据。但是,如果数据库中包含非ASCII字符,或者使用了非标准的字符编码,那么读取的字符串数据可能会出现乱码。为了解决这个问题,可以通过设置`text_factory`属性来指定使用的文本编码格式。
以下是一个示例代码,演示如何在连接对象上设置`text_factory`属性:
```python
import sqlite3
conn = sqlite3.connect('example.db')
conn.text_factory = str
```
在这个例子中,我们创建了一个名为example.db的SQLite数据库,并将其连接到Python中的conn变量。然后,我们将`text_factory`属性设置为Python内置的`str`类型,以使用默认的文本编码格式来读取字符串数据。这样,我们就可以在读取字符串数据时避免出现乱码。
阅读全文