对于数据库的操做,Python中能够经过下载一些对应的三方插件和对应的数据库来实现数据库的操做,可是这样难免使得Python程序变得更加复杂了。若是只是想要使用数据库,又不想下载一些没必要要的插件和辅助软件,可使用Python内置模块sqlite3。html
sqlite3是Python对于sqlite数据库的支持,模块名称之因此是sqlite3而不是sqlite,是由于sqlite的版本中最流行的就是3.x的版本。sql
sqlite数据库教程:http://www.runoob.com/sqlite/sqlite-intro.html数据库
sqlite GUI软件SQLiteSpy:https://www.yunqa.de/delphi/products/sqlitespy/index,数据库的可视化管理工具备不少,你也能够选择其余的软件,可是SQLiteSpy这个软件免费并且很是小,对于日常的sqlite数据库操做其实已经能够知足了。工具
经常使用API(方括号中为可选参数)fetch
简单示例:spa
# -*- coding:utf-8 -*- import sqlite3 # 数据库文件 db = 'sqlite_test.db' # 链接数据库,若是没有则建立数据库 conn = sqlite3.connect(db) # 获取游标 csr = conn.cursor() # 建立表STUDENTS csr.execute('CREATE TABLE STUDENTS' '(ID INT PRIMARY KEY NOT NULL,' 'NAME TEXT NOT NULL,' 'AGE INT NOT NULL);') # 插入一条数据 csr.execute('INSERT INTO STUDENTS VALUES(1, "Jason", 18)') # 插入语句sql,并使用占位符 insert_sql = 'INSERT INTO STUDENTS VALUES(?, ?, ?)' # 须要批量插入的数据 students_info = [(2, 'Mickle', 20), (3, 'Mary', 30), (4, 'Bob', 40)] # 批量插入数据 csr.executemany(insert_sql, students_info) # 提交事务 conn.commit() # 获取一行数据 # datas = csr.execute('SELECT * FROM STUDENTS;').fetchone() # 获取2行数据 # datas = csr.execute('SELECT * FROM STUDENTS;').fetchmany(2) # 获取所有数据 # datas = csr.execute('SELECT * FROM STUDENTS;').fetchall() # 关闭数据库链接 conn.close()
经常使用SQL插件
sqlite的更多知识能够参考笔记开始的sqlite教程。code
查询数据库中的表:sqlite
SELECT name FROM sqlite_master WHERE type='table';htm
查询表中的字段信息:
PRAGMA TABLE_INFO([table_name]);
使用分享:
一、SQL中的表名或者字段名带有特殊符号时应该使用嵌套引号括起来,这些特殊符号多是语法的一部分,应该使用嵌套引号表名它是一个总体,特别是使用格式化字符串时别忘了使用引号嵌套。如包含点号:'SELECT "aa.bb" FROM xxx;'或者'SELECT xxx FROM "%s";' % 'ccc.ddd.eee'