MySQL pyMySQL 设置连接字符集

MySQL pyMySQL 设置连接字符集

阅读更多:MySQL 教程

什么是字符集

MySQL 中,字符集(Charset)是一种规定了字符的编码方式和存储方式的机制。字符集决定了在某种语言环境下所使用的字符个数和存储方式。在 MySQL 中,字符集是与数据库、表和列相关的。它可以是服务器级、数据库级、表级或列级的。

MySQL 支持多种字符集,包括 ASCII、UTF-8、GBK、Big5 等。其中,UTF-8 字符集被广泛应用于国际化领域,它可以支持世界上几乎所有的文字,是当前最流行的字符集之一。GB2312 是一种中文字符集,被广泛应用于中国大陆。

设置连接字符集

在使用 pyMySQL 模块连接 MySQL 数据库时,默认的字符集是 utf-8mb4。如果需要修改连接字符集,可以使用以下方法:

import pymysql

# 打开数据库连接
db = pymysql.connect(
   host="localhost",
   user="root",
   password="123456",
   database="test",
   charset="utf8mb4",
   port=3306
)

# 执行 SQL 查询
cursor = db.cursor()
cursor.execute("SELECT VERSION()")

# 获取记录
data = cursor.fetchone()
print("Database version : %s " % data)

# 关闭数据库连接
db.close()

在打开数据库连接时,使用 charset 参数来指定字符集即可。如上例所示,将字符集修改为 utf8mb4。

除了在打开连接时设置字符集,还可以在 SQL 语句中指定字符集:

import pymysql

# 打开数据库连接
db = pymysql.connect(
   host="localhost",
   user="root",
   password="123456",
   database="test",
   port=3306
)

# 执行 SQL 查询
cursor = db.cursor()
cursor.execute("SET NAMES utf8mb4")

# 执行插入语句
sql = "INSERT INTO test VALUES ('张三')"
try:
   cursor.execute(sql)
   db.commit()
except:
   db.rollback()

# 关闭数据库连接
db.close()

在执行 SQL 之前,使用 “SET NAMES” 命令来指定字符集为 utf8mb4。

指定数据库字符集

在创建数据库时,可以指定该数据库的字符集。如果未指定,将使用服务器默认的字符集。可以通过以下语句在创建数据库时指定字符集:

import pymysql

# 打开数据库连接
db = pymysql.connect(
   host="localhost",
   user="root",
   password="123456",
   port=3306
)

# 创建游标对象
cursor = db.cursor()

# 创建数据库
cursor.execute("CREATE DATABASE IF NOT EXISTS testdb CHARACTER SET utf8mb4")

# 关闭数据库连接
db.close()

以上代码将创建名为 testdb 的数据库,并将字符集设置为 utf8mb4。

指定表字符集

在创建表时,可以指定该表的字符集。如果未指定,将使用该数据库的默认字符集。可以通过以下语句在创建表时指定字符集:

import pymysql

# 打开数据库连接
db = pymysql.connect(
   host="localhost",
   user="root",
   password="123456",
   database="testdb",
   port=3306
)

# 创建游标对象
cursor = db.cursor()

# 创建表
sql = "CREATE TABLE IF NOT EXISTS testtable(name CHAR(20)) CHARACTER SET utf8mb4"
cursor.execute(sql)

# 关闭数据库连接
db.close()

以上代码将创建名为 testtable 的表,并将字符集设置为 utf8mb4。

总结

本文介绍了 MySQL pyMySQL 设置连接字符集的相关内容,包括字符集的概念、设置连接字符集的方法、指定数据库字符集和表字符集的方法。在进行 MySQL 操作时,正确设置字符集可以保证数据的完整性和正确性,特别是在跨语言、跨国际化方面更为重要。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程