sqlite3 數據庫命令操作

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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章