1.SQLite简介
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,不需要在系统中配置。SQLite的特点有:
- 不需要一个单独的服务器进程或操作的系统(无服务器的)
- SQLite 不需要配置,这意味着不需要安装或管理
- 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件
- SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB
- SQLite 是自给自足的,这意味着不需要任何外部的依赖
- SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问
- SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能
- SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API
- SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。
备注:SQLite安装好了之后,我们不需要配置,所有用户数据库都在一个*.db文件中。
2.SQLite的安装
(1)linux平台
目前,几乎所有版本的 Linux 操作系统都附带 SQLite。所以,只要使用下面的命令来检查您的机器上是否已经安装了 SQLite。
$sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
如果没有看到上面的结果,那么就意味着没有在 Linux 机器上安装 SQLite。那我们需要访问 SQLite官网,从源代码区下载 sqlite-autoconf-*.tar.gz,然后进行源码安装。
(2)windows平台
在SQLite官网下载页面,从 Windows 区下载预编译的二进制文件,例如sqlite-shell-win32-*.zip 和 sqlite-dll-win32-*.zip 压缩文件。创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。添加 C:\sqlite 到 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,将显示如下结果:
C:\>sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
3.SQLite的使用
(1)创建数据库
$sqlite3 testDB.db #创建一个名称为testDB.db的数据库,且会在当前目录下生成一个testDB.db磁盘文件
(2)创建表
sqlite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
备注:上例中创建一个名称为COMPANY的数据库表。
(3)插入记录
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );
备注:上例中向COMPANY表中插入了一条记录
(4)查找记录
SELECT * FROM COMPANY; #查询表COMPANY中的所有记录
4.SQLLite在python中的使用
从python 2.5开始,操作SQLite数据的python包PySQLite已经被内置到Python标准库中,所以在python中使用SQLite不需要安装任何的第三方包,只需要import sqlite3就行了。范例如下:
#coding: gbk
'''
Created on 2016-4-27
@author: balala
'''
import sqlite3
#创建数据库连接,如果数据库不存在,则新建一个数据库
conn = sqlite3.connect('testdb.db')
#获取游标
curs = conn.cursor()
#创建表
curs.execute('''
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
)
''')
#向数据库表中插入记录
curs.execute('''
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 )
''')
#查询数据库表
curs.execute('''
SELECT * FROM COMPANY
''')
#处理查询接口
for row in curs.fetchall():
print row
#数据库提交
conn.commit()
#数据库连接关闭
conn.close()
sqlite学习资料:
http://www.runoob.com/sqlite/sqlite-tutorial.html