mysql编码
1. mysql插入中文出现乱码
-- 创建部门表
CREATE TABLE IF NOT EXISTS department (
id INT PRIMARY KEY,
dept_name VARCHAR(20)
);
-- 插入数据
INSERT INTO department (id, dept_name) VALUES (1, '研发部');
INSERT INTO department (id, dept_name) VALUES (2, '营销部');
INSERT INTO department (id, dept_name) VALUES (3, '售后部');
出现问题
2. 解决方法
修改列的字符集 —— 没用
原来是latin1
改成utf8
没用。。。
单独用命令对列修改编码 ——有效
ALTER TABLE department MODIFY dept_name VARCHAR(20) CHARACTER SET utf8;
建表时设置 ——有效
-- 创建部门表 - 设置字符集的那种
CREATE TABLE IF NOT EXISTS department (
id INT PRIMARY KEY,
dept_name VARCHAR(20)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
数据库的字符
-- 查看
SHOW VARIABLES LIKE 'char%';
1、创建数据库时设置字符集:
CREATE DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci;
注意后面三个单词之间是有下划线的对于每个选项所给定的值,前面没有等号;在第一个选项和第二个选项之间也没有逗号。
2、修改数据库的字符集:
alter database 数据库名 character set utf8;
3、显示某数据库字符集设置:
show create database 数据库名;
4、显示某数据表字符集设置:
show create table 表名;
5、修改字段:
alter table 表名 modify column '字段名' varchar(30) character set utf8 not null;
6、添加表字段:
alter table 表名 add column '字段名' varchar (20) character set utf8;