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

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

1、基本简介java

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

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

相关资源

wikipedia.orgshell

 

2、下载安装数据库

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

 

3、基本命令编程

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

二、命令行帮助:.help服务器

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

 

4、数据库和表的相关命令编程语言

一、建立一个新的数据库: sqlite3      文件名
先创建一个 Db 目录,并在 Db 目录中建立一个 test.db 数据库文件,打开控制台窗口,命令以下:
mkdir Db
cd Db
sqlite3 test.db
 
二、打开一个已经存在的数据库:sqlite3 已经存在的文件名
建立一个新数据库和打开一个已经存在的数据库命令是如出一辙的,若是文件在当前目录下不存在,则新建;若是存在,则打开。
 
三、导入数据: .read      数据文件
打开记事本,并将下列 SQL 语句复制到记事本中,保存为 test.sql 到上面说到的 Db 目录下,在命令行环境中输入
.read   test.sql
即将全部的数据导入到 test.db 数据库中。
test.db 导入数据
BEGIN   TRANSACTION ;
CREATE   TABLE  Cars(Id  integer   PRIMARY   KEY , Name  text , Cost  integer );
INSERT   INTO  Cars  VALUES ( 1 , ' Audi ' , 52642 );
INSERT   INTO  Cars  VALUES ( 2 , ' Mercedes ' , 57127 );
INSERT   INTO  Cars  VALUES ( 3 , ' Skoda ' , 9000 );
INSERT   INTO  Cars  VALUES ( 4 , ' Volvo ' , 29000 );
INSERT   INTO  Cars  VALUES ( 5 , ' Bentley ' , 350000 );
INSERT   INTO  Cars  VALUES ( 6 , ' Citroen ' , 21000 );
INSERT   INTO  Cars  VALUES ( 7 , ' Hummer ' , 41400 );
INSERT   INTO  Cars  VALUES ( 8 , ' Volkswagen ' , 21600 );
COMMIT ;

BEGIN   TRANSACTION ;
CREATE   TABLE  Orders(Id  integer   PRIMARY   KEY , OrderPrice  integer   CHECK (OrderPrice > 0 ), 
                    Customer 
text );
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 1200 , "Williamson");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 200 , "Robertson");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 40 , "Robertson");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 1640 , "Smith");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 100 , "Robertson");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 50 , "Williamson");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 150 , "Smith");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 250 , "Smith");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 840 , "Brown");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 440 , "Black");
INSERT   INTO  Orders(OrderPrice, Customer)  VALUES ( 20 , "Brown");
COMMIT ;

BEGIN   TRANSACTION ;
CREATE   TABLE  Friends(Id  integer   PRIMARY   KEY , Name  text   UNIQUE   NOT   NULL
                     Sex 
text   CHECK (Sex  IN  ( ' M ' ' F ' )));
INSERT   INTO  Friends  VALUES ( 1 , ' Jane ' ' F ' );
INSERT   INTO  Friends  VALUES ( 2 , ' Thomas ' ' M ' );
INSERT   INTO  Friends  VALUES ( 3 , ' Franklin ' ' M ' );
INSERT   INTO  Friends  VALUES ( 4 , ' Elisabeth ' ' F ' );
INSERT   INTO  Friends  VALUES ( 5 , ' Mary ' ' F ' );
INSERT   INTO  Friends  VALUES ( 6 , ' Lucy ' ' F ' );
INSERT   INTO  Friends  VALUES ( 7 , ' Jack ' ' M ' );
COMMIT ;

BEGIN   TRANSACTION ;
CREATE   TABLE   IF   NOT   EXISTS  Customers(CustomerId  integer   PRIMARY   KEY , Name  text );
INSERT   INTO  Customers(Name)  VALUES ( ' Paul Novak ' );
INSERT   INTO  Customers(Name)  VALUES ( ' Terry Neils ' );
INSERT   INTO  Customers(Name)  VALUES ( ' Jack Fonda ' );
INSERT   INTO  Customers(Name)  VALUES ( ' Tom Willis ' );

CREATE   TABLE   IF   NOT   EXISTS  Reservations(Id  integer   PRIMARY   KEY
                                        CustomerId 
integer Day   text );
INSERT   INTO  Reservations(CustomerId,  Day VALUES ( 1 ' 2009-22-11 ' );
INSERT   INTO  Reservations(CustomerId,  Day VALUES ( 2 ' 2009-28-11 ' );
INSERT   INTO  Reservations(CustomerId,  Day VALUES ( 2 ' 2009-29-11 ' );
INSERT   INTO  Reservations(CustomerId,  Day VALUES ( 1 ' 2009-29-11 ' );
INSERT   INTO  Reservations(CustomerId,  Day VALUES ( 3 ' 2009-02-12 ' );
COMMIT ;

BEGIN   TRANSACTION ;
CREATE   TABLE  Names(Id  integer , Name  text );
INSERT   INTO  Names  VALUES ( 1 , ' Tom ' );
INSERT   INTO  Names  VALUES ( 2 , ' Lucy ' );
INSERT   INTO  Names  VALUES ( 3 , ' Frank ' );
INSERT   INTO  Names  VALUES ( 4 , ' Jane ' );
INSERT   INTO  Names  VALUES ( 5 , ' Robert ' );
COMMIT ;

BEGIN   TRANSACTION ;
CREATE   TABLE  Books(Id  integer   PRIMARY   KEY , Title  text , Author  text
                   Isbn 
text   default   ' not available ' );
INSERT   INTO  Books  VALUES ( 1 , ' War and Peace ' , ' Leo Tolstoy ' , ' 978-0345472403 ' );
INSERT   INTO  Books  VALUES ( 2 , ' The Brothers Karamazov ' ,
                         
' Fyodor Dostoyevsky ' , ' 978-0486437910 ' );
INSERT   INTO  Books  VALUES ( 3 , ' Crime and Punishment ' ,
                         
' Fyodor Dostoyevsky ' , ' 978-1840224306 ' );
COMMIT

 

 四、列出全部的数据表: .tables
完成上面全部的工做之后,咱们就能够列出全部的数据表了
 
五、显示数据库结构: .schema
其实就是一些 SQL 语句,他们描述了数据库的结构,如图
  
 
六、显示表的结构: .schema     表名
 
 

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

这时咱们能够看到,整个表以 SQL 语句的形式为导出来了,可是只是显示在终端上,如何把它导出到文件中呢?
 
八、设置导出目标: 
.output      文件名  
或者
.output   stdout
先运行 .output cars.sql ,而后再运行 .dump 命令试试看?若是要回复成导出到终端(标准输出),则运行 .output stdout
 

 

5、数据显示相关命令
 
一、设置分隔符: .separator     分隔符
咱们能够首先运行 SELECT * FROM Names; ,能够看到默认的分隔符是 | 
运行.separator : 之后,再 SELECT * FROM Names;,能够看到分隔符已经变成 : 了
 
二、设置显示模式: .mode     模式
有好几种显示模式,默认的是 list 显示模式,通常咱们使用 column 显示模式,还有其余几种显示模式能够 .help 看 mode 相关内容。看看下面的图,和上面是否是显示的不同了?
 
三、显示标题栏: .headers    on
看看,是否是又不太同样了?
 
四、设置每一列的显示宽度: .width      w1,w2,w3.........
一些内容,默认的宽度显示不下,这个命令就有用了
 
五、设置 NULL 值显示成什么样子: .nullvalue      你想要的NULL值格式
默认状况下NULL值什么也不显示,你能够设置成你本身想要的样子
 
六、列出当前显示格式设置状况: .show
 
七、配置文件 .sqliterc

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

相关文章
相关标签/搜索