SQLite
来源:互联网 发布:诺基亚6220c软件 编辑:程序博客网 时间:2024/06/06 10:05
转载请标明出处: http://blog.csdn.net/wu_wxc/article/details/51065678
本文出自【吴孝城的CSDN博客】
在安装完SDK后会自动安装SQLite3,在你的platform-tools文件可以看到
在linux系统上会自带sqlite
在终端输入
sqlite3可以看到
如果没有上面的结果,说明你的电脑没有安装sqlite,去官网下载一个安装就行
新版的Mac OS X 也会有预装sqlite
大小写敏感:sqlite不区分大小写,但也有像GLOB和glob之类的是区分的
注释:在sqlite中,注释可以用"--",也可以用"/**/"
语句:sqlite可以用任意关键字开始,如CREATE、SELECT、DELETE、INSERT、UPDATE、ALTER、DROP等,每个语句用";"结束
创建数据库
想在哪创建数据库,就用cd定位到那个目录下,然后执行创建语句后就会在该目录下创建一个数据库,
如果数据库已存在,则会使用它,如果不存在就会创建一个
sqlite3 DatabaseName.db
wu@wu:~$ sqlite3 Test.dbSQLite version 3.8.10.2 2015-05-20 18:17:19Enter ".help" for usage hints.sqlite>当然,这时你打开该目录是看到到数据库的,想要看到可以执行
.databases命令查看
之前就可以在该目录下看到刚刚创建的数据库了
sqlite> .databasesseq name file --- --------------- ----------------------------------------------------------0 main /home/wu/Test.db sqlite>
CREATE TABLE Database_name.table_name( column1 datatype, column2 datatype,);下面我在数据库Test中创建一个表,名为TestTable,_id为主键,不能为空
sqlite> CREATE TABLE TestTable( _id INT PRIMARY KEY NOT NULL, name TEXT, age INT); sqlite>再创建一个表
sqlite> CREATE TABLE test ( _id INT, title VARCHAR(20));sqlite>我们可以用
.tables来查看是否创建成功
sqlite> .tablesTestTable test sqlite>可以用.schema来查看表的完整信息
sqlite> .schema TestTableCREATE TABLE TestTable(_id INT PRIMARY KEY NOT NULL,name TEXT, ag);sqlite>
可以用带数据库名的方法来删除表,也可以不带数据库
删除表test
sqlite> DROP TABLE test;sqlite>
INSERT INTO Table_Name( column1, column2) VALUES ( values1, values2);
如果要添加表中所有的字段,可以不写列名,就是column
但要确保插入的顺序要与表中列的顺序一致
INSEERT INTO Table_Name VALUES( values1, values2)向表TestTable插入数据,_id为10,name为"哈哈",age为20,_为11,name为"嘻嘻",age为21
sqlite> INSERT INTO TestTable VALUES (10,'哈哈',20);sqlite> INSERT INTO TestTable VALUES (11,'嘻嘻',21);sqlite>
查询数据
SELECT column1, column2 FROM Table_Name;想要查询所有的数据,可用"*"替换掉要查询的字段column,
SELECT * FROM Table_Name;Table_Name为你要查询的表名
WHERE:
查询age=22的字段的name的值
sqlite> SELECT name from TestTable WHERE age=22;
LIKE:所有name以tes开头的age
sqlite> SELECT age FROM TestTable WHERE name LIKE 'tes%';
NOT:
列出所有age既不是20,又不是22的name的值
sqlite> SELECT name FROM TestTable WHERE age NOT IN (20, 22);
列出所有age不为NULL的name的值
sqlite> SELECT name FROM TestTable WHERE age IS NOT NULL;
BETWEEN:列出所有age在22到24(包括22和24)的name的值
sqlite> SELECT name FROM TestTable WHERE age BETWEEN 22 AND 24;
Order By
Order By是用来基于一个或多个列按升序或降序排列数据
ASC是升序
DESC是降序
默认是升序
sqlite> SELECT name FROM TestTable ORDER BY age ASC;
sqlite> SELECT name FROM TestTable ORDER BY age DESC;
Group By:与SELECT语句一起使用,在SELECT语句中,Group By放在WHERE之后,Order By之前
根据name进行分组
sqlite> SELECT name FROM V GROUP BY name;
根据name进行分组并以age升序排序
sqlite> SELECT name FROM TestTable GROUP BY name ORDER BY age;
Having:对查询后的分组排序的结果集进行筛选
列出分组后age大于23的name
sqlite> SELECT name FROM TestTable GROUP BY age HAVING age > 23;
AS:设置别名,为了增强结果集的可读性,便于理解各列数据的含义,可以使用AS来设置结果集列的名称
sqlite> SELECT _id, name, _id AS 序号, name AS 名字 FROM TestTable WHERE age = 24;
还有很多其他,如
AVG:平均值
COUNT:计数
MAX:最大值
MIN:最小值
SUM:和
Glob子句等
Glob子句大小写敏感,使用的有“*”代表零个、一个或多个数字或符号,"?"代表一个单一的数据或字符,这些符号可以被组合使用
如:
查询以"1"开关可用‘1*’;
查询文本中包含一个"-"的可用'*-*';
- SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- sqlite
- sqlite
- SQLite
- SQLite
- sqlite
- SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- sqlite
- sqlite
- sqlite
- Android动态加载—so文件
- 谈谈iOS 的加密技术
- IOS RunLoop浅析 三
- 标识符
- TCP连接状态详解及TIME_WAIT过多的解决方法
- SQLite
- 对文件编码做转换的时候注意事项
- Linux Shell初探01
- SQL自定义函数--计算两个坐标点间距离
- Java编程数字的格式化
- 现代控制理论思考题----倒立摆小车控制算法研究
- 【文件的转码复制操作方法】
- WiFidog编译成openwrt 库文件
- android shape的使用