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( 1 from  ucloud_uhost) as uhost,
    ...> (select count( 1 from  ucloud_project) as project,
    ...> (select count( 1 from  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' None None None None None None ), ( 'project' None None None None None None ), ( 'zone' None None None None None None ))
>>> columns  =  [_[ 0 ].lower()  for  in  cursor.description]
>>> columns
[ 'uhost' 'project' 'zone' ]
>>>  for  in  cursor:
...      print  _
... 
( 147 10 11 )
>>> 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,如需转载请自行联系原作者

目录
相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
14 0
|
28天前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
167 0
|
1月前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
6天前
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
16 0
|
8天前
|
关系型数据库 API 数据库
Django中的数据库事务管理:确保数据一致性
【4月更文挑战第15天】Django框架提供强大的数据库事务管理,确保ACID属性,保证数据一致性和完整性。文章深入讨论了Django事务管理,包括使用`@transaction.atomic`装饰器和`transaction.atomic()`上下文管理器手动控制事务,以及低级API进行精细管理。注意避免长时间事务、选择合适隔离级别、正确处理异常及了解数据库特性。掌握这些技巧对构建可靠Web应用至关重要。
|
10天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
11天前
|
关系型数据库 MySQL 数据库连接
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
33 11
|
14天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
1月前
|
Shell Linux 数据库
【Shell 命令集合 网络通讯 】Linux 更新邮件别名数据库 newaliases命令 使用指南
【Shell 命令集合 网络通讯 】Linux 更新邮件别名数据库 newaliases命令 使用指南
29 1
|
1月前
|
监控 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
30 0