一、如何进入sqlite3交互模式进行命令操作?
1、确认sqlite3是否已经安装
进去python命令行,执行
- >>>importsqlite3
- >>>
没有报错,说明sqlite3已经成功安装了
2、如何进入sqlite3命令行
- sqlite3/path/to/dbname
3、.tables :查看所有表
- sqlite>.tables
- auth_groupdjango_content_type
- auth_group_permissionsdjango_migrations
- auth_permissiondjango_session
- auth_userucloud_project
- auth_user_groupsucloud_region
- auth_user_user_permissionsucloud_uhost
- django_admin_logucloud_zone
4、查询表中总的数据条目数
- selectcount()fromTableName;
例如:
5、执行多条查询语句
- sqlite>select
- ...>(selectcount(1)fromucloud_uhost)asuhost,...>(selectcount(1)fromucloud_project)asproject,...>(selectcount(1)fromucloud_region)asregion
- ...>;
- 147|10|8
6、格式化输出
您可以使用下列的点命令来格式化输出为本教程下面所列出的格式:
sqlite>.headeron sqlite>.modecolumn sqlite>.timeron sqlite>
更多命令查看:
http://www.runoob.com/sqlite/sqlite-commands.html
python执行sqlite命令的流程:
创建或打开数据库文件,如果数据库文件不存在,则创建,存在,则打开该文件。cx为数据库连接对象,它可以有以下操作: commit()--事务提交 rollback()--事务回滚 close()--关闭一个数据库连接 cursor()--创建一个游标
- 2、cursor=cx.cursor()
定义了一个游标。游标对象有以下的操作: execute()--执行sql语句 executemany--执行多条sql语句 close()--关闭游标 fetchone()--从结果中取一条记录 fetchmany()--从结果中取多条记录 fetchall()--从结果中取出多条记录 scroll()--游标滚动 关于对象的方法可以去 Python 主页上查看DB API的详细文档
- 3、cursor.execute("""
- ...select
- ...(selectcount(1)fromucloud_uhost)asuhost
- ...""")
- 4、cursor.close()
关闭游标
下面是操作数据库的过程
- >>>importsqlite3
- >>>fromdjango.dbimportconnections
- cx=sqlite3.connect("/Users/cengchengpeng/Downloads/django_test/cmdb/db.sqlite3")
- cursor=cx.cursor()
- >>>cursor
- <sqlite3.Cursorobjectat0x10b24cb20>
- >>>cursor.execute("""
- ...select
- ...(selectcount(1)fromucloud_uhost)asuhost,...(selectcount(1)fromucloud_project)asproject,...(selectcount(1)fromucloud_zone)aszone
- ...""")
- <sqlite3.Cursorobjectat0x10b24cb20>
- >>>cursor.description
- (('uhost',None,None),('project',('zone',None))
- >>>columns=[_[0].lower()for_incursor.description]
- >>>columns
- ['uhost','project','zone']
- >>>for_incursor:
- ...print_
- ...
- (147,10,11)
- >>>results=[dict(zip(columns,_))for_incursor]
- >>>results
- >>>results
- [{'project':10,'zone':11,'uhost':147}]
- >>>cursor.close()
写python脚本,来执行sqlite语句