unity数据库
一、sql语句
1、创建数据库
create database teacher;
2、创建带字符集的数据库(安装时设置过,可以不要)
create database teacher character set utf8;
3、查看数据库列表
show databases;
4、选择(使用)数据库
use teacher;
5、删除(丢弃)数据库
drop database teacher;
6、创建老师信息表
create table info(
id int(10) primary key auto_increment,
name varchar(20) not null,
sex CHAr(1) default ‘男’ not null,
age int(3)
);
注意:如果想要从10000开始自增(先创建好表,再执行下面语句)
alter table info auto_increment = 10000;
7、查看表
show tables;
8、查看表定义(表结构)
desc info;
9、删除表info
drop table info;
10、增
单组数据
insert into info(name,age)values(‘张三’,123);//由于建表默认性别男,可无需再定义男
多组数据
insert into info(name,sex,age)values(‘王一’,’男’,20), (‘王二’,’男’,22), (‘王三’,’男’,22);
11、删除id为5的信息
delete from info where id = 5;
12、删除info表中所有信息
delete from info;//,下次插入主键自增id从之前最后开始
truncate table info;// 自增重置,从1开始
13、修改
update info set age = 18 where name=’张三’;
14、查
select * from info;
二、数据库连接
前提需要这两个文件(本人的unity是5.6.7版本)
//1 、创建连接对象
//这个不是唯一的
string uri = "server=localhost;database = teacher;userid=root;password=123456";
MySqlConnection con = new MySqlConnection(uri);
//2、打开连接
con.Open();
(增删改)
//3、创建操作指令
//string sql = "insert into info (name,sex,age) values('张三','男',22)";
//string sql = "update info set age=15 where name='张三'";
//string sql = "delete from info where name = '张三'";
MySqlCommand com = new MySqlCommand(sql,con);
//4、判断操作是否成功(执行次数)
if(com.ExecuteNonQuery()>0)
{
print("操作成功")
}
else
{
print("操作失败");
}
//5、关闭资源
con.Close();
(查)
//3、创建操作指令
string sql = "select * from info";
//4、得到读取对象
//这个时候需要using MySql.Data.MySqlClient;
MySqlDateReader reader = com.ExecuteReader();
//5、从表中循环读取数据
while(reader.Read())
{
//字符串要和列名一致
int id = reader.GetInt32("id");
string name = reader.GetString("name");
char sex = reader.GetChar("sex");
int age = reader.GetInt32("age");
print(id+"\t"+name+"\t"+sex+"\t"+age);
}
//6、关闭释放资源
reader.Close();
con.Close();
三、多表操作
1、内连接查询(外键)
user_info表:
user_score表:
查询所有人的姓名及其分数(从高到低)
(1)、
(2)、
解释:两种是一致的。(第二种就是为了解释第一种)
注意:每一个单词后是有空格的!!!
2、涉及到多表操作,需要用到迭代器
//该图是一个连接数据库及操作的模板
//该图是通过用查询语句获取两个表中的信息并存入ArrayList中
//该图使用迭代器打印ArrayList中的的信息
四、单例
1、饿汉单例
public class Singleton{//私有构造方法private Singleton(){}//创建私有静态对象private static Singleton instance = new Singleton();//公共静态返回值是自身的方法public static Singleton GetInstance()
{
Return instance;
}
}
2、懒汉单例
public class Singleton{//私有构造方法private Singleton(){}
//声明私有静态对象private static Singleton instance = null;公共静态返回值是自身的方法public static Singleton GetInstance(){If(instance==null)
{
Instance = new Singleton();
}
Return instance;
}
}