(1)sqlite基础
一、安装sqlite
下载页面:http://www.sqlite.org/download.html
1.下载 sqlite-tools-win32-*.zip 和 sqlite-dll-win32-*.zip 压缩文件
2.创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件
3.添加 C:\sqlite 到 PATH 环境变量
4.在命令行输入sqlite3
二、常用命令
1. 帮助指令
sqlite>.help
2.使用 .show 命令,来查看 SQLite 命令提示符的默认设置
sqlite>.show echo: off explain: off headers: off mode: column nullvalue: "" output: stdout separator: "|" width: sqlite>
3.退出shell
sqlite>.quit
三、语法
1.大小写敏感性
大多数不区分大小写
2.注释
-- 或者 /* */
四、常用数据类型
1.NULL
2.INTEGER
值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中
3.REAL
值是一个浮点值,存储为 8 字节的 IEEE 浮点数字
4.TEXT
值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储
5.BLOB
值是一个 blob 数据,完全根据它的输入存储
五、创建数据库
1.创建数据库/进入数据库
在命令行下直接输入(注意不是进到sqlite3的shell里),如果存在则是进入数据库
sqlite3.exe testDb.db
2.查看当前数据库名
sqlite>.databases
3.备份数据库
sqlite3.exe pda.db .dump> testDb.sql
4.恢复数据库
sqlite3.exe pda.db < testDb.sql
5.附加数据库
6.分离数据库
六、创建表
1.
sqlite> CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
2.查看当前表名
sqlite>.tables
3.删除表
sqlite>DROP TABLE COMPANY;
4.插入数据
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
5.查看数据
sqlite>.header on --显示的时候会在顶部显示列的名称 sqlite>.mode column --显示的列会对齐 sqlite> SELECT * FROM COMPANY;
设置字段显示宽度
sqlite>.width 10, 20, 10 --第一字段10,第二字段20....
七、运算符、表达式
算术运算符、比较运算符、逻辑运算符 --暂略
八、当前时间
sqlite> SELECT CURRENT_TIMESTAMP; CURRENT_TIMESTAMP = 2013-03-17 10:43:35
九、更新
sqlite> UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 3;
十、删除
sqlite> DELETE FROM COMPANY WHERE ID = 1;
清空表
sqlite> DELETE FROM COMPANY;
十一、通配符
星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用
SELECT FROM table_name WHERE column GLOB '*XXXX*'
SELECT FROM table_name WHERE column GLOB '????'
十二、返回行数数量
限制返回行数的数量
sqlite> SELECT * FROM COMPANY LIMIT 2;
十三、排序
asc 正序 desc 倒序
sqlite> SELECT * FROM COMPANY ORDER BY NAME DESC, SALARY ASC;
十四、分组
sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;
十五、筛选
出现过两次以上名字的所有数据
sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;
十六、排重
sqlite> SELECT DISTINCT name FROM COMPANY;