温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQL字符集如何设置

发布时间:2026-09-16 14:36:22 来源:亿速云 阅读:90 作者:小樊 栏目:数据库

在 SQL 中,“字符集(Character Set)”的设置通常涉及 数据库、表、字段 三个层级,以及 连接字符集。下面以常见数据库为例说明。


一、MySQL / MariaDB

1. 查看字符集

-- 查看数据库字符集
SHOW VARIABLES LIKE 'character_set_database';

-- 查看服务器字符集
SHOW VARIABLES LIKE 'character_set_server';

-- 查看表字符集
SHOW TABLE STATUS LIKE 'table_name';

-- 查看字段字符集
SHOW FULL COLUMNS FROM table_name;

2. 创建时设置字符集

-- 数据库
CREATE DATABASE db_name
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- 表
CREATE TABLE user (
  id INT,
  name VARCHAR(50)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 字段
CREATE TABLE user (
  id INT,
  name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);

3. 修改字符集

-- 修改数据库
ALTER DATABASE db_name
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- 修改表
ALTER TABLE user
  CONVERT TO CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- 修改字段
ALTER TABLE user
  MODIFY name VARCHAR(50)
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

4. 连接字符集(很重要)

SET NAMES utf8mb4;

或在连接字符串中指定:

jdbc:mysql://host/db?useUnicode=true&characterEncoding=utf8mb4

二、PostgreSQL

PostgreSQL 使用 encoding 概念。

1. 查看

-- 数据库编码
SELECT datname, encoding FROM pg_database;

-- 客户端编码
SHOW client_encoding;

2. 创建数据库时设置

CREATE DATABASE db_name
  WITH ENCODING 'UTF8'
  LC_COLLATE 'zh_CN.UTF-8'
  LC_CTYPE 'zh_CN.UTF-8';

3. 修改客户端编码

SET client_encoding TO 'UTF8';

⚠️ PostgreSQL 不支持直接修改数据库编码,通常需重建数据库。


三、SQL Server

SQL Server 使用 排序规则(Collation) 控制字符集。

1. 查看

SELECT name, collation_name
FROM sys.databases;

2. 创建数据库

CREATE DATABASE db_name
COLLATE Chinese_PRC_CI_AS;

3. 字段级别

CREATE TABLE user (
  name NVARCHAR(50) COLLATE Chinese_PRC_CI_AS
);

4. 修改

ALTER DATABASE db_name
COLLATE Chinese_PRC_CI_AS;

四、通用建议 ✅

  • 推荐使用 utf8mb4(MySQL)或 UTF8(PG)
  • 数据库、表、字段、连接字符集保持一致
  • 中文环境优先使用 utf8mb4_unicode_ciUTF8

如果你告诉我:

  • 使用的数据库类型(MySQL / PG / SQL Server)
  • 是新建还是修改
  • 是否涉及中文或emoji

我可以给你更精确的 SQL 示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI