查看版本 sqlite3 -version
打开或创建数据库 sqlite3 test.db
查看数据库信息 sqlite>.database 查看所有表 sqlite>.table 查看所有表的创建语句: sqlite>.schema 查看某个表的创建语句: sqlite>.schema table_name 最重要的一个命令,执行sql语句(必须以分号结尾,不加分号就敲回车则是分行) sqlite>select * from table_name; 退出SQLite sqlite>.qui
SQLite清空表并将自增列归零当 SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。这个表包含两个列:name和seq。name记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。如果想把某个自增列 的序号归零,只需要修改 sqlite_sequence表就可以了。
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'TableName';也可以直接把该记录删掉:
DELETE FROM sqlite_sequence WHERE name = 'TableName';要想将所有表的自增列都归零,直接清空sqlite_sequence表就可以了:
DELETE FROM sqlite_sequence;使用drop语句删除一个表,然后重新创建表,表的主键也会重新生成。
drop table tablename
使用sqlite语句导出数据生成csv文件 #多表联查 select A.id text_id, A.created_at, A.updated_at, A.text text, C.text label, D.username from api_document A inner join api_documentannotation B on A.id = B.document_id inner join api_label C on C.id = B.label_id inner join auth_user D on B.user_id = D.id order by A.id;加入拆分字段的代码语句(sqlite不能用!!!!):
select A.id, A.created_at,A.updated_at, substring_index(A.text,'+',1) url_id, substring_index(substring_index(A.text,'+',2),'+',-1) url, substring_index(A.text,'+',-1) html_content, C.text, D.username from api_document A inner join api_documentannotation B on A.id = B.document_id inner join api_label C on C.id = B.label_id inner join auth_user D on B.user_id = D.id order by A.id;要将数据从SQLite数据库导出到CSV文件,请使用以下步骤:
1.使用.headeron命令打开结果集的标题。
2.将输出模式设置为CSV。
3.选择要输出的表。
4.将输出发送到CSV文件。
代码如下
// 打开sqlte的数据库文件 >sqlite3 xxx.db ? sqlite> .headers on sqlite> .mode csv sqlite> .output data.csv ? //可自定义路径 sqlite> SELECT * FROM table_name; sqlite> .output stdout // 输出重定向如果不打.header on这行代码,则输出的文件没有标题栏。
或者直接使用:
>sqlite3 -header -csv doccano.db "select A.id, A.text, A.created_at, A.updated_at, C.text, D.username from api_document A inner join api_documentannotation B on A.id = B.document_id inner join api_label C on C.id = B.label_id inner join auth_user D on B.user_id = D.id order by A.id;" > /home/clm/data_1.csv >sqlite3 -header -csv xxx.db "select * from table_name;" > data.csv Python 操作sqlite3SQLite 常用函数
SQLite 提供了一些内置函数,也就是我们可以直接使用的函数,下面来看一下。
使用示例如下所示:
SELECT COUNT(*) FROM table; SELECT MAX/MIN/AVG/SUM/ABS/UPPER/LOWER/LENGTH(col) FROM table; SELECT random() AS Random; SELECT sqlite_version() AS 'SQLite Version';基本使用
1 连接数据库(进入数据库所在路径下)
# 导入模块 import sqlite3 # 连接数据库 conn = sqlite3.connect('doccano.db')如果数据库不存在,则会自动被创建。
2 游标
连接数据库后,我们需要使用游标进行相应 SQL 操作,游标创建如下所示:
# 创建游标 cs = conn.cursor()3 创建表
我们在 test.db 库中新建一张表 student,如下所示:
# 创建表 cs.execute('''CREATE TABLE student ? ? ? (id varchar(20) PRIMARY KEY, ? ? ? name varchar(20));''') # 关闭 Cursor cs.close() # 提交当前事务 conn.commit() # 关闭连接 conn.close()4 新增
我们向 student 表中插入两条数据,如下所示:
cs.execute("INSERT INTO student (id, name) VALUES ('1', 'Jhon')") cs.execute("INSERT INTO student (id, name) VALUES ('2', 'Alan')") cs.execute("INSERT INTO student (id, name) VALUES ('3', 'Bob')") cs.close() conn.commit() conn.close()5 查询
前面我们是通过 SQLiteStudio 查看数据的,现在我们通过 SQL 查看一下,如下所示:
# 导入模块 import sqlite3 # 连接数据库 conn = sqlite3.connect('doccano.db') # 创建游标 cs = conn.cursor() # 查询数据 cs.execute("SELECT id, text FROM api_label").fetchall() # 获取查询结果集中的下一行 print('fetchone-->', cs.fetchone()) # 获取查询结果集中的下一行组 print('fetchmany-->', cs.fetchmany()) # 获取查询结果集中所有(剩余)的行 print('fetchall-->', cs.fetchall()) cs.close() conn.close()输出结果:
fetchone--> ('1', 'Jhon') fetchmany--> [('2', 'Alan')] fetchall--> [('3', 'Bob')]6 更新
我们修改 id 为 1 这条数据的 name 值,如下所示:
# 导入模块 import sqlite3 # 连接数据库 conn = sqlite3.connect('doccano.db') # 创建游标 cs = conn.cursor() # 修改数据 cs.execute("SELECT id, text FROM api_label WHERE id = '12'") print('修改前-->', cs.fetchall()) cs.execute("UPDATE api_label set text = '涉贷' WHERE id = '12'") cs.execute("SELECT id, text FROM api_label WHERE id = '12'") print('修改后-->', cs.fetchall()) conn.commit() cs.close() conn.close()输出结果:
修改前--> [('1', 'Jhon')] 修改后--> [('1', 'Nicolas')]7 删除
我们删除 id 为 1 这条数据,如下所示:
# 导入模块 import sqlite3 # 连接数据库 conn = sqlite3.connect('doccano.db') # 创建游标 cs = conn.cursor() # 删除 cs.execute("SELECT id, text FROM api_label") print('删除前-->', cs.fetchall()) cs.execute("DELETE FROM api_label WHERE id = '12'") cs.execute("SELECT id, text FROM api_label") print('删除后-->', cs.fetchall()) conn.commit() cs.close() conn.close()输出结果:
删除前--> [('2', 'Alan'), ('1', 'Jhon')] 删除后--> [('2', 'Alan')]
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #Linux #Python #sqlite3 #查看版本 #version打开或创建数据库 #testdb查看数据库信息