您的位置:首页 > 数据库

sqlite3 数据库命令操作

2013-12-01 09:35 579 查看
Android学习之旅--sqlite3 数据库命令操作
 
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>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,age,sex,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  where name='A';
        在表中搜索年龄>=10并且<=15的项的所有信息
          select  * from   person  where age>=20  and age<=30;
        在表中搜索名字是C的项,显示其name和age
             select name,age fromperson  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>.modetabs
sqlite>select* from person;

这样看起来清晰了许多。
 
可以将查询出的结果写到文件
sqlite>.modecsv
sqlite>.outputpersonInfo.csv

输出结果

 
读取可执行sql语句文件
在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;

 
SQLite3导入导出数据库
导出数据库
sqlite>.database(显示数据库信息)
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;
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 数据库