zoukankan      html  css  js  c++  java
  • [SQLite] SQLite学习手册(数据库和事务)

    转载地址:http://www.cnblogs.com/stephen-liu74/archive/2012/02/18/2322575.html

    一、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

  • 相关阅读:
    3、spring注解注入
    2、spring注入のArrayList数组对象注入方式
    1、基本知识
    1、log4j的配置与使用
    3、在Eclipse中使用JUnit4进行单元测试(高级篇)
    2、在Eclipse中使用JUnit4进行单元测试(中级篇)
    1、JUnit4简介
    使用BroadcastReceiver实现系统对手机电量进行提示
    使用BroadcastReceiver监听系统接收的短信
    使用BroadcastReceiver实现开机自动运行的Service
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/3759013.html
Copyright © 2011-2022 走看看