Sqlite入门
简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布。 工作原理不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。 翻译成程序狗的话就是:你只需要一个驱动包,就可以来创建一个sqlite数据库,并对其进行操作了;不像mysql,oracle之类,还需要去下载个服务端软件,安装等等。 安装我的操作系统是centos6.5,我不记得有安装过sqlite3,但是我机器上确实有。如果你的机器上没有,那么安装本身也很简单,网上一对教程,自己可以查找,这里仅贴一个我没有试过的教程,你可以试试,相信安装步骤差别大同小异:
初步使用在命令行中输入sqlite3,即可进入sqlite3的命令行控制台。针对sqlite的操作,我们仅从最基本的,数据库,操作,表操作做简单说明。 创建数据库直接在控制台中输入:sqlite3 dbname即可创建一个sqlite3数据库,例如: sqlite3 hello.db 或者 sqlite3 hello 这样就创建了一个名字为hello或者hello.db的sqlite数据库,随意命名即可,不过一般习惯还是命名为**.db为好,这样一眼就可以看出来这是个数据库文件。 进入数据库其实上名的命令也是进入数据库的命令,如果当前路径下没有命名的数据库,则 sqlite3 dbname会首先创建一个数据库,然后进入。如果该名字的数据库已经存在,则直接进入。 查看数据库相关信息
创建表-下面一个建表语句示例: create table user( id integer primary key autoincrement not null,name varchar(32),email varchar(100),salt varchar(64),crypted_password varchar(64),created_at datetime default (datetime('now','localtime')) ); 注意事项:在mysql下用习惯了auto_increment来设置主键自增,但是sqlite3,必须用autoincrement 而不是auto_increment insert into user(name,email,salt,crypted_password) values('admin','zhangtao54@gmail.com','27ad28b980affe8c453e4f65fadcba45624b6a01','a96cdd2daff763cbab9028f2730d83a6cd5ddb93'); 插入语句与一般的插入语句并没有什么不一样 sqlite> select * from user; 1|admin|zhangtao54@gmail.com|27ad28b980affe8c453e4f65fadcba45624b6a01|a96cdd2daff763cbab9028f2730d83a6cd5ddb93|2016-01-16 20:52:16 sqlite> java操作sqlite,java 操作sqlite与操作其他数据库没有什么差别,唯一需要注意的是,免费版的sqlite没有密码,所以操作它的时候设置不设置密码都一样。当然也有一些办法来进行设置用户名,密码,自行网上搜索测试吧。 public class SqliteTest { public static void main(String[] args) throws ClassNotFoundException,SQLException { String jdbcUrl = "jdbc:sqlite:/home/hello.db"; Class.forName("org.sqlite.JDBC"); Connection connection = DriverManager.getConnection(jdbcUrl); PreparedStatement preparedStatement = connection.prepareStatement("select * from user"); ResultSet resultSet = preparedStatement.executeQuery(); while(resultSet.next()){ int id = resultSet.getInt(1); String name = resultSet.getString(2); System.out.println("id="+id+" name="+name); } resultSet.close(); preparedStatement.close(); connection.close(); } } 欢迎去我的个人站点查看文章 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |