zoukankan      html  css  js  c++  java
  • 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者交流!群成员职业不限,程序员居多,讨论主题不限:技术分享,生活感悟,职场心得,时事分析...

  • 相关阅读:
    sqlserver 动态行转列
    c#指定日期格式
    The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
    Codeforces Round #410 (Div. 2)A B C D 暴力 暴力 思路 姿势/随机
    Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) A B C D 暴力 水 二分 几何
    poj 2096 概率dp
    HDU 4405 概率dp
    Codeforces Round #408 (Div. 2) A B C 模拟 模拟 set
    Codeforces Round #301 (Div. 2)A B C D 水 模拟 bfs 概率dp
    HDU 1005 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/idayln/p/3118024.html
Copyright © 2011-2022 走看看