一、如何进入sqlite3交互模式进行命令操作?
1、确认sqlite3是否已经安装
进去python命令行,执行
>>>importsqlite3 >>>
没有报错,说明sqlite3已经成功安装了
2、如何进入sqlite3命令行
sqlite3/path/to/dbname
~sqlite3~/Downloads/django_test/cmdb/db.sqlite3 sqlite3sqliteversion3.14.02016-07-2615:17:14 Enter".help"forusagehints. sqlite>
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;
例如:
sqlite>selectcount()fromucloud_zone; 11 sqlite>selectcount()fromucloud_uhost; 147 sqlite>selectcount()fromucloud_project; 10
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命令的流程:
1、cx=sqlite3.connect("db.sqlite3)
创建或打开数据库文件,如果数据库文件不存在,则创建,存在,则打开该文件。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语句
#coding:utf-8 fromdjango.dbimportconnections defopen_sql_dict(sql,connection_name='default'): dbs=connections[connection_name] cursor=dbs.cursor() cursor.execute(sql) columns=[_[0].lower()for_incursor.description] results=[dict(zip(columns,_))for_incursor] cursor.close() returnresults