美文网首页
MySQL经典50题-2-解决字符集问题

MySQL经典50题-2-解决字符集问题

作者: 皮皮大 | 来源:发表于2020-11-21 23:47 被阅读0次

MySQL经典50题-2-解决字符集问题

在创建完数据库和表之后,需要插入模拟数据。在插入的过程中就碰到了问题,此文作为记录解决字符集的问题

  • 修改MySQL字符集

  • 查看库、表、字段的字符集

  • 指定表、字段的字符集

创建表

  1. 学生表
mysql> create table Student(
    -> s_id varchar(20),
    -> s_name varchar(20) not null default '',
    -> s_birth varchar(20) not null default '',
    -> s_sex varchar(20) not null default '',
    -> primary key(s_id));
Query OK, 0 rows affected (0.02 sec)
image
  1. 课程表
create table Course(
  -> c_id varchar(20),
  -> c_name varchar(20) not null default '',
  -> t_id varchar(20) not null,
  -> primary key(c_id));
 Query OK, 0 rows affected (0.01 sec)
create table Teacher(
  -> t_id varchar(20),
  -> t_name varchar(20) not null default '',
  -> primary key(t_id));
 Query OK, 0 rows affected (0.01 sec)
  1. 教师表
image
  1. 成绩表
create table Score(
  -> s_id varchar(20),
  -> c_id varchar(20),
  -> s_score int(3),
  -> primary key(s_id,c_id));
 Query OK, 0 rows affected (0.00 sec)
image

报错解决

报错原因

在创建了表之后直接往Student表中插入数据,报错了:

image

网上找到了原因:库、表和字段的字符集不同造成的

image

解决方案

如何查看数据集

查看mysql的字符集:

show variables where Variable_name like '%char%';
image

查看某一个数据库字符集:

show create database test;
image

查看某一个数据表字符集:

show create table Student;
image

具体解决步骤:

  1. 修改数据库和表的字符集
image
  1. 指定字段的字符集
image
  1. 字符集相同
image

最终成功插入数据:

image

修改MySQL字符集

mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;

相关文章

网友评论

      本文标题:MySQL经典50题-2-解决字符集问题

      本文链接:https://www.haomeiwen.com/subject/tdpyiktx.html