收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
首页 > 数据库 > SQLite > 正文

首页 - PHP - 数据库 - 操作系统 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS命令 - jQuery - CSS样式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

SQLite教程(五):数据库和事务

一、Attach数据库:

ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的。见如下示例:

sqlite> CREATE TABLE testtable (first_col integer);

    sqlite> INSERT INTO testtable VALUES(1);

    sqlite> .backup 'D:/mydb.db'   --将当前连接中的主数据库备份到指定文件。

    sqlite> .exit

    --重新登录sqlite命令行工具:

    sqlite> CREATE TABLE testtable (first_col integer);

    sqlite> INSERT INTO testtable VALUES(2);

    sqlite> INSERT INTO testtable VALUES(1);

    sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;    

    sqlite> .header on            --查询结果将字段名作为标题输出。

    sqlite> .mode column        --将每列都分开显示。

    sqlite> SELECT t1.first_col FROM testtable t1, mydb.testtable t2 WHERE t.first_col = t2.first_col;

    first_col

    ----------

    1

二、Detach数据库:

卸载将当前连接中的指定数据库,注意main和temp数据库无法被卸载。见如下示例:
--该示例承载上面示例的结果,即mydb数据库已经被Attach到当前的连接中。

    sqlite> DETACH DATABASE mydb;

    sqlite> SELECT t1.first_col FROM testtable t1, mydb.testtable t2 WHERE t.first_col = t2.first_col;

    Error: no such table: mydb.testtable

三、事务:

在SQLite中,如果没有为当前的SQL命令(SELECT除外)显示的指定事务,那么SQLite会自动为该操作添加一个隐式的事务,以保证该操作的原子性和一致性。当然,SQLite也支持显示的事务,其语法与大多数关系型数据库相比基本相同。见如下示例:

sqlite> BEGIN TRANSACTION;

    sqlite> INSERT INTO testtable VALUES(1);

    sqlite> INSERT INTO testtable VALUES(2); 

    sqlite> COMMIT TRANSACTION;      --显示事务被提交,数据表中的数据也发生了变化。

    sqlite> SELECT COUNT(*) FROM testtable;

    COUNT(*)

    ----------

    2

    sqlite> BEGIN TRANSACTION;

    sqlite> INSERT INTO testtable VALUES(1);

    sqlite> ROLLBACK TRANSACTION;  --显示事务被回滚,数据表中的数据没有发生变化。

    sqlite> SELECT COUNT(*) FROM testtable;

    COUNT(*)

    ----------

    2

SQLite教程(六):表达式详解
一、常用表达式:和大多数关系型数据库一样,SQLite能够很好的支持SQL标准中提供的表达式,其函数也与SQL标准保持一致,如:||*/%+-&|=====!=ISISNOTINLIKEAND

SQLite教程(八):命令行工具介绍
工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更

SQLite教程(九):在线备份
一、常用备份:下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤:1).使用SQLiteAPI或Shell工具在源数据库文件上加共享锁。2).使用Shell工

本周排行

更新排行

强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号