博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[SQLite] SQLite学习手册(数据库和事务)
阅读量:6227 次
发布时间:2019-06-21

本文共 1728 字,大约阅读时间需要 5 分钟。

转载地址: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

分类: 
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/3759013.html如需转载请自行联系原作者
demoblog
你可能感兴趣的文章
我的友情链接
查看>>
10年以后第一次做作业的感受
查看>>
SpannableString与SpannableStringBuilder使用
查看>>
fastreport打印,设置
查看>>
如何批量导出已经开通Lync权限的用户
查看>>
C#4.0的dynamic和var及object关键字辨析
查看>>
C# 中的委托和事件
查看>>
Ajax筛选检索Filter高级插件(OpenCart)
查看>>
开发和运维那点事
查看>>
linux 下sudo的命令
查看>>
linux系统信息查看命令
查看>>
mysql+drbd+heartbeat
查看>>
扩展ModelForm字段
查看>>
[20181225]12CR2 SQL Plan Directives.txt
查看>>
left join的多重串联与groupby
查看>>
PowerShell【For篇】
查看>>
大道至简阅读笔记2
查看>>
UVA 111-History Granding
查看>>
hdu1003(最大连续子列和 )
查看>>
BZOJ1121:[POI2008]激光发射器SZK(乱搞)
查看>>