第二章 开始啦

Command-Line Program

shell mode

输入sqlite3即可。如果不指定数据库名字,sqlite会使用in-memory数据库。

可以使用CLP作为交互式的shell。所有输入会被作为query,以.开头的命令会作为CLP操作。

  • .help
  • .exit
  • .show

command-line mode

数据库管理

创建数据库

sqlite3 test.db不会实际创建数据库文件,直到我们创建了table。这之前可以设置page size, character encodeing等不太容易更改的属性。

创建table

sqlite> create table test (id integer primary key, value text);

当一列属性为integer primary key时,这列会自增。

增加数据

sqlite> insert into test (id, value) values(1, 'eenie');
sqlite> insert into test (id, value) values(2, 'meenie');
sqlite> insert into test (value) values('miny');
sqlite> insert into test (value) values('mo');

读取数据

sqlite> .mode column
sqlite> .headers on
sqlite> select * from test;

前两行是为了格式化输出

id          value
----------  ----------
1           eenie
2           meenie
3           miny
4           mo

创建index和view

sqlite> create index test_idx on test (value);
sqlite> create view schema as select * from sqlite_master;

获取数据库schema信息

.table [pattern]查询table和view的信息

sqlite> .tables
schema  test

.indices [table name]查询indexes信息

sqlite> .indices test
test_idx

.schema [table name]查询table或view的SQL定义。(DDL)

sqlite> .schema
CREATE TABLE test (id integer primary key, value text);
CREATE INDEX test_idx on test (value);
CREATE VIEW schema as select * from sqlite_master;

查询sqlite_master获取更多信息

sqlite> select type, name,tbl_name,sql from sqlite_master order by type;
type        name        tbl_name    sql
----------  ----------  ----------  -------------------------------------
index       test_idx    test        CREATE INDEX test_idx on test (value)
table       test        test        CREATE TABLE test (id integer primary
view        schema      schema      CREATE VIEW schema as select * from s

导出数据

使用.dump导出数据库对象为SQL格式到输出。默认输出为屏幕。可以通过.output命令改变输出。

sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE test (id integer primary key, value text);
INSERT INTO "test" VALUES(1,'eenie');
INSERT INTO "test" VALUES(2,'meenie');
INSERT INTO "test" VALUES(3,'miny');
INSERT INTO "test" VALUES(4,'mo');
CREATE INDEX test_idx on test (value);
CREATE VIEW schema as select * from sqlite_master;
COMMIT;

导入数据

  • SQL格式的数据库,使用.read命令。
  • 如果是CSV或其他被分割的数据,使用.import [file][table]命令。可以通过.separator命令更改分隔符。
    ###格式化
  • .echo. 打开,执行一个命令,会输出命令。
  • .headers. on,输出包含列名。
  • .prompt 更改提示语。
  • .nullvalue 空值的显示
  • .mode 设置输出的格式ascii column csv html insert line list tabs tcl其中一个

导出delimited数据

执行unattended命令(command-line 方式)

有两种方式

  1. 提供SQL命令

    sqlite3 test.db .dump
    
    sqlite3 test.db "select * from test"
    
  2. 通过重定向将文件作为输入。

    sqlite3 test2.db <test.sql

备份数据库

  1. .dump命令导出SQL格式。
  2. 制作二进制备份。先压缩,减少体积。
    sqlite3 test.db vacuum
    cp test.db test.backup
    

一般来说,二进制备份并没有SQL备份具有可移植性。

注意:无论备份做的多好,其效果取决于数据恢复方法。

获取数据库文件信息

使用sqlite3_analyzer工具。

时间: 2024-10-14 09:09:05

第二章 开始啦的相关文章

Machine Learning In Action 第二章学习笔记: kNN算法

本文主要记录<Machine Learning In Action>中第二章的内容.书中以两个具体实例来介绍kNN(k nearest neighbors),分别是: 约会对象预测 手写数字识别 通过“约会对象”功能,基本能够了解到kNN算法的工作原理.“手写数字识别”与“约会对象预测”使用完全一样的算法代码,仅仅是数据集有变化. 约会对象预测 1 约会对象预测功能需求 主人公“张三”喜欢结交新朋友.“系统A”上面注册了很多类似于“张三”的用户,大家都想结交心朋友.“张三”最开始通过自己筛选的

关于《大道至简》第二章的收获

今天阅读了大道至简的第二章,这一章的标题是懒人造就了方法.文章以愚公和李冰作为例子,讲述了好的方法是如何产生的.由此我们可以想到身边的一些例子,假如我们要给一些学生出算数题,题量不大的情况下我们可以直接出题,当要求题量的时候这就是一个大工程了.为此,我们可以写一个简单的软件实现出题的功能.虽然写这个软件会花费一些时间,但是完成之后会省下很大的精力. 我们应该学会将源代码分写在几个文件中,而不是所有的都写在一起,因为都放在一个文件中,到了后期的维护可能会是很大的问题,因此Unit关键字出现了,将一

【网络原理】期末复习笔记 第二章 物理层

第二章 物理层 2.1物理层的基本概念 物理层定义:解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体. 物理层的主要任务为:确定与传输媒体的接口的特性 机械特性:接口形状,大小,引线数目 功能特性:电压强度决定信号大小 电器特性 :规定电压范围 过程特性:建立连接时各个相关部件的工作步骤. 2.2 通讯模型(通讯的目的是传递数据) 信息:文字/图片/视频 数据:信息在传输之前需要编码,编码之后的信息就是数据 信号:数据在通信线路上传递需要变成光信号.电信号 码元:时间间隔

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章  Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理.主机和主机组的管理,以及监控项.模板.触发器.告警的管理和操作,还有Graphs.Screens.Maps及Reports等.通过本章的学习掌握一些基本概念并能够通过Web页面的操作完成对Zabbix的管理. 2.1 定义 hosts(主机) Zabbix中需要监控的服务器.交换机及其他设备我们都统一称作host,这些设备与Za

构建之法第二章个人技术和流程

如果说第一章我还有点概念,那么第二章我可以说一窍不通,什么是VSTS,什么是单元测试,什么是回归测试,还是什么是效能分析--好多的新名称,第一次看见,是那么的没有头绪.要不是百度了,仅仅看书,我完全不知VSTS--Visual Studio Team System,是由微软开发的一套具有高生产力.高集成性.可扩展的生命周期开发工具. 2.1.1节图文并茂的告诉我,单元测试重要作用,可能是自己的能力不足,相关知识了解的太少了,一边看还一边想,单元测试怎么写?写在哪里?什么时候写?就算是按照书本上的

Java 第二章 变量 、数据类型和运算符 笔记

Java 第二章 变量 .数据类型和运算符 一.变量:存储数据的一个基本单元. 二.变量的声明和赋值: 1)声明并赋值:数据类型 变量名=值;      例:int  price=1000; 2)声明.赋值分两步:数据类型 变量名;   例: int  price; 变量名=值;              price=1000; 三.数据类型2种: 1)基本数据类型8种: Byte 长度:-128~127(-2的7次方到2的7次方减1) Short   -2的15次方到2的15次方减1 Int

