无论你学任何编程语言,数据库都必须要学会,否则你的数据存在哪,总不能用手端着吧?数据库是“按照数据结构来组织、存储和管理数据的仓库”,它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
中小型企业用得较多的是Sql Server和MySql数据库,大型企业用得较多的是Oracle数据库。在平时开发单机软件时,大多数人会选择用SQLite数据库。
SQLite是一个无服务器、零配置的SQL 数据库引擎,是在世界上最广泛部署的 SQL 数据库引擎它的源代码不受版权限制。智能手机(Android或iPhone)本地内置支持的数据库就是SQLite。Python内置就提供了对SQLite3数据库操作的支持,在代码中直接导入即可使用。
1. 创建数据库和表
引入sqlite开发包,用connect打开(不存在就创建)数据库文件,创建游标cursor,执行Sql语句。
import sqlite3 # 创建一个数据库 conn = sqlite3.connect("sales.db") # 创建游标 cursor = conn.cursor() # 执行语句创建表的语句 createTable = "Create Table Customer(id int, name text, address text)" cursor.execute(createTable) # 关闭数据库的链接 cursor.close()
输出结果(sales.db文件内容)
2. 插入数据
可单条或批量插入数据。记得加上conn.commit()进行命令提交。
import sqlite3 # 创建一个数据库 conn = sqlite3.connect("sales.db") # 创建游标 cursor = conn.cursor() # 添加单条数据 data = "1,‘高科技企业‘,‘青藏高原1号1路222‘" cursor.execute(‘INSERT INTO Customer VALUES (%s)‘ % data) # 添加单条数据 cursor.execute("INSERT INTO Customer values(?,?,?)", (2, "高高在上科技", "黄土高坡3号3单元")) # 添加多条数据 cursor.executemany(‘INSERT INTO Customer VALUES (?,?,?)‘, [(3, "牛逼公司", "在最牛的9栋9单元上"), (4, "真的好科技无限公司", "在一个无人知道的地方")]) conn.commit() # 关闭数据库的链接 cursor.close() conn.close()
输出结果
3. 修改数据
修改单行数据时,用id指定。修改全部时,可去掉where语句。
import sqlite3 # 创建一个数据库 conn = sqlite3.connect("sales.db") # 创建游标 cursor = conn.cursor() # 方式一 cursor.execute("UPDATE Customer SET name=? WHERE id=?", ("吹牛皮企业", 1)) # 方式二 cursor.execute("UPDATE Customer SET name=‘这里有家皮包公司‘ WHERE id=2") conn.commit() # 关闭数据库的链接 cursor.close() conn.close()
输出结果(第1和第2条记录的客户名称name被修改了)
4. 删除数据
用where指定删除行的id,如果不指定,将删除全部,这个要注意。
import sqlite3 # 创建一个数据库 conn = sqlite3.connect("sales.db") # 创建游标 cursor = conn.cursor() # 方式一 cursor.execute("DELETE FROM Customer WHERE id=?", (1,)) # 方式二 cursor.execute("DELETE FROM Customer WHERE id=2") conn.commit() # 关闭数据库的链接 cursor.close() conn.close()
输出结果(第1和第2条记录被删除了)
......