最简单的数据库sqlite3

标签: 数据库 sqlite3 | 发表时间:2012-06-23 13:42 | 作者:iTech
出处:http://www.cnblogs.com/itech/


一 sqlite

简单地说SQLite数据库对应的就是一个文件(一般命名为xxx.db)。可以通过sqlite shell命令行来操作sqlite数据库,也可以在其他的语言中通过api来操作sqlite数据库。sqlite数据库的访问甚至不需要用户名和密码。

 

在windows上可以下载: sqlite-shell-win32-x86-3071300.zip , 其他平台可以下载对应的shell命令行。

 

帮助:

 

d:\sqlite_test>sqlite3.exe test.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .help
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
                         If TABLE specified, only dump tables matching
                         LIKE pattern TABLE.
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.
                         With no args, it turns EXPLAIN on.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices ?TABLE?       Show names of all indices
                         If TABLE specified, only show indices for tables
                         matching LIKE pattern TABLE.
.load FILE ?ENTRY?     Load an extension library
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DB? FILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.stats ON|OFF          Turn stats on or off
.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.trace FILE|off        Output each SQL statement as it is run
.vfsname ?AUX?         Print the name of the VFS stack
.width NUM1 NUM2 ...   Set column widths for "column" mode
.timer ON|OFF          Turn the CPU timer measurement on or off

 

 

二 使用sqlite

1)打开或创建sqlite数据库

 

d:\sqlite_test>sqlite3.exe test.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 

 

 

2) 创建表及插入数据

sqlite> create table mytable(name varchar(10), age smallint);
sqlite> insert into mytable values("itech", 5);
sqlite> insert into mytable values("jason", 10);
sqlite> select * from mytable;
itech|5
jason|10

sqlite> 

 

3)查看表及表的schema

sqlite> .tables
mytable
sqlite> .schema mytable
CREATE TABLE mytable(name varchar(10), age smallint);

sqlite> 

 

4)数据库导出为ascii的sql文件 + 重新导入到新的数据库

d:\sqlite_test>echo .dump | sqlite3 test.db > test.db.dump 

d:\sqlite_test>type test.db.dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE mytable(name varchar(10), age smallint);
INSERT INTO "mytable" VALUES('itech',5);
INSERT INTO "mytable" VALUES('jason',10);
COMMIT;
 

 

d:\sqlite_test>type test.db.dump | sqlite3 test2.db
d:\sqlite_test>sqlite3 test2.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
mytable
sqlite>

 

 

5)格式化输出

sqlite> .mode column
sqlite> .header on
sqlite> select * from mytable;
name        age
----------  ----------
itech       5
jason       10

sqlite> 

 

完! 

本文链接

相关 [数据库 sqlite3] 推荐:

最简单的数据库sqlite3

- - 博客园_iTech's Blog
简单地说SQLite数据库对应的就是一个文件(一般命名为xxx.db). 可以通过sqlite shell命令行来操作sqlite数据库,也可以在其他的语言中通过api来操作sqlite数据库. sqlite数据库的访问甚至不需要用户名和密码. 在windows上可以下载: sqlite-shell-win32-x86-3071300.zip , 其他平台可以下载对应的shell命令行.

sqlite3命令

- - 移动开发 - ITeye博客
转载自: http://www.cnblogs.com/frankliiu-java/archive/2010/05/18/1738144.html. SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令. 本文档提供一个样使用sqlite3的简要说明.

sqlite3语法小结

- - CSDN博客推荐文章
SQLite3不支持的SQL语法请参考:http://hyshang.blog.163.com/blog/static/4594582220121311728522/. 在SQLite3中统计总的行数. 生成的结果有一行一列,字段名为linenum,内容为行数的字符串. 在SQLite3中显示从第N条开始的M条记录.

SQLite3 C语言API入门

- - BlogJava_首页
SQLite3 C语言API入门. 我们下载sqlite 源码包,只需要其中的sqlite3.c、sqlite.h即可. 在这个操作中我们执行了如下操作:. 当然这中间会有一些状态的判断以及内存指针的释放等. 打开数据库的API如下:. 这里会引入一个非常复杂的sqlite3的数据结构. 打开数据库除了这种形式意外,还有sqlite3_open、sqlite3_open16、sqlite3_open_v2几种形式,基本上类似.

数据库sharding

- - 数据库 - ITeye博客
当团队决定自行实现sharding的时候,DAO层可能是嵌入sharding逻辑的首选位置,因为在这个层面上,每一个DAO的方法都明确地知道需要访问的数据表以及查询参数,借助这些信息可以直接定位到目标shard上,而不必像框架那样需要对SQL进行解析然后再依据配置的规则进行路由. 另一个优势是不会受ORM框架的制约.

数据库索引

- - CSDN博客推荐文章
索引是由用户创建的、能够被修改和删除的、实际存储于数据库中的物理存在;创建索引的目的是使用户能够从整体内容直接查找到某个特定部分的内容. 一般来说,索引能够提高查询,但是会增加额外的空间消耗,并且降低删除、插入和修改速度. 1.聚集索引:表数据按照索引的顺序来存储的. 2.非聚集索引:表数据存储顺序与索引顺序无关.

数据库事务

- - 数据库 - ITeye博客
事务传播发生在类似以下情形:. 假设methodB的配置是:. 如果methodA在事务里,那么methodB也在这个事务中运行. 如果methodA不在事务里,那么methodB重新建立一个事务运行. 如果methodA在事务里,那么methodB也在这个事务中运行. 如果methodA不在是事务里,那么methodB在非事务中运行.

数据库优化

- - 数据库 - ITeye博客
程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点: . a) SQL的使用规范: .   i.尽量避免大事务操作,慎用holdlock子句,提高系统并发能力.   ii.尽量避免反复访问同一张或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据到临时表中,然后再做连接.   iii.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作.

数据库调优

- - 数据库 - ITeye博客
1、1、调整数据结构的设计. 这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等. 这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构.