1.sqlite3数据类型:http://blog.chinaunix.net/uid-25523295-id-3082716.html
NULL 无类型,空值
INTEGER 带符号整数,根据存入的数值的大小占据1,2,3,4,6或者8个字节
REAL 浮点数,采用8byte(即双精度)的IEEE格式表示
TEXT 字符串文本,采用数据库的编码(UTF-8,UTF-16BE 或者UTF-16LE)
BLOB 无类型,可用于保存二进制文件
2.打开一个sqlite3数据库文件:
sqlite3 DBName.db
如果DBName.db文件已存在即直接打开,如果不存在则创建。
3.表的操作:
1>.创建一张表tablename:
CREATE TABLE tablename(colName1 dataType primary key, colName2 dataType, ...);
2>.删除表tablename:
DROP TABLE tablename;
3>.将表tablename1的名字改为tablename2:
ALTER TABLE tablename1 RENAME TO tablename2;
4>.查看数据库中所有的表名:
.table
5>.查看数据库中所有表的组织结构:
.schema
6>.帮助:
.help
4.记录的操作:
1>.在表tablename中增加一条记录:
INSERT INTO tablename(colName1, colName2, ...) VALUES(data1,data2, ...);
2>.从表tablename中删除(colName1=data)的记录:
DELETE FROM tablename WHERE colName1=data;
3>.修改/更新表tablename里(colName1=values1)记录的(colName2=values2):
UPDATA tablename SET colName2=values2 WHERE colName1=values1;
4>.查询表tablename里的数据:
SELECT colName1, colName2, ... FROM tablename;
SELECT * FROM tablename;
5>.在同一个数据库中,将表oldtablename中的数据导入进表newtablename中:
INSERT INTO newtablename (arg1,arg2...) SELECT arg1.arg2... FROM oldtablename;
5.SQLite小技巧
转自:http://www.sqlite.com.cn/MySqlite/6/553.Html
1>.返回最后插入的标识值
返回最后插入的标识值sql server用@@IDENTITY
sqlite用标量函数LAST_INSERT_ROWID()
返回通过当前的 SQLConnection 插入到数据库的最后一行的行标识符(生成的主键)。此值与 SQLConnection.lastInsertRowID 属性返回的值相同。
2>.top n
在sql server中返回前2行可以这样:
select top 2 * from aa order by ids desc;
sqlite中用LIMIT,语句如下:
select * from aa order by ids desc LIMIT 2;
3>.GETDATE()
在sql server中GETDATE()返回当前系统日期和时间
sqlite中没有
4>.EXISTS语句
sql server中判断插入(不存在ids=5的就插入)
IF NOT EXISTS (select * from aa where ids=5)
BEGIN
insert into aa(nickname) select 't'
END
在sqlite中可以这样
insert into aa(nickname) select 't' where not exists(select * from aa where ids=5);
5>.嵌套事务
sqlite仅允许单个活动的事务
6>.RIGHT 和 FULL OUTER JOIN
sqlite不支持 RIGHT OUTER JOIN 或 FULL OUTER JOIN
7>.可更新的视图
sqlite视图是只读的。不能对视图执行 DELETE、INSERT 或 UPDATE 语句,sql server是可以对视图 DELETE、INSERT 或 UPDATE