开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

sqlite3常用命令以及django如何操作sqlite3数据库

简介:
+关注继续查看

一、如何进入sqlite3交互模式进行命令操作?

1、确认sqlite3是否已经安装

进去python命令行,执行

1
2
>>> import sqlite3
>>>

没有报错,说明sqlite3已经成功安装了


2、如何进入sqlite3命令行

1
sqlite3 /path/to/dbname

直接执行sqlite3 加数据库名即可

1
2
3
4
 ~ sqlite3 ~/Downloads/django_test/cmdb/db.sqlite3 
sqlite3SQLite version 3.14.0 2016-07-26 15:17:14
Enter ".help" for usage hints.
sqlite>


3、.tables :查看所有表

1
2
3
4
5
6
7
8
sqlite> .tables
auth_group                  django_content_type       
auth_group_permissions      django_migrations         
auth_permission             django_session            
auth_user                   ucloud_project            
auth_user_groups            ucloud_region             
auth_user_user_permissions  ucloud_uhost              
django_admin_log            ucloud_zone


4、查询表中总的数据条目数

1
select count() from TableName;

例如:

1
2
3
4
5
6
sqlite> select count() from ucloud_zone;
11
sqlite> select count() from ucloud_uhost;
147
sqlite> select count() from ucloud_project;
10


5、执行多条查询语句

1
2
3
4
5
6
sqlite> select
   ...> (select count(1from ucloud_uhost) as uhost,
   ...> (select count(1from ucloud_project) as project,
   ...> (select count(1from ucloud_region) as region
   ...> ;
147|10|8


6、格式化输出

您可以使用下列的点命令来格式化输出为本教程下面所列出的格式:

sqlite>.header on
sqlite>.mode column
sqlite>.timer on
sqlite>


更多命令查看:

http://www.runoob.com/sqlite/sqlite-commands.html




二、python如何执行sqlite查询命令

python执行sqlite命令的流程:

1
1、cx = sqlite3.connect("db.sqlite3)

创建或打开数据库文件,如果数据库文件不存在,则创建,存在,则打开该文件。cx为数据库连接对象,它可以有以下操作: commit()--事务提交 rollback()--事务回滚 close()--关闭一个数据库连接 cursor()--创建一个游标


1
2、cursor = cx.cursor()

定义了一个游标。游标对象有以下的操作: execute()--执行sql语句 executemany--执行多条sql语句 close()--关闭游标 fetchone()--从结果中取一条记录 fetchmany()--从结果中取多条记录 fetchall()--从结果中取出多条记录 scroll()--游标滚动 关于对象的方法可以去 Python 主页上查看DB API的详细文档


1
2
3
4
3、 cursor.execute("""
... select
... (select count(1) from ucloud_uhost) as uhost
... """)

cursor.execute(sql语句)是执行sql语句


1
4、cursor.close()

关闭游标


下面是操作数据库的过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
>>> import sqlite3
>>> from django.db import connections
cx = sqlite3.connect("/Users/cengchengpeng/Downloads/django_test/cmdb/db.sqlite3")
cursor = cx.cursor()
>>> cursor
<sqlite3.Cursor object at 0x10b24cb20>
>>> cursor.execute("""
... select
... (select count(1) from ucloud_uhost) as uhost,
... (select count(1) from ucloud_project) as project,
... (select count(1) from ucloud_zone) as zone
... """)
<sqlite3.Cursor object at 0x10b24cb20>
>>> cursor.description
(('uhost'NoneNoneNoneNoneNoneNone), ('project'NoneNoneNoneNoneNoneNone), ('zone'NoneNoneNoneNoneNoneNone))
>>> columns = [_[0].lower() for in cursor.description]
>>> columns
['uhost''project''zone']
>>> for in cursor:
...     print _
... 
(1471011)
>>> results = [dict(zip(columns, _)) for in cursor]
>>> results
>>> results
[{'project'10'zone'11'uhost'147}]
>>> cursor.close()




写python脚本,来执行sqlite语句

1
2
3
4
5
6
7
8
9
10
11
#coding:utf-8
from django.db import connections
 
def open_sql_dict(sql, connection_name='default'):
    dbs = connections[connection_name]
    cursor = dbs.cursor()
    cursor.execute(sql)
    columns = [_[0].lower() for in cursor.description]
    results = [dict(zip(columns, _)) for in cursor]
    cursor.close()
    return results


这里脚本里面,用到了zip()方法和dict()方法











本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1904680,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Django学习笔记 - 11】:模板的继承、模型类和数据库
【Django学习笔记 - 11】:模板的继承、模型类和数据库
0 0
django数据库报错汇总:django.db.utils.OperationalError 1045,1049,2003
django数据库报错汇总:django.db.utils.OperationalError 1045,1049,2003
0 0
【Django | 开发】 面试招聘信息网站(为已有数据库生成管理后台)
【Django | 开发】 面试招聘信息网站(为已有数据库生成管理后台)
0 0
Django-Multitenant,分布式多租户数据库项目实战(Python/Django+Postgres+Citus)
Django-Multitenant,分布式多租户数据库项目实战(Python/Django+Postgres+Citus)
0 0
【Django框架】学习及其【数据库对接技术】 学习&&开发笔记【入门篇】
【Django框架】学习及其【数据库对接技术】 学习&&开发笔记【入门篇】
0 0
django models进行数据库增删查改
django models进行数据库增删查改
0 0
Django启航(四)Django配置数据库
Django启航(四)Django配置数据库
0 0
HelloDjango 系列教程:Django 迁移、操作数据库
HelloDjango 系列教程:Django 迁移、操作数据库 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建。
688 0
Django数据库基础操作
主键: 是唯一的,通过主键可以准确的找到对应的数据,主键默认非空,为空时自动增长准备sqlite语句: db=sqlite3.connect('xxxxx.db') 创建表格文件: cerate table 表名(字段1名称 字段1类型,字段2名称 字段2类型),例: sql='cerate ta...
443 0
Django搭建服务器,并将数据库中的数据解析为json格式显示在web
Django搭建服务器,并将数据库中的数据解析为json格式显示在web前言编译器 pycharm,环境python3.7、django为最新版本;下载安装python、django(个人认为在cmd用pip下载最好,因人而异,这个下载安装模块比较简单,网上教程很多可以自己来。
1396 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
数据库2025 V3
立即下载
Oracle 数据库笔记
立即下载
阿里云数据库案例集下载
立即下载