• Android 开发之SQLite基础


      SQLite是一款开源的,嵌入式关系型数据库,它没有独立运行的进程,它与所服务的应用在应用程序进程空间内共生共存。它最初发布于2000年,使用C语言进行开发。这是官网: http://sqlite.org/ !

    它支持ANSI SQL92标准: SQL92 is the third revision of the SQL standard.For more information about SQL92,please click here : http://en.wikipedia.org/wiki/SQL-92 .SQLite实现了零配置,下载安装即用,它简单,可移值,快速,具体细节可以访问其官网: http://sqlite.org/docs.html

      1. 下载CLS并且配置CLS(Command Line Shell):http://sqlite.org/download.html ,比如笔者使用的Windows 7 os,因为下载:Precompiled Binaries for Windows,建议加入PATH中;

        cmd模式输入:sqlite3, 结果如下图:

        

      2. CLS基础使用

    CLS是使用和管理SQLite数据库最常用的工具,它在所有的平台上操作方式都是一样的,主要用于交互模式下执行查询操作以及完成各种数据库管理任务。

    CLS把以点号开始的命名指定为它操作预留命令,例如:.help  结果如下

      A. 创建数据库:启动cmd,输入如下代码:    

    sqlite3 your_data_name.db;

        之后会自动进入sqlite3命令行模式下。这里有个小注意:如果your_data_name.db是第一次创建,那么它不会立即在目录下显示。为什么不立即显示呢?这是为了在数据库结构提交到磁盘前进行永久数据库设置(例如页画大小,字符集),创建完之后,不能轻易更改;当你为your_data_name.db创建完第一张表之后,它就会出现目录下并且显示出来;

    create table test(
    id integer primary key,
    name text,
    age integer
    );

    sqlite3> .table  查看当前db的table ,会显示 test

      B. 设置显示格式

    sqlite3> .show 查看当前设置,结果如下:

    从上图可以得之:

    • mode的方式:list,其它它有8种方式分别:csv,list,html,column,insert,line,tabs,tcl; 如果有改变直接: .mode column 
    • headers是off状态,如果有改变: .headers on
    • separator为| ,如果要改成= : .separator =
    • 设置列的宽度: 例如: .width 12 10 8  (第一列12个"-" 字符,系统默认为10个"-")
    • output为标准输出
    • 空值输出为:""
    insert into test values(1,'dylan',24);
    insert into test(name,age) values('vic',23);

    sqlite3> .mode column

    select * from test ;

    显示结果为:

    Note: 名为id的列为主键并且是整型,当使用Insert into时没有指定,也同样具备自动增长属性,步长为1;

    sqlite3> .headers on

    个人建议开启:.headers on

    sqlite3> .tables  查看表和视图。注意与.table的区别:.table仅查看表;

    sqlite3> .indeces test  : 查看test表的索引

    sqlite3> .schema 返回数据库的对象: 表结构,索引,视图

    sqlite_master: 是自带系统特殊的表

    从图中我们知道sqlite_master 具有如下字段名:type,name,tal_na,rootpa,sql

      C. 备份数据库

    以上试验了三种方式,只有第三种方式才是正确:

    • 在cmd命令行下使用 sqlite3;
    • 不要进行sqlite> 模式使用;
    • 格式为:sqlite3 your_data_name.db .dump > backup_name
    sqlite> .output demo1.sql
    sqlite> .dump
    sqlite> .output stdout
    sqlite> .exit

    使用.output方式也可以实现备份,不过这种试稍微复杂点,但不管那种方式都少不了:.dump

    数据库导入:

    sqlite3 demo1.db < demo1.sql

    sqlite数据库备份是这种方式备份很简单!!!此篇为sqlite基础篇,此外还有sql 中篇,以及andorid之sqlite应用;然最近因为项目紧急,因此会在端午节过后更新。 






    【Dylan童鞋】

    关注Dylan童鞋,请搜索微信号:DylanTongXue 。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Q群:315858410. 此群用于关注DylanTongXue者交流!群成员职业不限,程序员居多,讨论主题不限:技术分享,生活感悟,职场心得,时事分析...

  • 相关阅读:
    【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
    最短路--Dijkstra算法 --HDU1790
    XMPPFrameWork IOS 开发(六)聊天室
    InfoSphere BigInsights 安装部署
    EXCEL VBA运行不显示系统提示
    android 随手记 倒计时
    Conversion between json and object
    java 运行项目不放到tomcat下的webapps文件夹下放到自己建的文件夹中的处理办法
    sBPM产品介绍
    linux进程,作业,守护进程,进程间同步
  • 原文地址:https://www.cnblogs.com/idayln/p/3118024.html
Copyright © 2020-2023  润新知