Android学习之旅--sqlite3 数据库命令操作
来源:互联网 发布:汉倭奴国王金印 知乎 编辑:程序博客网 时间:2024/05/16 02:29
SQLite简介
Android系统集成了一个轻量级的数据库SQLite,SQLite只是一个嵌入式的数据库引擎,专门适用于支援有限的设备上(如手机、pda等)适量数据存储。
SQLite并不同于Oracle、MySQL那样专业数据库,SQLite数据库只是一个文件,从本质上来看,SQLite的操作方式只是一种更为便捷的文件操作。
当应用程序创建或打开一个SQLite数据库是,其实只是打开一个文件进行读写。
SQLite嵌入到使用它的应用程序中,与应用程序共用相同的进程,而不是单独的一个进程。
SQLite特点概括:
(1) SQLite是一个轻量级数据库
(2) 本质上SQLite是一种更为便捷的文件操作
(3) 移植性好、占用内存低、高效且可靠
(4) 适合于嵌入式设备
(5) SQLite是一种动态数据类型
(6) 储存在单一磁盘文件中的一个完整的数据库
SQLite数据类型
一般数据库中的数据采用的是固定的静态数据类型,而SQLite采用的是动态数据类型,根据存入值自动判断。SQLite具有5种数据类型。
数据类型
含义
NULL
空值
INTEGER
带符号的整形,具体取决有存入数字的范围大小
REAL
浮点数字,存储为8-byte IEEE浮点数
TEXT
字符串文本
BLOB
二进制对象
SQLite常用命令
命令名
含义
.backup ?DB? FILE
备份数据库、数据库文件
.database
显示当前打开的数据库信息
.dump table
数据库表转存储sql文件格式
.help
显示所有命令
.mode MODE ?TABLE?
输出界面模式,共8种模式
csv,column,html,insert,line,list,tabs,tcl
.output FILENAGE
输出文件
.restore ?DB? FILE
还原数据库文件
.tables
显示数据库中所有的表
.schema
查看表的结构
.show
显示各种设置的当前值
注:这些命令都是以“.“开头的。结尾不需要“;”
Sqlite常用的sql语句
创建新表
sqlite>create table <table_name> (n1 type1,n2 type2);
例如:
create table country(id integer primary key, c_name varchar(50));
删除表
sqlite> drop table <table_name>;
例如:
drop table person;
表中添加新记录
sqlite>insert into <table_name> values(value1,value2,value3,……);
例如:
insert into person(name,age,sex,c_type) values('刘备',38,'男',1);
insert into person(name,age,sex,c_type) values('关羽',42,'男',1);]
在表中添加字段
sqlite>alert table<table> add column<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>update person set name='诸葛孔明' where id=10;
按指定条件查询表中记录
sqlite>select * from <table_name> where <expression>;
例如:
在表中搜索名字是A的项所有信息
select * from person where name='A';
在表中搜索年龄>=10并且<=15的项的所有信息
select * from person where age>=20 and age<=30;
在表中搜索名字是C的项,显示其name和age
select name,age from person where name='刘备';
显示表中的前2项所有信息
select * from person limit 2;
显示以年龄排序表中的信息
select * from person order by age;
注:每条语句必须以“;”结尾。
针对常用的sqlite命令下面我们具体做些实例分析。
配置环境变量
使用Android自带的SQLite3数据库
(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,age,sex,c_type) values('刘备',38,'男',1);
insert into person(name,age,sex,c_type) values('关羽',42,'男',1);
insert into person(name,age,sex,c_type) values('张飞',40,'男',1);
insert into person(name,age,sex,c_type) values('诸葛亮',25,'男',1);
insert into person(name,age,sex,c_type) values('曹操',36,'男',2);
insert into person(name,age,sex,c_type) values('夏侯惇',36,'男',2);
insert into person(name,age,sex,c_type) values('孙权',25,'男',3);
insert into person(name,age,sex,c_type) values('周瑜',28,'男',3);
insert into person(name,age,sex,c_type) values('大乔',20,'女',3);
insert into person(name,age,sex,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命令参数“.mode”修改输出格式。
sqlite>.mode tabs
sqlite>select * from person;
这样看起来清晰了许多。
可以将查询出的结果写到文件。
sqlite>.mode csv
sqlite>.output personInfo.csv
输出结果
读取可执行sql语句文件
在C盘根目录
新建文件order_person.sql,里面输入:select * from person order by id desc;
Sqlite命令窗口
sqlite>.mode tabs
sqlite> .read order_person.sql (读取执行sql文件语句)
打开或关闭标题的显示
在sqlite命令窗口中,查询出的结果标题默认是不显示的,我们可以通过执行.header on/off从而进行对标题显示或关闭。
sqlite>.header on
sqlite>select * from person;
SQLite3导入导出数据库
导出数据库
sqlite>.database(显示数据库信息)
sqlite>.backup main persondb.sql(备份数据库main (注:备份默认数据库.backup .defaultdb.sql))
导出表
sqlite>.output person_table.sql
sqlite>.dump person
还原数据库
sqlite >.restore mydb.db_bak
更新数据
sqlite>update person set name='诸葛孔明' where id=4;
删除数据
删除某调数据
sqlite> delete from person where id=6;
删除表
sqlite>drop table person;
表中添加字段
sqlite>.schema country
sqlite>alter table country add column scope integer;
- Android学习之旅--sqlite3 数据库命令操作
- sqlite3 数据库命令操作
- sqlite3数据库命令操作
- sqlite3 数据库命令操作
- sqlite3 数据库命令操作
- sqlite3 数据库命令操作
- android sqlite3基本命令操作
- adb、sqlite3操作android数据库
- Android sqlite3 数据库批量操作
- Android SQLite3数据库操作详解
- adb、sqlite3操作android数据库
- Android下SQLite3数据库操作笔记(二)之-SQLiteOpenHelper
- android sqlite3 adb命令学习
- android sqlite3 adb命令学习
- android sqlite3 adb命令学习
- android sqlite3 adb命令学习
- android中sqlite3的一些操作命令
- Android——sqlite3 基本命令操作
- 电商精英的六种武器
- 简单分析Tomohiko Sakamoto的dayofweek代码
- HDU 3496 Watch The Movie
- Oracle数据库标准内置函数及过程的查询
- 为什么要用VisualSVN Server,而不用Subversion?
- Android学习之旅--sqlite3 数据库命令操作
- Ubuntu synaptic install
- oracle中的dual表详解
- 如何对程序员进行绩效考核
- tomcat 绿色免安装版
- 开始研究LTE-Advanced
- PHP输出当前进程所有变量 / 常量 / 模块 / 函数 / 类
- failed to lazily initialize a collection of role
- 如何在Drupal当中对内容进行评价和打分?