数据库的分类
本地数据库在本地储存Sqlite网络数据库在网络服务器中储存 Oracle(甲骨文)
SQL Server(微软)
My SQL(Google)
DB2(IBM)
SqliteManager(Sqlite数据库管理工具)
????????关系型数据库结构
????????????????
数据库操作语言——SQL语句
增 插入全数据 语法: Insert Into 表名称 Values (值1, 值2, ...)
注意:Values(所有的值都要写进来)
举例: Insert Into?StudentInfo Values('20200101','刘盼','18','马达加斯加')
插入部分数据 语法: Insert Into 表名称 (字段名称1,字段名称2) Values (值1, 值2, ...)
举例: Insert Into?StudentInfo (Num,Name,Age) Values('20200101','刘盼','18')
改 语法: Update 表名称 Set 字段名称1 = 新值 Where 字段名称2 = 某值
举例: Update StudentInfo Set Address = '马达加斯加' Where Name = '刘盼'
查 语法: Select 字段名称 From 表名称 Where 列表 = 某值(And(与)、Or(或))
查询部分字段: Select Age From StudentInfo Where Name = '李狗蛋'
查询所有字段: Select * From StudentInfo Where Name = '刘盼'?
模糊查询: Select * From StudentInfo Where Name Like '%L%'
查询并排序: Select * From StudentInfo Order By Age ASC/DESC?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(ASC)从小到达排序
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? (DESC)从大到小排序
删 语法: Delete From 表名称 Where(条件)
举例: Delete From StudentInfo Where Num = '20200101'
注意: 这里一定需要加Where(条件)不然这个表格中的数据所有都会删除小
编程实现增删改查
? ? ? ? 1、将DLL导入工程Plugins文件夹
Mono.Data.SqliteUnity\Editor\Data\Mono\lib\mono\2.0\Mono.Data.Sqlite.dll【2017】System.DataUnity\Editor\Data\Mono\lib\mono\2.0\System.Data.dllSqlite3 1、https://www.sqlite.org/download.html
2、Precompiled Binaries for Windows
3、【64位电脑】sqlite-dll-win64-x64-3310100.zip
? ? ? ? 2、using Mono.Data.Sqlite;
? ? ? ? 3、创建路径(流路径)—— 固定写法“Data Source = ” + 路径
? ? ? ? ? ? ? ??更多判断平台的指令
public string GetDataPath(string databasePath)
{
#if UNITY_EDITOR 【使用Unity引擎运行的】
return String.Concat("data source=", Application.streamingAssetsPath, "/", databasePath);
#endif
#if UNITY_ANDROID【使用安卓系统运行的】
return String.Concat("URI=file:", Application.persistentDataPath, "/", databasePath);
#endif
#if UNITY_IOS 【使用苹果系统运行的】
return String.Concat("data source=", Application.persistentDataPath, "/", databasePath);
#endif
}
? ? ? ? 4、创建数据库连接对象(SqliteConnection)并在构造函数中传入数据库所在的路径
? ? ? ? 5、通过数据库连接对象创建指令对象(SqliteCommand)
? ? ? ? 6、打开数据库连接方法(Open方法)
? ? ? ? 7、将SQL语句传入指令对象(属性CommandText)
? ? ? ? 8、执行SQL语句(SqliteCommand)?
ExecuteNonQuery () 作用:执行SQL语句,并返回受影响的行数
使用范围:增删改
ExecuteScalar () 作用:执行SQL语句,并返回查询到的第一个结果(第一行第一列)
使用范围:查询单个数据(查询到的结果是一行一列)
ExecuteReader() 作用:执行SQL语句,返回所有查询到的结果(SqliteDataReader)
使用范围:查询多个结果(多行多列)
取数据:? ?Read()? ? ? ? ? ? ? ? ? ? ? ?读取下一行? ? ? ?
? ? ? ? ? ? ? ???FieldCount? ? ? ? ? ? ? ? ? ? ?列数
? ? ? ? ? ? ? ? ?GetName(列号)?? ? ? ? ?获取该列的字段名
? ? ? ? ? ? ? ? ?GetValue(列号)? ? ? ? ? 获取该列的值
?注意: 当数据读取完毕后记得执行关闭读取器的方法 reader.Close();?
?注意: 一旦声明了一个reader就不可以再使用执行CommandText语句了,如果还需要执行必须先执行前面的关闭读取器方法
? ? ? ? 9、释放资源?
readerclosecommanddisposeconclose
? ? ? ? ? ? ? ? ? ??