转于: SQLite 入门教程(一)基本控制台(终端)命令

一、基本简介

 
SQLite 是一个自持的(self-contained)、无服务器的、零配置的、事务型的关系型数据库引擎。因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中。SQLite 被应用在 Solaris 10操作系统、Mac OS 操作系统、iPhone 和 Skype 中。QT4 、Python 、 PHP 都默认支持 SQLite ,Firefox Amarok 等流行的应用程序在内部也使用了 SQLite.
 

SQLite   数据库引擎实现了主要的 SQL-92 标准,引擎本身只有一个文件,大小不到 300k ,但是并不作为一个独立的进程运行,而是动态或者静态的链接到其他应用程序中。它生成的数据库文件是一个普通的磁盘文件,可以放置在任何目录下。SQLite 本身是 C 语言开发的,开源也跨平台,并且被所有的主流编程语言支持。

相关资源

wikipedia.org

二、下载安装

Windows 版的下载地址为:sqlite-shell-win32-x86-3070701.zip
我们这里下载的是命令行版本,所以是一个可执行文件,还有一个动态链接库版本,如果你的应用程序需要嵌入式数据库,可以下载这个版本。当然,如果你愿意折腾,下载源代码自己编译也是可以的。下载完成,解压出来就一个文件: sqlite3.exe ,可以放置到任意一个路径下,然后把这个路径加入到 PATH 环境变量中,这样我们就可以随时在控制台中运行 SQLite 命令行工具了。

三、基本命令

1、进入命令行环境:sqlite3
打开一个控制台窗口,输入 sqlite3 回车,这时你就进入了 SQLite 命令行环境,如图
它显示了版本号,并告诉你每一条 SQL 语句必须用分号 ; 结尾 
 

2、命令行帮助:.help

在命令行环境下输入 .help 回车,显示所有可使用的命令以及这些命令的帮助。注意:所有的命令开头都是一个点
 
3、退出命令行环境
.quit 或者 .exit  都可以退出

四、数据库和表的相关命令

1、创建一个新的数据库:sqlite3     文件名
先建立一个 Db 目录,并在 Db 目录中创建一个 test.db 数据库文件,打开控制台窗口,命令如下:
mkdir Db
cd Db
sqlite3 test.db
 
2、打开一个已经存在的数据库:sqlite3 已经存在的文件名
创建一个新数据库和打开一个已经存在的数据库命令是一模一样的,如果文件在当前目录下不存在,则新建;如果存在,则打开。
 
3、导入数据:.read     数据文件
打开记事本,并将下列 SQL 语句复制到记事本中,保存为 test.sql 到上面说到的 Db 目录下,在命令行环境中输入
.read   test.sql
即将所有的数据导入到 test.db 数据库中。
test.db 导入数据

,'Crime and Punishment',
                         'Fyodor Dostoyevsky','978-1840224306');
COMMIT
 4、列出所有的数据表: .tables
完成上面所有的工作以后,我们就可以列出所有的数据表了
 
5、显示数据库结构:.schema
其实就是一些 SQL 语句,他们描述了数据库的结构,如图
  
 
6、显示表的结构:.schema    表名
 
 

7、导出某个表的数据: .dump    表名

这时我们可以看到,整个表以 SQL 语句的形式为导出来了,但是只是显示在终端上,如何把它导出到文件中呢?
 
8、设置导出目标: 
.output     文件名  
或者
.output   stdout
先运行 .output cars.sql ,然后再运行 .dump 命令试试看?如果要回复成导出到终端(标准输出),则运行 .output stdout
 
五、数据显示相关命令
 
1、设置分隔符:.separator    分隔符
我们可以首先运行 SELECT * FROM Names; ,可以看到默认的分隔符是 | 
运行.separator : 以后,再 SELECT * FROM Names;,可以看到分隔符已经变成 : 了
 
2、设置显示模式:.mode    模式
有好几种显示模式,默认的是 list 显示模式,一般我们使用 column 显示模式,还有其他几种显示模式可以 .help 看 mode 相关内容。看看下面的图,和上面是不是显示的不一样了?
 
3、显示标题栏:.headers   on
看看,是不是又不太一样了?
 
4、设置每一列的显示宽度:.width     w1,w2,w3.........
一些内容,默认的宽度显示不下,这个命令就有用了
 
5、设置 NULL 值显示成什么样子: .nullvalue     你想要的NULL值格式
默认情况下NULL值什么也不显示,你可以设置成你自己想要的样子
 
