【運維經】第62章——mysql字符集編碼的那些事兒

運維經–目錄

mysql字符集的那些事兒

  • 準備實驗環境環境
MariaDB [(none)]> CREATE DATABASE test_db character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test_db            |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> use test_db;
Database changed
MariaDB [test_db]> create table tb_books (
    ->     name varchar(45) not null,
    ->     price double not null,
    ->     bookCount int not null,
    ->     author varchar(45) not null ) default charset = utf8;
Query OK, 0 rows affected (0.05 sec)

MariaDB [test_db]> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_books          |
+-------------------+
1 row in set (0.00 sec)

MariaDB [test_db]> 
  • 查看數據庫字符集
MariaDB [test_db]> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| character_set_database | utf8  |
+------------------------+-------+
1 row in set (0.00 sec)
  • 查看數據表的字符集
MariaDB [test_db]> show create table tb_books;
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                             |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_books | CREATE TABLE `tb_books` (
  `name` varchar(45) NOT NULL,
  `price` double NOT NULL,
  `bookCount` int(11) NOT NULL,
  `author` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [test_db]> 
  • 修改數據庫的編碼格式
MariaDB [test_db]> alter database test_db character set gb2312;
Query OK, 1 row affected (0.01 sec)

MariaDB [test_db]> show variables like 'character_set_database';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| character_set_database | gb2312 |
+------------------------+--------+
1 row in set (0.00 sec)

MariaDB [test_db]> 
  • 修改數據表格字符集
MariaDB [test_db]> show create table tb_books;
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                             |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_books | CREATE TABLE `tb_books` (
  `name` varchar(45) NOT NULL,
  `price` double NOT NULL,
  `bookCount` int(11) NOT NULL,
  `author` varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [test_db]> alter table tb_books character set gb2312;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [test_db]> show create table tb_books;
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                     |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_books | CREATE TABLE `tb_books` (
  `name` varchar(45) CHARACTER SET utf8 NOT NULL,
  `price` double NOT NULL,
  `bookCount` int(11) NOT NULL,
  `author` varchar(45) CHARACTER SET utf8 NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [test_db]>
  • 修改字段編碼格式
MariaDB [test_db]> alter table tb_books change name name varchar(45) character set utf8 not null;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [test_db]> show create table tb_books;
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                     |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tb_books | CREATE TABLE `tb_books` (
  `name` varchar(45) CHARACTER SET utf8 NOT NULL,
  `price` double NOT NULL,
  `bookCount` int(11) NOT NULL,
  `author` varchar(45) CHARACTER SET utf8 NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章