sqlite简介
Android系统集成了一个轻量级的数据库sqlite,sqlite只是一个嵌入式的数据库引擎,专门适用于支援有限的设备上(如手机、pda等)适量数据存储。
sqlite并不同于Oracle、MysqL那样专业数据库,sqlite数据库只是一个文件,从本质上来看,sqlite的操作方式只是一种更为便捷的文件操作。
当应用程序创建或打开一个sqlite数据库是,其实只是打开一个文件进行读写。
sqlite嵌入到使用它的应用程序中,与应用程序共用相同的进程,而不是单独的一个进程。
sqlite特点概括:
(3) 移植性好、占用内存低、高效且可靠
(4) 适合于嵌入式设备
(5) sqlite是一种动态数据类型
sqlite数据类型
一般数据库中的数据采用的是固定的静态数据类型,而sqlite采用的是动态数据类型,根据存入值自动判断。sqlite具有5种数据类型。
数据类型 |
含义 |
NULL |
空值 |
INTEGER |
带符号的整形,具体取决有存入数字的范围大小 |
REAL |
浮点数字,存储为8-byte IEEE浮点数 |
TEXT |
字符串文本 |
BLOB |
二进制对象 |
sqlite常用命令
命令名 |
含义 |
.backup ?DB? FILE |
|
.database |
|
.dump table |
|
.help |
显示所有命令 |
.mode MODE ?TABLE? |
输出界面模式,共8种模式 csv,column,html,insert,line,list,tabs,tcl |
.output FILENAGE |
|
.restore ?DB? FILE |
|
.tables |
|
.schema |
查看表的结构 |
.show |
显示各种设置的当前值 |
注:这些命令都是以“.“开头的。结尾不需要“;”
创建新表
sqlite>createtable <table_name> (n1 type1,n2 type2);
例如:
create table country(id integer primary key,c_namevarchar(50));
删除表
sqlite>drop table <table_name>;
例如:
drop table person;
表中添加新记录
sqlite>insertinto <table_name> values(value1,value2,value3,……);
例如:
insertinto person(name,age,sex,c_type) values('刘备',38,'男',1);
insert intoperson(name,c_type) values('关羽',42,1);]
在表中添加字段
sqlite>alert table<table> addcolumn<filed>;
例如:
alter table country add column scope integer;
按指定条件删除表中记录
sqlite>delete from <table_name> where<express>;
例如:删除表person中id为4的项
Delete form person where id=4;
更新表中记录
sqlite>update <table_name> set<n1=value1>,<n2=value2>…… where <expression>;
例如:将表中的年龄18改为19
sqlite>updateperson set name='诸葛孔明' where id=10;
按指定条件查询表中记录
sqlite>select *from <table_name> where<expression>;
例如:
在表中搜索名字是A的项所有信息
select *from person wherename='A';
在表中搜索年龄>=10并且<=15的项的所有信息
select *from person where age>=20 andage<=30;
select name,age fromperson where name='刘备';
显示表中的前2项所有信息
select *from person limit2;
显示以年龄排序表中的信息
select * from person order by age;
注:每条语句必须以“;”结尾。
针对常用的sqlite命令下面我们具体做些实例分析。
配置环境变量
(1)配置环境变量
新增变量Android将其变量名指向sqlite3物理位置
在将其Android添加至Path变量中如.;%Android%
输入cmd 打开命令窗窗口输入:sqlite3
如出现以下信息
表示Android工具环境配置成功!
sqlite3命令语句是以“;”结束的,可以输入.help查看相关文档。
创建数据库
输入cd \ ,进入C盘根目录 输入:sqlite3 MysqLiteDB.db,
注:如果在C盘根目录存在则为读取数据库,不存则会新创建数据库。
进入sqlite控制命令窗口后并新建一张表”person”,”country”
create table person ( --设置主键,并自增(sqlite主键如果为integer,会自动默认自增) id integer primary key autoincrement, name varchar(50), age integer, sex varchar(50), c_type integer ); create table country(id integer primary key,c_name varchar(50)); |
查看数据库中有几张表
通过输入sqlite3命令参数“.table”可查看数据库中有几张表
sqlite>.table
如果创建成功,在C盘根目下就可以看得sqlite3数据库文件
sqlite插入数据
在person表中插入几条数据信息
insert into person(name,1); insert into person(name,c_type) values('张飞',40,c_type) values('诸葛亮',25,c_type) values('曹操',36,2); insert into person(name,c_type) values('夏侯惇',c_type) values('孙权',3); insert into person(name,c_type) values('周瑜',28,c_type) values('大乔',20,'女',c_type) values('小乔',18,3); insert into country(id,c_name) values(1,'蜀国'); insert into country(id,c_name) values(2,'魏国'); insert into country(id,c_name) values(3,'吴国'); |
查看表信息
sqlite>select* from person;
sqlite>.modetabs
sqlite>select* from person;
这样看起来清晰了许多。
sqlite>.modecsv
sqlite>.outputpersonInfo.csv
输出结果
在C盘根目录
新建文件order_person.sql,里面输入:select * from person order by id desc;
sqlite命令窗口
sqlite>.modetabs
sqlite>.read order_person.sql (读取执行sql文件语句)
在sqlite命令窗口中,查询出的结果标题默认是不显示的,我们可以通过执行.header on/off从而进行对标题显示或关闭。
sqlite>.headeron
sqlite>select* from person;
导出数据库
sqlite>.backupmain persondb.sql(备份数据库main (注:备份默认数据库.backup .defaultdb.sql))
导出表
sqlite>.outputperson_table.sql
sqlite>.dumpperson
还原数据库
sqlite>.restore mydb.db_bak
更新数据
sqlite>updateperson set name='诸葛孔明'where id=4;
删除数据
删除某调数据
sqlite>delete from person where id=6;
删除表
sqlite>drop table person;
表中添加字段
sqlite>.schemacountry
sqlite>altertable country add column scope integer;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。