• SQLite简明教程(转)


     

    最早使用SQLite是因为sql2005实在是重量了,我的老机器跑的咯吱咯吱了。
    而且,Access用得不习惯--指的是.Net的访问。
    后来Cnblogs搜索了一下,觉得SQLite不错,因为我的框架本身没有使用存储过程。
    废话不多说,言归正传。
    1
    。从www.sqlite.org下载SQLite 3.3.4的版本
      
    为了方便,我把它解压了,就一个SQLite3.exe,放入Windows目录下。
       Cmd
    进入命令行
       1)
      
    创建数据库文件:
       >SQLite3 d:"test.db
    回车
      
    就生成了一个test.dbd盘。
      
    这样同时也SQLite3挂上了这个test.db
       2)
      
    .help可以看看有什么命令
       >.help
    回车即可
       3)
    可以在这里直接输入SQL语句创建表格;结束,然后回车就可以看到了
       4)
    看看有创建了多少表
       >.tables
       5)
    看表结构
       >.schema
    表名
       6)
    看看目前挂的数据库
       >.database
       7)
    如果要把查询输出到文件
       >.output
    文件名
       >
    查询语句;
      
    查询结果就输出到了文件c:"query.txt

       把查询结果用屏幕输出
       >.output stdout

       8)把表结构输出,同时索引也会输出
         .dump
    表名
       9)
    退出
       >.exit
    或者.quit

    2。从http://sqlite.phxsoftware.com/下载Ado.net驱动。
      
    下载了安装,在安装目录中存在System.Data.SQLite.dll
       
    我们只需要拷贝这个文件到引用目录,并添加引用即可对SQLite数据库操作了
      
    所有的Ado.net对象都是以SQLite开头的,比如SQLiteConnection
      
    连接串只需要如下方式
       Data Source=d:"test.db
    或者DataSource=test.db--应用在和应用程序或者.net能够自动找到的目录
      
    剩下的就很简单了~~

    3SQL语法
      
    由于以前用SQLServer或者ISeries,所以DDL的语法很汗颜
       1)
    创建一个单个Primary Keytable
       CREATE TABLE  [Admin] (
     [UserName] [nvarchar] (20)   PRIMARY KEY NOT NULL ,
     [Password] [nvarchar] (50)   NOT NULL ,
     [Rank] [smallint] NOT NULL ,
     [MailServer] [nvarchar] (50)   NOT NULL ,
     [MailUser] [nvarchar] (50)   NOT NULL ,
     [MailPassword] [nvarchar] (50)   NOT NULL ,
     [Mail] [nvarchar] (50)   NOT NULL
       ) ;
       2)
    创建一个多个Primary Keytable
       CREATE TABLE  [CodeDetail] (
     [CdType] [nvarchar] (10)  NOT NULL ,
     [CdCode] [nvarchar] (20)  NOT NULL ,
     [CdString1] [ntext]   NOT NULL ,
     [CdString2] [ntext]   NOT NULL ,
     [CdString3] [ntext]   NOT NULL,
      PRIMARY KEY (CdType,CdCode)
            
       ) ;
       3)
    创建索引
       CREATE  INDEX [IX_Account] ON  [Account]([IsCheck], [UserName]);
      
      
    还可以视图等等。
    4.
    还有很有用的SQL
      Select * from Sqlite_master
      Select datetime('now')
      Select date('now')
      Select time('now')
     
    以及很多函数,具体可以参考SQLitewiki.

    oh,
    还有就是看到有人说,好像成批插入的时候,启动事务,比不启动事务快n
    还有就是尽量使用参数化的SQL,估计和商用DB一样能够自动Prepare.

    ===========

    sqlite可以在shell/dos command底下直接执行命令:

    sqlite3 film.db "select * from film;"

    输出 HTML 表格:

    sqlite3 -html film.db "select * from film;"

    将数据库「倒出来」:

    sqlite3 film.db ".dump" > output.sql

    利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库备份了):

    sqlite3 film.db < output.sql

    在大量插入资料时,你可能会需要先打这个指令:

    begin;

    插入完资料后要记得打这个指令,资料才会写进数据库中:

    commit;

    ;

  • 相关阅读:
    Socket接受多包的问题
    用C#实现winform对数据库读写图片
    C#下载代码,防迅雷
    linux的用户和组
    计算机硬件基础
    操作系统及网络协议
    mysql cluster排错经验分享
    清空使用的swap方法
    智能DNS的安装和配置
    关于nginx和cacti的一次排错经历
  • 原文地址:https://www.cnblogs.com/88223100/p/1157029.html
Copyright © 2020-2023  润新知