互联网装饰公司有哪些:[转帖]SQLite使用教学
来源:百度文库 编辑:中财网 时间:2024/05/07 06:33:24
[转帖]SQLite使用教学
作者:tamsyn 来源:www.sqlite.com.cn 时间:2009-7-29 【 字体:大 中 小 】 〖 双击滚屏 〗
SQLite3。这套软件有几个特色:
以下我们就建立数据库、建立数据库表及索引、新增数据、查询数据、更改数据、删除数据、sqlite3命令列选项等几个项目做简单的介绍。
创建数据库
用sqlite3创建数据库的方法很简单,只要在shell下键入(以下$符号为shell提示号,请勿键入):
$ sqlite3 foo.db3
如果目录下没有foo.db3,sqlite3就会建立这个数据库。sqlite3并没有强制数据库名要怎么取,因此如果你喜欢,也可以取个例如foo.icannameitwhateverilike的名字。
在sqlite3提示列下操作
进入了sqlite3之后,会看到以下文字:
SQLite version 3.1.3
Enter ".help" for instructions
sqlite>
这时如果使用.help可 以取得求助,.quit则是离开(请注意:不是quit)
SQL的指令格式
所有的SQL指令都是以分号(;)结尾的。如果遇到两个减号(--)则代表注解,sqlite3会略过去。
创建数据库表
假设我们要建一个名叫film的数据库表,只要键入以下指令就可以了:
create table film(title, length, year, starring);
这样我们就建立了一个名叫film的数据库表,里面有name、length、year、starring四个字段。
这个create table指令的语法为:
create table table_name(field1, field2, field3, ...);
table_name是数据库表的名称,fieldx则是字段的名字。sqlite3与许多SQL数据库软件不同的是,它不在乎字段属于哪一种字段类型:sqlite3的字段可以储存任何东西:文字、数字、大量文字(blob),它会在适时自动转换。
建立索引
如果数据库表有相当多的资料,我们便会建立索引来加快速度 。好比说:
create index film_title_index on film(title);
意思是针对film数据库表的title字段,建立一个名叫film_title_index的索引。这个指令的语法为
create index index_name on table_name(field_to_be_indexed);
一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的操作都是在幕后自动发生的,无须使用者特别指令。
插入一条记录
接下来我们要插入记录了,插入的方法为使用insert into指令,语法为:
insert into table_name values(data1, data2, data3, ...);
例如我们可以插入
insert into film values ('Silence of the Lambs, The', 118, 1991, 'Jodie Foster');
insert into film values ('Contact', 153, 1997, 'Jodie Foster');
insert into film values ('Crouching Tiger, Hidden Dragon', 120, 2000, 'Yun-Fat Chow');
insert into film values ('Hours, The', 114, 2002, 'Nicole Kidman');
如果某个字段没有数据,我们可以填NULL。
查询数据
讲到这里,我们终于要开始介绍SQL最强大的select指令了。我们首先简单介绍select的基本句型:
select columns from table_name where expression_r;
最常见的用法,当然是查询出file表中所有的内容:
select * from film;
如果数据太多了,我们或许会想限制记录的条数:
select * from film limit 10;
或是年份比较早的电影先列出来(缺省为 asc):
select * from film order by year limit 10;
或是年份比较晚的电影先列出来:
select * from film order by year desc limit 10;
或是我们只想看电影名称跟年份:
select title, year from film order by year desc limit 10;
查所有茱蒂佛斯特演过的电影:
select * from film where starring='Jodie Foster';
查所有演员名字开头叫茱蒂的电影('%'、'_' 符号便是 SQL 的万用字符,前者代表任意长度字符,后者代表任意一个字符):
select * from film where starring like 'Jodie%';
查所有演员名字以茱蒂开头、年份晚于1985年、年份晚的优先列出、最多十笔,只列出电影名称和年份:
select title, year from film where starring like 'Jodie%' and year >= 1985 order by year desc limit 10;
有时候我们只想知道数据库一共有多少笔资料:
select count(*) from film;
有时候我们只想知道1985年以后的电影有几部:
select count(*) from film where year >= 1985;
(进一步的各种组合,要去看SQL专书,不过你大概已经知道SQL为什么这么流行了:这种语言允许你将各种查询条件组合在一起──而我们还没提到「跨数据库的联合查询」呢!)
如何更改或删除数据
了解select的用法非常重要,因为要在sqlite更改或删除一条记录,也是靠同样的语法。
例如有一条记录的名字打错了:
update film set starring='Jodie Foster' where starring='Jodee Foster';
就会把主角字段里,被打成'Jodee Foster'的那条(或多条)数据,改回成Jodie Foster。
delete from film where year < 1970;
就会删除所有年代早于1970年(不含1970)的电影了。
其他sqlite的特别用法
sqlite可以在shell底下直接执行命令:
sqlite3 film.db "select * from film;"
输出 HTML 表格:
sqlite3 -html film.db "select * from film;"
将数据库「导出来」:
sqlite3 film.db ".dump" > output.sql
利用输出的数据,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库备份了):
sqlite3 film.db < output.sql
在大量插入数据时,你可能会需要先打这个指令:
begin;(开始事务)
插入完数据后要记得打这个指令,数据才会写进数据库中:
commit;
小结
以上我们介绍了SQLite这套数据库系统的用法。
目前支援SQLite的程序语言,你能想到的大概都有了。这套数据库2005年还赢得了美国O'Reilly Open Source Conference的最佳开放源代码软件奖,奖评是「有什么东西能让Perl, Python, PHP, Ruby语言团结一致地支援的?就是SQLite」。由此可见SQLite的地位了。而SQLite程序非常小,更是少数打 "gcc -o sqlite3 *",不需任何特殊设定就能跨平台编译的程序。小而省,小而美,SQLite连网站都不多赘言,直指SQL语法精要及API使用方法,原作者大概也可以算是某种程序设计之道(Tao of Programming)里所说的至人了。
Enjoy sqlite3 in your Life!
作者:tamsyn 来源:www.sqlite.com.cn 时间:2009-7-29 【 字体:大 中 小 】 〖 双击滚屏 〗
SQLite3。这套软件有几个特色:
- 软件属于公共财(public domain
- 支援大多数的SQL指令(下面会简单介绍)。
- 一个档案就是一个数据库。不需要安装数据库服务器软件。
- 完整的Unicode支援(因此没有跨语系的问题)。
- 速度很快。
以下我们就建立数据库、建立数据库表及索引、新增数据、查询数据、更改数据、删除数据、sqlite3命令列选项等几个项目做简单的介绍。
创建数据库
用sqlite3创建数据库的方法很简单,只要在shell下键入(以下$符号为shell提示号,请勿键入):
$ sqlite3 foo.db3
如果目录下没有foo.db3,sqlite3就会建立这个数据库。sqlite3并没有强制数据库名要怎么取,因此如果你喜欢,也可以取个例如foo.icannameitwhateverilike的名字。
在sqlite3提示列下操作
进入了sqlite3之后,会看到以下文字:
SQLite version 3.1.3
Enter ".help" for instructions
sqlite>
这时如果使用.help可
SQL的指令格式
所有的SQL指令都是以分号(;)结尾的。如果遇到两个减号(--)则代表注解,sqlite3会略过去。
创建数据库表
假设我们要建一个名叫film的数据库表,只要键入以下指令就可以了:
create table film(title, length, year, starring);
这样我们就建立了一个名叫film的数据库表,里面有name、length、year、starring四个字段。
这个create table指令的语法为:
create table table_name(field1, field2, field3, ...);
table_name是数据库表的名称,fieldx则是字段的名字。sqlite3与许多SQL数据库软件不同的是,它不在乎字段属于哪一种字段类型:sqlite3的字段可以储存任何东西:文字、数字、大量文字(blob),它会在适时自动转换。
建立索引
如果数据库表有相当多的资料,我们便会建立索引来加快速度 。好比说:
create index film_title_index on film(title);
意思是针对film数据库表的title字段,建立一个名叫film_title_index的索引。这个指令的语法为
create index index_name on table_name(field_to_be_indexed);
一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的操作都是在幕后自动发生的,无须使用者特别指令。
插入一条记录
接下来我们要插入记录了,插入的方法为使用insert into指令,语法为:
insert into table_name values(data1, data2, data3, ...);
例如我们可以插入
insert into film values ('Silence of the Lambs, The', 118, 1991, 'Jodie Foster');
insert into film values ('Contact', 153, 1997, 'Jodie Foster');
insert into film values ('Crouching Tiger, Hidden Dragon', 120, 2000, 'Yun-Fat Chow');
insert into film values ('Hours, The', 114, 2002, 'Nicole Kidman');
如果某个字段没有数据,我们可以填NULL。
查询数据
讲到这里,我们终于要开始介绍SQL最强大的select指令了。我们首先简单介绍select的基本句型:
select columns from table_name where expression_r;
最常见的用法,当然是查询出file表中所有的内容:
select * from film;
如果数据太多了,我们或许会想限制记录的条数:
select * from film limit 10;
或是年份比较早的电影先列出来(缺省为 asc):
select * from film order by year limit 10;
或是年份比较晚的电影先列出来:
select * from film order by year desc limit 10;
或是我们只想看电影名称跟年份:
select title, year from film order by year desc limit 10;
查所有茱蒂佛斯特演过的电影:
select * from film where starring='Jodie Foster';
查所有演员名字开头叫茱蒂的电影('%'、'_' 符号便是 SQL 的万用字符,前者代表任意长度字符,后者代表任意一个字符):
select * from film where starring like 'Jodie%';
查所有演员名字以茱蒂开头、年份晚于1985年、年份晚的优先列出、最多十笔,只列出电影名称和年份:
select title, year from film where starring like 'Jodie%' and year >= 1985 order by year desc limit 10;
有时候我们只想知道数据库一共有多少笔资料:
select count(*) from film;
有时候我们只想知道1985年以后的电影有几部:
select count(*) from film where year >= 1985;
(进一步的各种组合,要去看SQL专书,不过你大概已经知道SQL为什么这么流行了:这种语言允许你将各种查询条件组合在一起──而我们还没提到「跨数据库的联合查询」呢!)
如何更改或删除数据
了解select的用法非常重要,因为要在sqlite更改或删除一条记录,也是靠同样的语法。
例如有一条记录的名字打错了:
update film set starring='Jodie Foster' where starring='Jodee Foster';
就会把主角字段里,被打成'Jodee Foster'的那条(或多条)数据,改回成Jodie Foster。
delete from film where year < 1970;
就会删除所有年代早于1970年(不含1970)的电影了。
其他sqlite的特别用法
sqlite可以在shell底下直接执行命令:
sqlite3 film.db "select * from film;"
输出 HTML 表格:
sqlite3 -html film.db "select * from film;"
将数据库「导出来」:
sqlite3 film.db ".dump" > output.sql
利用输出的数据,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库备份了):
sqlite3 film.db < output.sql
在大量插入数据时,你可能会需要先打这个指令:
begin;(开始事务)
插入完数据后要记得打这个指令,数据才会写进数据库中:
commit;
小结
以上我们介绍了SQLite这套数据库系统的用法。
目前支援SQLite的程序语言,你能想到的大概都有了。这套数据库2005年还赢得了美国O'Reilly Open Source Conference的最佳开放源代码软件奖,奖评是「有什么东西能让Perl, Python, PHP, Ruby语言团结一致地支援的?就是SQLite」。由此可见SQLite的地位了。而SQLite程序非常小,更是少数打 "gcc -o sqlite3 *",不需任何特殊设定就能跨平台编译的程序。小而省,小而美,SQLite连网站都不多赘言,直指SQL语法精要及API使用方法,原作者大概也可以算是某种程序设计之道(Tao of Programming)里所说的至人了。
Enjoy sqlite3 in your Life!
VB中操纵SQLite格式的数据库
请问sqlite支不支持phpwind 和discuz!论坛?
谁知道哪里有sqlite交流QQ群的,谢谢!!
请问,sqlite如何从多张表中选择字段创建视图
SQlite是什么数据库?和access比起来好很多吗?
视频教学下载网有使用的价值么?
哪里有网上教学使用睫毛刷的?
清华同方的教学资源库使用效果好吗
香港的高中的“中五”使用什么语言教学?
网上下载的iso教学文件怎么使用啊?
哪里有学校教学使用的是阿拉伯语?
请问哪里能找到单机使用的万智牌教学软件?
使用教学媒体,信息化环境存在的问题
哪里有dreamweaver mx 关于模板使用的教学
怎样使用讯雷下载?跪求个视频教学的网址!!
sqlite数据库被我不小心覆盖了,有没有办法恢复原来的数据?
怎么用asp来操作sqlite数据库,要求具体的完整例子
怎么用vb来操作sqlite数据库,要求具体的完整例子
普通话智能教学软件在使用中对我的麦克风没有反应,为何?
·普通话智能教学软件在使用中对我的麦克风没有反应,为何?
有关于高中英语教学使用信息技术方面的论文在哪里找?
南京商友资讯电子商务应用研究所的进出口贸易教学试验模拟系统软件好使用吗?
我想找一些不需要注册就能使用的教学课件,哪里可以找到?
请问在网上有没有教如何使用CAD做3D图的教学,谢谢