sqlite3 on Mac初探

随着人类社会的发展,需要越来越多的和数据打交道,譬如,政府通常会关心每个城市的人口,年龄构成,犯罪率,税收等等,做生意的关心销售额,利润率等,所以不可避免的会发展出数据管理相关的技术。最近就了解了下数据库相关发展,然后在Mac下适用了一下sqlite3,下面记录使用过程。

一. Mac OSX对数据库的支持

Mac OSX其实已经默认支持了sqlite,相关应用位于

/usr/bin/sqlite3

二. sqlite体验

  • 建立数据库
    打开terminal,键入
$sqlite3 foo.db

可以看到如下提示

SQLite version 3.14.0 2016-07-26 15:17:14
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 
  • 建立资料表
sqlite>create table film(title, length, year, starring);

这样就建立了一个名叫 film 的资料表,里面有 name、length、year、starring 四个字段。其语法为

create table table_name(field1, field2, field3, ...);

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');

查询内容,通过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 count(*) from film;
--想知道 1985 年以后的电影有几部:
select count(*) from film where year >= 1985;

更改或删除资料,譬如

update film set starring='Jodie Foster' where starring='Jodee Foster'; --就会把主角字段里,被打成'Jodee Foster'的那笔(或多笔)资料,改回成 Jodie Foster。
delete from film where year < 1970;
--就会删除所有年代早于 1970 年(不含)的电影了。

备份

## 将数据库「倒出来」:
sqlite3 film.db ".dump" > output.sql
## 利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的 SQL 数据库备份了): 
sqlite3 film.db < output.sql

你可能感兴趣的:(数据库,sqlite,mac,osx,数据管理)