《大道至简》第二章阅读笔记

<大道至简>这本书在第二章中的主要内容是“懒人创造方法”!因为一个勤勤恳恳.老实工作的人是不太可能会懂得创新的,因为他只知道认真仔细的工作,一点一滴.一丝不苟.按部就班的按照上司交给他的内容,因为他认真负责,不容许自己出现一点纰漏.而懒人则不一样了,因为工作量庞大,所以他们自己因为懒惰而各种寻找方法,从而减轻自己的工作量,动脑筋让自己的实际工作量减到最小,而这时就需要开动脑筋,让自己想出一个可行的办法,从而实现自己的目的. 在这本书的第二章开头,还是延续了这本书的惯例,用一个寓言小故事来引入本

大道至简第二章读后感

 读了大道至简第一章的老愚公的故事,我们知道了勤劳的人总会能够完成所有的困难,最终完成自己的任务,完成自己的目标,愚公移山,看似不能完成,但是与共凭借着子又生孙,孙又生子,活生生的完成了这一个不可能完成的任务,但是在旁人眼里看来,又有一些古板,耗时,毕竟动用了不知道多少代子孙的时间,反而观之第二章的李冰,修建都江堰,也需要“移山”,而且山上又全是石头,要是按照愚公的办法,那得修到什么时候才能完工?但是他发现了最终的方法,用火烧石头,然后浇水,石头就会变得酥脆容易挖走,这就是一种智慧. 从某种情况

第二章读后感

第二章讲述了如何搭建Android底层开发的环境,主要包括Android应用程序开发环境.AndroidNDK开发环境和交叉编译环境的搭建. 开发.测试和调试linux驱动.hal程序库需要的工具:jdk6或以上版本.eclipse3.4或以上版本 adt.cdt androidsdk.android ndk.交叉编译环境.linux内核源代码.android源代码.用于调试开发板的串口工具:minicom. 安装jdk:下载压缩包.将其解压.在终端输入命令打开profile文件来设置环境变量.

读书笔记第二章

第二章Linux的驱动程序需要android应用程序以及android NDK程序来测试Linux驱动.因此,不信需要配置Linux驱动开发环境,还需要配置开发android应用程序以及android Ndk程序的开发环境.需要的工具:jdk6或以上版本.eclipse 3.4或以上版本.ADT.CDT.android SDK.android NDk.交叉编译环境.linux内核源代码.Android源代码.用于调试开发板的串口工具:minicom.搭建android应用程序开发环境:安装and