1.什么是数据库
数据库,简而言之可视为电子化的文件柜,存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
2.什么是MySql
MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的 RDBMS (Relational Database Management System:关系数据库管理系统)应用软件之一。
3.MySQL安装
1.上官网下载 MySQL on Windows (Installer & Tools)
2.打开安装器,选择需要的程序进行安装 教程
3.配置mysql安装路径到环境变量path中(配置完才可以在cmd中控制mysql)
C:\Program Files\MySQL\MySQL Server 8.0\bin
4.开启和停止Mysql服务(需要管理员权限)
>net start mysql80 //开启Mysql
>net stop mysql80 //停止Mysql
5.使用root用户连接mysql
本地连接: mysql -u 最高权限用户名 -p;
>mysql -u root -p
远程连接mysql
>mysql -h 192.168.108.29 -u root -p
6.常用数据库命令
1.查看数据库
>show databases;
2.创建数据库
>create database xxxx;
3.删除数据库
>drop database xxxx;
4.打开数据库
>use databaseName;
5.查看数据库中的表
>show tables;
6.创建表
>create table tableName(
id int(10) NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),
name varchar(20)
);
7.删除表
>drop table tableName;
8.显示某一个表
>show create table tableName;
9.显示表结构
>describe tableName; (或者简写: desc tableName;)
10.数据增删改查
>select * from tableName;
>insert into tableName values(xx,xx,xx,xx);
>update tableName set xxx=xxx;
>delete from tableName;
7.常见问题
1.远程连接数据库
//登录数据库
>mysql -u root -p 123456
>mysql>use mysql;
//修改主机ip为 % 表示所有ip都可以远程访问
>mysql>update user set host = '%' where user = 'root';
//或直接添加一条语句也行
>mysql>insert into user (host,user,password) values('192.168.0.51','root',password('123'));
//查看一下
>mysql>select host, user from user;
//推送设置到内存或重启服务器也行
>mysql>flush privileges;
2.解决1251 client does not support ..问题
2、设置用户配置项
(1) 查看用户信息
>select host,user,plugin,authentication_string from mysql.user;
备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
image
(2)修改用户密码
>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
更新host 名为localhost ,user为 root用户的密码为newpassword
image
8.C#代码操作MySql
1.安装mysql的.net连接器:mysql-connector-net
2.vs项目中引用库:MySql.Data.dll
3.编写脚本
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
namespace Server
{
public class MysqlManager
{
string ip = "127.0.0.1";//ip地址
string username = "root";//登录ID
string password = "123456";//登录密码
string dbName = "arpg";//数据库名称
MySqlConnection connect;//数据库连接
MySqlCommand command;//数据库命令
public MysqlManager()
{
Open();
}
//打开数据库
void Open()
{
connect = new MySqlConnection();
connect.ConnectionString = "server=" + ip + "; user id=" + username +
"; password=" + password + "; database=" + dbName;
connect.Open();
command = connect.CreateCommand();
Console.WriteLine("打开数据库");
}
//关闭数据库
void Close()
{
command.Dispose();
connect.Dispose();
Console.WriteLine("关闭数据库");
}
//创建表
public void CreateTable(string tabelName, Dictionary infos)
{
string sql = "create table " + tabelName;
sql += @"(
id int primary key auto_increment not null,
name varchar(10),
attack int,
ranges float
)";
ExcuteSql(sql);
}
//增加
public void InsertInto(string tableName)
{
string sql = "insert into " + tableName + " " + "values(1,'暴风雪',10,10)";
ExcuteSql(sql);
}
//删除
public void DeleteFrom(string tableName)
{
string sql = "delete from " + tableName + " " + "where id = 1";
ExcuteSql(sql);
}
//修改
public void UpdateSet(string tableName)
{
string sql = "update " + tableName + " " + "set name = '无间炼狱' where id=1";
ExcuteSql(sql);
}
//查询
public void SelectFrom(string tableName)
{
string sql = "select * from " + tableName;
command.CommandText = sql;
MySqlDataReader reader = command.ExecuteReader();//以阅读器来查询
while (reader.Read())
{
int count = reader.FieldCount;
for (int i = 0; i < count; i++)
{
string key = reader.GetName(i);//列名
object value = reader.GetValue(i);//列值
Console.WriteLine(key + ":" + value);
}
}
}
void ExcuteSql(string sql)
{
Console.WriteLine("sql -> " + sql);
command.CommandText = sql;
command.ExecuteNonQuery();
}
}
}