安装wampServer

WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。

WampServer, la plate-forme de développement Web sous Windows - Apache, MySQL, PHP

安装Navicat

Navicat 是香港卓軟數位科技有限公司生產的一系列 MySQL、MariaDB、MongoDB、Oracle、SQLite、PostgreSQL 及 Microsoft SQL Server 的圖形化資料庫管理及發展軟體。它有一個類似瀏覽器的圖形使用者介面,支援多重連線到本地和遠端資料庫。它的設計合乎各種使用者的需求,從資料庫管理員和程式員,到各種為客戶服務並與合作夥伴共享資訊的不同企業或公司。

Navicat | 支持 MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL 的数据库管理

Navicat使用示例

在使用软件之前,确保wampServer已经打开,图标是绿色的。

打开软件之后,单击“连接”,直接点击确定,这将创建一个本地数据库

创建新连接

在新建的连接“localhost_3306”右键——新建数据库。

新建数据库

在弹出的窗口中“数据库名”设为“studymysql”(建议使用小写名称)、字符集设为“utf8 – UTF-8 Unicode”、排序规则设为“utf8_general_ci”

双击打开我们新建的“studymysql”数据库,点击右侧的“新建表”,我们按照下图建表

userinfo表

id属性在下方勾选“自动递增”和“无符号”,这样id就自动递增创建,并且没有负数

varchar数据类型理解为string即可

“小数点”属性对应浮点值,只有数值类型是浮点值才会起作用

勾选“不是null”表示该数值永远不为空

钥匙标志表示这个属性是主键,是在整个数据库中的唯一值

点击“保存”,输入表名就可以保存这个表

如果想修改表的属性,我们在选中userinfo表时右键——“修改表”即可

然后就可以在新建的userinfo表当中键入数据了

增加数据

C#调用MySQL

首先在MySQL :: Download Connector/NET下载MySQL Connecter并安装

然后在MySQL Connecter安装目录中找到Assemblies文件夹,在其中找到v4.5,找到MySql.Data.dll,这就是要使用的dll文件

使用visual studio新建一个DotNet Framework控制台项目,命名为“MySQLTest”,在工程文件夹下新建Libs文件夹,将MySql.Data.dll放在里面,并在工程中引用这个dll

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using MySql.Data.MySqlClient;
using System;

namespace MySqlTest
{
internal class Program
{
static MySqlConnection conn = null;
static void Main(string[] args)
{
conn = new MySqlConnection("server=localhost;User Id = root;password =;Database = studymysql;Charset = utf8");
conn.Open();

//增
Add("insert into userinfo set name='haha',age=66");
//删
Delete(1);
//改
Update("xoxo",45,1);
//查
Query("select*from userinfo where age=66");
Console.ReadKey();
conn.Close();
}

static void Add(string mySQLStat)
{
MySqlCommand cmd = new MySqlCommand(mySQLStat, conn);//新建SQL命令
cmd.ExecuteNonQuery();//立即执行命令
int id = (int)cmd.LastInsertedId;
Console.WriteLine("MySQL Insert Key: {0}",id);
}

static void Delete(int id)
{
MySqlCommand cmd = new MySqlCommand("delete from userinfo where id =@id", conn);
cmd.Parameters.AddWithValue("id",id);
cmd.ExecuteNonQuery();
Console.WriteLine("Delete Done");
}

static void Update(string name,int age,int id)
{
//使用@来指定Parameter
//这样安全性更高,防止SQL注入攻击。SQL注入指的是Web应用在接受相关数据参数时未做好过滤,攻击者可以拼接执行构造SQL语句
MySqlCommand cmd = new MySqlCommand("update userinfo set name=@name,age=@age where id =@id", conn);
cmd.Parameters.AddWithValue("name",name);
cmd.Parameters.AddWithValue("age",age);
cmd.Parameters.AddWithValue("id",id);
cmd.ExecuteNonQuery();
Console.WriteLine("Update Done");
}

static void Query(string mySQLStat)
{
MySqlCommand cmd = new MySqlCommand(mySQLStat,conn);
MySqlDataReader mySqlDataReader = cmd.ExecuteReader();

while(mySqlDataReader.Read()) //注意如果这里使用if(mySqlDataReader.Read()),只能查找到第一条数据
{
int id = mySqlDataReader.GetInt32("id");
string name = mySqlDataReader.GetString("name");
int age = mySqlDataReader.GetInt32("age");

Console.WriteLine($"sql result: id: {id} name: {name} age: {age}");
}

}
}
}

数据表备份

数据库中的表需要备份到本地,选中一个表然后按下图转储

转储SQL

导入数据表

选中一个数据库,然后右键点击“运行SQL文件”,之后刷新一下表目录即可

导入数据表