sqliteSqlite 数据库插入标示字段 获得新Id 及应用索引优化查询

sqlite的语法和sql
server的语法是有一些组别之,比如插入数据,对于标示种子的字段,必须指定为NULL,而获得新id,在sql
server中是
SELECT @@IDENTITY [id]然以sqlite中莫是这样,而是
insert into t_1(id,name)values(NULL,’赵玉开5′);
select last_insert_rowid()
newid;注意得新id的函数是last_insert_rowid()而不是last_insert_id(),last_insert_id()函数是mysql中取得新栽自增数字主键的函数。另外sqlite比较好奇的一些是,对于自添数字主键,必须指定为NULL值。
终极推荐一下sqlite的开发工具 http://sqliteadmin.orbmu2k.de/
请珍惜作者的辛苦,转载请保留链接 玉开的技术博客

文章来源学IT网:http://www.xueit.com/html/2008-12/134_5125_00.html

 

 

===========================利用索引优化查询===========================

 

在进行多独说明联合查询的时,使用索引可以一目了然的增进速度,刚才用SQLite做了一下测试。

成立三独说明:
create table t1
(id integer primary key,
num integer not null,
word1 text not null,
word2 text not null);
create table t2
(id integer primary key,
num integer not null,
word1 text not null,
word2 text not null);
create table t3
(id integer primary key,
num integer not null,
word1 text not null,
word2 text not null);

树立若干物色引:
t1表:在num,word1,word2上出复合索引
t2表:在num,word1,word2上各国发一个目
t3表:在word1及生一个目录
create index idxT1 on t1(num,word1,word2);
create index idxT2Num on t2(num);
create index idxT2Word1 on t2(word1);
create index idxT2Word2 on t2(word2);
create index idxT3Word1 on t3(word1);

通向三只说明中列插入10000执行数据,其中num项为擅自数字,word1和word2中是英文单词,三只表中对应的num,word1和word2列中还带有有有相同值,但是它们在表中出现的逐一不同。

速测试结果:
1) select count(*) from t1,t3 where t1.word2=t3.word2;
充分缓慢(t3.word2上没有索引)
2) select count(*) from t3,t1 where t1.word2=t3.word2;
老大缓慢(t1.word2达未曾独立索引)
3) select count(*) from t1,t2 where t1.word2=t2.word2;
速(t2.word2上产生目录)
4) select count(*) from t2,t1 where t1.word2=t2.word2;
可怜缓慢(t1.word2上从未有过独立索引)
5) select count(*) from t1,t2 where t1.num=t2.num;
飞(t2.num上生目录)
6) select count(*) from t2,t1 where t1.num=t2.num;
快速(t1的复合索引中,第一个列是num)
7) select count(*) from t1,t3 where t1.num=t3.num;
好缓慢(t3.num上尚无索引)
8) select count(*) from t3,t1 where t1.num=t3.num;
迅猛(t1的复合索引中,第一个列是num)

敲定:在from子句后的简单独表中,如果第2个说明中如果询问的列里面带有索引,这个查询的进度就急匆匆,反的即慢。比如第三独查询,from后面的第2个说明是
t2,t2在word2上发出目录,所以这个查询就急忙,当输入SQL命令并回车后,查询结果虽顿时亮出来了,但是若以第4单查询命令(即把t1和t2
的岗位互换),查询起来却因此了1分开零6秒。

可见索引的立于加强数据库查询的快是非常重大之。

转载于

 

网站地图xml地图