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物理位置

clip_image002[26]

在将其Android添加至Path变量中如.;%Android%

输入cmd 打开命令窗窗口输入:sqlite3

如出现以下信息

clip_image004[22]

表示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

clip_image006[20]

如果创建成功,在C盘根目下就可以看得sqlite3数据库文件

clip_image008[20]

 

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;

clip_image010[20]

 

修改显示输出模式

可以通过sqlite命令参数“.mode”修改输出格式。

sqlite>.mode tabs

sqlite>select * from person;

clip_image012[20]

这样看起来清晰了许多。

 

可以将查询出的结果写到文件

sqlite>.mode csv

sqlite>.output personInfo.csv

clip_image014[20]

输出结果

clip_image016[20]

 

读取可执行sql语句文件

在C盘根目录

新建文件order_person.sql,里面输入:select * from person order by id desc;

Sqlite命令窗口

sqlite>.mode tabs

sqlite> .read order_person.sql  (读取执行sql文件语句)

clip_image018[20]

 

打开或关闭标题的显示

在sqlite命令窗口中,查询出的结果标题默认是不显示的,我们可以通过执行.header  on/off从而进行对标题显示或关闭。

sqlite>.header on

sqlite>select * from person;

clip_image020[20]

 

SQLite3导入导出数据库

导出数据库

sqlite>.database(显示数据库信息)

sqlite>.backup main persondb.sql(备份数据库main (注:备份默认数据库.backup .defaultdb.sql))

clip_image022[20]

导出表

sqlite>.output person_table.sql

sqlite>.dump person

clip_image024[20]

 

还原数据库

sqlite >.restore mydb.db_bak

 

更新数据

sqlite>update person set name='诸葛孔明' where id=4;

clip_image026[20]

 

删除数据

       删除某调数据

       sqlite> delete from person where id=6;

clip_image028[20]

 

删除表

    sqlite>drop table person;

clip_image030[20]

 

表中添加字段

       sqlite>.schema country

       sqlite>alter table country add column scope integer;

clip_image032[20]

原创粉丝点击