转载:https://www.cnblogs.com/chuankang/p/8727316.html
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>
1 public void SQLiteMethod() 2 { 3 using (DbBase db = CreateDB.CreateDbBase()) 4 { 5 //新增列 6 int a = db.Execute(@"ALTER TABLE Student ADD 'SEX' varchar"); 7 8 //删除列 9 //1.首先根据Student表创建一张新表Student2 10 //2.然后我们删除Student这个表 11 //3.将Student2这个表重命名为Student 12 var tran = db.DbTransaction; 13 int b1 = db.Execute(@"CREATE TABLE Student2 as select ID,NAME,ADDRESS FROM Student ", tran); 14 int b2 = db.Execute(@"DROP TABLE if exists Student ", tran); 15 int b3 = db.Execute(@"ALTER TABLE Student2 rename to Student ", tran); 16 17 if (b1 == 0 && b2 == 0 && b3 == 0) 18 { 19 tran.Commit(); 20 } 21 else 22 { 23 tran.Rollback(); 24 } 25 26 //增 27 int index = db.Execute(@"INSERT INTO Student(ID,NAME,ADDRESS) 28 VALUES(1, '李四', '东方明珠') "); 29 //删 30 int index2 = db.Execute(@"DELETE FROM Student WHERE ID = 1 "); 31 32 //改 33 var updateSql = "UPDATE Student SET NAME='李白' WHERE ID=@ID"; 34 bool res = db.Update<Student>(updateSql, new { ID = 1 }); 35 36 //查 37 string selectSql = @"SELECT * FROM Student "; 38 var student = db.Query<Student>(selectSql); 39 40 //批量插入 41 bool resBatch = db.InsertBatch<Student>(student); 42 } 43 }
EF建表