zoukankan      html  css  js  c++  java
  • 【SQLite】可视化工具SQLite studio

     SQLite数据库的特性

    特点:

    1.轻量级
    2.独立性,没有依赖,无需安装
    3.隔离性 全部在一个文件夹系统
    4.跨平台 支持众多操作系统
    5.多语言接口 支持众多编程语言
    6.安全性 事物,通过独占性和共享锁来实现独立事务的处理,多个进程可以在同一个时间内从同一个数据库读取数据,但只有一个可以写入数据
    所支持的数据类型:

    支持NULL,INTEGER,Real,text,blob数据类型
    一次代表,空值,整型值,浮点值,字符串类型,二进制对象,
    动态类型引用(弱引用)
    当某个值插入到数据库是,SQlite将会检查他的类型,如果该类型与关联的列不匹配,SQlite则会尝试将改制转换成该列的类型,如果不能转换,则该值将作为本身的类型储存

    使用须知:
    没有可用于SQlite的网络服务器,只能通过网络共享可能存在文件锁定或者性能问题。
    没有用户账户的概念,而是根据文件系统的共享设置。
    支持数据库大小至2TB。

     SQLite的可视化工具

    下载地址:https://sqlitestudio.pl/index.rvt?act=download

     Windows下操作

    下载

    解压后,运行exe文件

    新建个数据库文件

    链接数据库文件

    路径和名称设置好后,点击链接测试

     

    然后点击OK 就完成了!

     SQLite菜鸟教程链接:http://www.runoob.com/sqlite/sqlite-tutorial.html

    SQLite不支持drop column,所以删除一列还是和一般sql语句还是有点区别的,下面Dapper对sqlite进行增删改查

     <connectionStrings>
        <add name="SQLiteCon" connectionString="Data Source=D:DBFileSQLiteTest.db;Version=3" providerName="System.Data.SQLite" />
      </connectionStrings>
            public void SQLiteMethod()
            {
                using (DbBase db = CreateDB.CreateDbBase())
                {
                    //新增列
                    int a = db.Execute(@"ALTER TABLE Student ADD 'SEX' varchar");
    
                    //删除列 
                    //1.首先根据Student表创建一张新表Student2
                    //2.然后我们删除Student这个表
                    //3.将Student2这个表重命名为Student
                    var tran = db.DbTransaction;
                    int b1 = db.Execute(@"CREATE TABLE Student2 as select ID,NAME,ADDRESS FROM Student ", tran);
                    int b2 = db.Execute(@"DROP TABLE if exists Student ", tran);
                    int b3 = db.Execute(@"ALTER TABLE Student2 rename to Student ", tran);
    
                    if (b1 == 0 && b2 == 0 && b3 == 0)
                    {
                        tran.Commit();
                    }
                    else
                    {
                        tran.Rollback();
                    }
    
                    //
                    int index = db.Execute(@"INSERT INTO Student(ID,NAME,ADDRESS)
                                             VALUES(1, '李四', '东方明珠') ");
                    //
                    int index2 = db.Execute(@"DELETE FROM Student WHERE ID = 1 ");
    
                    //
                    var updateSql = "UPDATE Student SET NAME='李白' WHERE ID=@ID";
                    bool res = db.Update<Student>(updateSql, new { ID = 1 });
    
                    //
                    string selectSql = @"SELECT * FROM Student ";
                    var student = db.Query<Student>(selectSql);
    
                    //批量插入
                    bool resBatch = db.InsertBatch<Student>(student);
                }
            }

    EF建表

    未雨绸缪、富有耐心、律己严厉和不偏不倚
  • 相关阅读:
    python的多进程
    sqlalchemy的缓存和刷新
    uuid
    区块链的理解
    列表推导式,两个for循环的例子
    Fiddler 抓包工具总结
    python---webbrowser模块的使用,用非系统默认浏览器打开
    使用jmeter做web接口测试
    selenium2中关于Python的常用函数
    Selenium2+Python自动化学习笔记(第1天)
  • 原文地址:https://www.cnblogs.com/chuankang/p/8727316.html
Copyright © 2011-2022 走看看