- 连接
import sqlite3
#连接数据库
database = sqlite3.connect('database.db')
#获取数据库指针
cur = database.cursor()
#执行SQL指令
res = cur.execute(sql).fetchall()
- 提交
程序运行过程出现异常前,如果没有提交,则前面的更改会回溯到变更前状态
database.commit()
- 断开
database.close()
- SQL命令
方法一:
利用字符串format方法实现变量替换
方法二:
利用占位符实现变量替换
sql = "select col_name1,col_name2 from ? where col_name1 = ?"
cur = database.cursor()
cur.execute(sql,[param1,param2])
#有名占位符
sql = "select :col1,:col2 from :table_name"
cur.execute(sql,{'col1':p1,'col2':p2,'table_name':p3})
- 增
5.1 创建表
#创建表格
cur = database.cursor()
sql = "create table [if not exists] table_name (col_name1 [data_type] [default default_value],col_name2,...)
cur.execute(sql)
5.2 添加行
#列名可选,如不写列名,则数值与列名一一对应
sql = "insert into table_name [(col_name1,col_name2...)] values (col1,col2...)"
5.3 新增列
sql = "alter table table_name add column col_name [datatype] [default default_value]"
- 删
6.1 删除表
sql = "DROP TABLE IF EXISTS table_name"
6.2 删除行
sql = ("DELETE FROM table_name
WHERE rowid = del_id",)
res = cur.execute(sql[0])
6.3 删除列
sql = ("ALTER TABLEtable_name
DROP COLUMN column_name",)
res = cur.execute(sql[0])
- 改
sql = ("UPDATE table_name
SET col_name = change_value",)
res = cur.execute(sql[0])
后面可增加条件更改特定行,没有条件则更改所有行
8. 查
sql = ("SELECT *
FROM logger
--筛选条件
WHERE timestamp > '2023-10-19 00:00:00.000'
--按value分组
GROUP BY value
--按timestamp排序
ORDER BY timestamp
--从筛选结果的第3行筛选10行数据
LIMIT 10 OFFSET 2",)
SELECT为SQL中最常用语句,上面示例为最基础应用。其中‘–’为注释