6、列出当前显示格式设置情况:.show
 
7、配置文件 .sqliterc

如果我们每次进入命令行都要重新设置显示格式,很麻烦,其实 .show 命令列出的所有设置项都可以保存到一个 .sqliterc 文件中,这样每次进入命令行就自动设置好了。.sqlterc 文件在 Linux 下保存在用户的 Home 目录下,在 Windows 下可以保存到任何目录下,但是需要设置环境变量让数据库引擎能找到它,感兴趣的可以看看帮助。

SQLite 入门教程(一)基本控制台(终端)命令 (转)的更多相关文章

  1. SQLite 入门教程一 基本控制台(终端)命令

    一.基本简介 SQLite 是一个自持的(self-contained).无服务器的.零配置的.事务型的关系型数据库引擎.因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中.SQLite 被应 ...

  2. SQLite 入门教程(二)创建、修改、删除表 (转)

    转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...

  3. SQLite 入门教程(四)增删改查,有讲究 (转)

    转于: SQLite 入门教程(四)增删改查,有讲究 一.插入数据 INSERT INTO 表(列...) VALUES(值...) 根据前面几篇的内容,我们可以很轻送的创建一个数据表,并向其中插入一 ...

  4. SQLite 入门教程(三)好多约束 Constraints(转)

    转于: SQLite 入门教程(三)好多约束 Constraints 一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应 ...

  5. SQLite 入门教程(一)基本控制台(终端)命令

    一.基本简介 SQLite 是一个自持的(self-contained).无服务器的.零配置的.事务型的关系型数据库引擎.因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中.SQLite 被应 ...

  6. SQLite 入门教程 (终端)命令

    一.基本简介 SQLite 是一个自持的(self-contained).无服务器的.零配置的.事务型的关系型数据库引擎.因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中.SQLite 被应 ...

  7. SQLite 入门教程(四)增删改查,有讲究

    增删改查操作,其中增删改操作被称为数据操作语言 DML,相对来说简单一点. 查操作相对来说复杂一点,涉及到很多子句,所以这篇先讲增删改操作,以例子为主,后面再讲查操作. 一.插入数据 INSERT I ...

  8. SQLite 入门教程(二)创建、修改、删除表

    一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schem ...

  9. SQLite 入门教程(三)好多约束 Constraints

    一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应该翻译成约束更贴切一点. 那么什么是约束呢? 我们在数据库中存储数据的 ...

随机推荐

  1. Viz World and Viz Curious Maps 教程 -- 基础篇

    0. 开篇之前的一些废话 本文的内容是之前因为一些原因而写的,现在打算分享出来,内容就不做更改纯迁移了…毕竟我也太久没摸过加密狗了( ╯□╰ ).内容定位是教程,对应的 Curious World M ...

  2. 显示 EXCEL 的页签列表

    如果你的EXCEL表有很多页签,反复点击左右箭头可能会很费时间. 不妨试试在 左箭头 或者 右箭头 上点击 右键,会有页签列表弹出.

  3. Hanoi

    递归解决 汉诺塔 class Han{ int num; int steps; Han(int num){ this.num=num; } void total() { System.out.prin ...

  4. boost 编译

    备份一下,用的时候直接粘贴,免得到处找>_< 32 bjam threading=multi link=static runtime-link=static --stagedir=stag ...

  5. C#变成数据导入Excel和导出Excel

    excel 基础 •整个excel 表格叫工作表:workbook:工作表包含的叫页:sheet:行:row:单元格:cell. •excel 中的电话号码问题,看起来像数字的字符串以半角单引号开头就 ...

  6. zepto源码学习-06 touch

    先上菜,看这个模块的最后一段代码,一看就明白. ['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 't ...

  7. DataTable转换List<T>集合的方法

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data; ...

  8. easyui源码翻译1.32--Combo(自定义下拉框)

    前言 扩展自$.fn.validatebox.defaults.使用$.fn.combo.defaults重写默认值对象.下载该插件翻译源码 自定义下拉框显示一个可编辑的文本框和下拉面板在html页面 ...

  9. usb cdc 协议

    什么是CDC类 (Communication Device Class) USB的CDC类是USB通信设备类 (Communication Device Class)的简称.CDC类是USB组织定义的 ...

  10. Android 如何在Java代码中手动设置控件的marginleft

    1.定义LayoutParams LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.La ...