• 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版本: 

    5.7版本:

    • “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、创建自己的数据库

    1. create database 数据库名;
    2. #创建atguigudb数据库,该名称不能与已经存在的数据库重名。
    3. create database atguigudb;

    3、使用自己的数据库

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

     

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

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

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

    5、创建新的表格

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

    6、查看一个表的数据 

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

    7、添加一条记录  

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

    MySQL8.0版本: 

    MySQL5.7版本:

     报错:

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

    8、查看表的创建信息

    show create table 表名称\G
    1. #查看student表的详细创建信息
    2. show create table student\G
    3. #结果如下
    4. *************************** 1. row ***************************
    5. Table: student
    6. Create Table: CREATE TABLE `student` (
    7. `id` int(11) DEFAULT NULL,
    8. `name` varchar(20) DEFAULT NULL
    9. ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    10. 1 row in set (0.00 sec)
    上面的结果显示 student 的表格的默认字符集是 “latin1” 不支持中文

     

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

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

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

    10、删除表格

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

    11、删除数据库

    drop database 数据库名;
    1. #删除atguigudb数据库
    2. drop database atguigudb;

    2 MySQL的编码设置

    MySQL5.7

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

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

    1. show variables like 'character_%';
    2. show variables like 'collation_%';

    步骤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

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

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

    步骤3:重启服务

     

    步骤4:查看编码命令 

    1. show variables like 'character_%';
    2. show variables like 'collation_%';

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

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

    1. # 创建数据库:
    2. create database atguigudb;
    3. # 查看数据库:
    4. show create database atguigudb;
    5. # 使用数据库:
    6. use atguigudb;
    7. # 建表:
    8. create table student( id int, name varchar(20));
    9. # 查看表:
    10. show create table student;

     

    1. # 查看学生表的数据
    2. select * from student;
    3. # 添加两条记录到student表中
    4. insert into student values(1,'张三');
    5. insert into student values(2,'李四');

     

     MySQL8.0中

     VS:对比8.0的编码看下:

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

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

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

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

  • 相关阅读:
    24. 两两交换链表中的节点
    unity urp 实现泰森多边形Voronoi扰动
    USB2.0一致性测试方法_高速示波器
    Spring Security权限管理原理
    【嵌入式学习】--i2c协议
    如何 dump 一个进程的 seccomp filters ?
    轻量级音乐服务器LMS
    kubernetes (k8s) list-watch机制、调度约束
    web开发的前端和后端
    flask实战(问答平台)
  • 原文地址:https://blog.csdn.net/weixin_46474921/article/details/133824507