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,如需转载请自行联系原作者

目录
相关文章
|
6天前
|
存储 数据处理 数据库
深入了解达梦数据库的增删查改操作:从入门到精通
深入了解达梦数据库的增删查改操作:从入门到精通
|
14天前
|
DataWorks 关系型数据库 调度
DataWorks操作报错合集之DataWorks 数据库同步任务中,如果遇到表情符报错的现象,怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 0
|
14天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 0
|
3天前
|
数据库 数据库管理 关系型数据库
|
4天前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
6天前
|
SQL Java 数据库连接
Java数据库编程实践:连接与操作数据库
Java数据库编程实践:连接与操作数据库
9 0
|
8天前
|
SQL JSON 关系型数据库
[UE虚幻引擎插件DTPostgreSQL] PostgreSQL Connector 使用蓝图连接操作 PostgreSQL 数据库说明
本插件主要是支持在UE蓝图中连接和操作PostgreSQL 数据库。
17 2
|
12天前
|
Java 关系型数据库 数据库连接
【C 言专栏】C 语言与数据库的连接与操作
【5月更文挑战第2天】本文探讨了C语言如何连接和操作数据库,介绍了数据库连接的基本原理,如通过ODBC、JDBC或原生接口与数据库交互。文章详细阐述了使用ODBC连接的步骤,并列举了C语言在数据库操作中的常见任务,强调了错误处理、数据类型匹配和性能优化的重要性。通过实际案例,展示了在学生信息管理系统中应用C语言与数据库交互的过程。本文旨在帮助读者更好地理解和应用C语言进行数据库管理。
|
14天前
|
XML Java 数据库连接
Springboot整合mybatisPlus操作数据库
MyBatis-Plus是MyBatis的增强工具,简化开发、提高效率。它提供官网文档,便于集成到SpringBoot项目中。集成步骤包括添加mybatis-plus-boot-starter和数据库驱动依赖,配置数据源,扫描Mapper类包。Mapper接口继承BaseMapper即可使用基本的CRUD操作。示例代码展示了Service层的增删改查实现。MyBatisPlus还支持逻辑删除、自动填充等功能,同时可与Mybatis XML配合使用,通过调整配置指定XML映射文件位置。
|
14天前
|
关系型数据库 MySQL Go
数据库的事务操作
数据库的事务操作