Chinaunix首页 | 论坛 | 博客
  • 博客访问: 296742
  • 博文数量: 51
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1507
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-23 15:58
个人简介

喜欢Liunx,C,爱好嵌入式技术,爱好Qt 等跨平台技术

文章分类

全部博文(51)

文章存档

2014年(1)

2013年(50)

分类: SQLite/嵌入式数据库

2013-07-05 21:29:22

建立数据库档案
用sqlite3建立数据库的方法很简单,只要在shell下键入(以下$符号为shell提示号,请勿键入):

$ sqlite3 foo.db如果目录下没有foo.db,sqlite3就会建立这个数据库。sqlite3并没有强制数据库档名要怎么取,因此如果你喜欢,也可以取个例如foo.icannameitwhateverilike的档名。

在sqlite3提示列下操作
进入了sqlite3之后,会看到以下文字:

SQLite version 3.1.3Enter ".help" for instructionssqlite> 这时如果使用.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的字段可以储存任何东西:文字、数字、大量文字(blub),它会在适时自动转换。

建立索引
如果资料表有相当多的资料,我们便会建立索引来加快速度。好比说:

create index film_title_index on film(title);意思是针对film资料表的name字段,建立一个名叫film_name_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;最常见的用法,当然是倒出所有数据库的内容:

select * from film;如果资料太多了,我们或许会想限制笔数:

select * from film limit 10;或是照着电影年份来排列:

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'
阅读(1694) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~