MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置

目录

1 MySQL的使用演示(8.0和5.7版本对比)

1、查看所有的数据库

2、创建自己的数据库

3、使用自己的数据库

4、查看某个库的所有表格

5、创建新的表格

6、查看一个表的数据 

7、添加一条记录  

8、查看表的创建信息

9、查看数据库的创建信息 

10、删除表格

11、删除数据库

2 MySQL的编码设置

MySQL5.7中

步骤1:查看MySQL5.7 编码命令

步骤2:修改mysql的数据目录下的my.ini配置文件  

步骤3:重启服务

步骤4:查看编码命令 

步骤五:重新建库,建表验证

 MySQL8.0中


1 MySQL的使用演示(8.0和5.7版本对比)

1、查看所有的数据库

show databases;

8.0版本: 

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第1张图片

5.7版本:

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第2张图片

  • “information_schema”              MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使用的文件夹,等等
  • “performance_schema”            MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。
  • “sys”数据库是 MySQL           系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。
  • “mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等
为什么 Workbench 里面我们只能看到 “demo” “sys” 2 个数据库呢?
这是因为, Workbench 是图形化的管理工具,主要面向开发人 员, “demo” “sys” 2 个数据库已经够用了。如果有特殊需求,比如,需要监控 MySQL 数据库各项性能指标、直接操作 MySQL 数据库系统文件等,可以由 DBA 通过 SQL 语句,查看其它的系统数据库。  

2、创建自己的数据库

create database 数据库名;

#创建atguigudb数据库,该名称不能与已经存在的数据库重名。

create database atguigudb;

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第3张图片

3、使用自己的数据库

use 数据库名;

#使用atguigudb数据库

use atguigudb;
说明:如果没有使用 use 语句,后面针对数据库的操作也没有加 数据名 的限定,那么会报 “ERROR 1046 (3D000): No database selected”(没有选择数据库)
使用完 use 语句之后,如果接下来的 SQL 都是针对一个数据库操作的,那就不用重复 use 了,如果要针对另一个数据库操作,那么要重新use

 MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第4张图片

4、查看某个库的所有表格

show tables; #要求前面有use语句
show tables from 数据库名;

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第5张图片

当前还没创建表,还是空!!! 

5、创建新的表格

create table 表名称(
字段名 数据类型,
字段名 数据类型
);
说明:如果是最后一个字段,后面就用加逗号,因为逗号的作用是分割每个字段
#创建学生表
create table student(
id int,
name varchar(20) #说名字最长不超过20个字符
);

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第6张图片

6、查看一个表的数据 

select * from 数据库表名称;
#查看学生表的数据
select * from student;

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第7张图片

7、添加一条记录  

insert into 表名称 values(值列表);
#添加两条记录到student表中
insert into student values(1,'张三');
insert into student values(2,'李四');

MySQL8.0版本: 

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第8张图片

MySQL5.7版本:

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第9张图片

 报错:

mysql> insert into student values(1,'张三');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1
mysql> insert into student values(2,'李四');
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name' at row 1
字符集的问题。 

8、查看表的创建信息

show create table 表名称\G
#查看student表的详细创建信息
show create table student\G


#结果如下
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
上面的结果显示 student 的表格的默认字符集是 “latin1” 不支持中文

 

9、查看数据库的创建信息 

show create database 数据库名\G
#查看atguigudb数据库的详细创建信息
show create database atguigudb\G
*************************** 1. row ***************************
       Database: atguigudb
Create Database: CREATE DATABASE `atguigudb` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第10张图片

 上面的结果显示atguigudb数据库也不支持中文,字符集默认是latin1

10、删除表格

drop table 表名称;
#删除学生表
drop table student;

11、删除数据库

drop database 数据库名;
#删除atguigudb数据库
drop database atguigudb;

2 MySQL的编码设置

MySQL5.7

问题再现:命令行操作 sql 乱码问题
mysql> INSERT INTO t_stu VALUES(1,'张三','男');
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'sname' at
row 1
问题解决:
 

步骤1:查看MySQL5.7 编码命令

show variables like 'character_%';
show variables like 'collation_%';

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第11张图片

步骤2:修改mysql的数据目录下的my.ini配置文件  

 my.ini配置文件路径:即安装MySQL时的ProgramData路径,可参考文章:

MySQL 2 环境搭建(MySQL5.7.43和8.0.34的下载;8.0.34的安装、配置教程 )-CSDN博客

这里我的位置在:D:\Software\MySQL\MySQL_data\MySQL Server 5.7

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第12张图片

注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会 导致文件编码修改为“含BOM头”的编码,从而服务重启失败。 

[mysql] #大概在63行左右,在其下添加
...
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第13张图片

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第14张图片

步骤3:重启服务

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第15张图片 

步骤4:查看编码命令 

show variables like 'character_%';
show variables like 'collation_%';

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第16张图片

如果是以上配置就说明对了。接着我们就可以新创建数据库、新创建数据表,接着添加包含中文的 数据了。 

步骤五:重新建库,建表验证

# 创建数据库:
create database atguigudb;

# 查看数据库:
show create database atguigudb;

# 使用数据库:
use atguigudb;

# 建表:
create table student( id int, name varchar(20));

# 查看表:
show create table student;

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第17张图片 MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第18张图片

# 查看学生表的数据
select * from student;

# 添加两条记录到student表中 
insert into student values(1,'张三');
insert into student values(2,'李四');

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第19张图片

 

 MySQL8.0中

 VS:对比8.0的编码看下:

MySQL 4 MySQL使用演示(包含基本操作命令~~~)MySQL5.7编码设置_第20张图片

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。

网站开发人员在数据库设计 的时候往往会将编码修改为utf8字符集。

如果遗忘修改默认的编码,就会出现乱码的问题。

从MySQL 8.0 开始,数据库的默认编码改为 utf8mb4 ,从而避免了上述的乱码问题。

你可能感兴趣的:(MySQL,mysql,数据库)