在 MySQL 数据库中,数据类型用于定义表中列(字段)可以存储的数据类型。MySQL 提供了丰富的数据类型,可以满足不同类型数据的存储需求。
MySQL 中一些常用的数据类型及其用途:
-
整数类型(Integer Types):
INT
:常规大小整数,范围约为 -2^31 到 2^31-1。TINYINT
:小整数,范围约为 -128 到 127。SMALLINT
:较小的整数,范围约为 -32768 到 32767。BIGINT
:大整数,范围约为 -2^63 到 2^63-1。
-
浮点数类型(Floating-Point Types):
FLOAT
:单精度浮点数。DOUBLE
:双精度浮点数。
-
定点数类型(Fixed-Point Types):
DECIMAL
:用于存储精确的小数,支持指定精度和小数位数。
-
字符串类型(String Types):
CHAR
:固定长度的字符串,最多可以存储 255 个字符。VARCHAR
:可变长度的字符串,最多可以存储 65,535 个字符。TEXT
:用于存储较长的文本数据,最多可以存储 65,535 个字符。BLOB
:用于存储二进制数据,最多可以存储 65,535 个字节。
-
日期和时间类型(Date and Time Types):
DATE
:用于存储日期值(YYYY-MM-DD)。TIME
:用于存储时间值(HH:MM:SS)。DATETIME
:用于存储日期和时间值(YYYY-MM-DD HH:MM:SS)。TIMESTAMP
:用于存储日期和时间值(UNIX 时间戳)。
-
枚举类型(Enumeration Types):
ENUM
:用于存储枚举值的一种类型。
-
集合类型(Set Types):
SET
:用于存储一组值的一种类型。
示例,创建表的 SQL 语句,演示了如何使用这些数据类型:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
birthdate DATE,
active BOOLEAN DEFAULT TRUE
);
创建了一个名为 users
的表,id
列使用 INT
类型存储整数,username
和 email
列使用 VARCHAR
类型存储字符串,birthdate
列使用 DATE
类型存储日期,active
列使用 BOOLEAN
类型存储布尔值。
用python创建
在 Python 中使用 MySQL 数据库时,需要使用 mysql-connector-python
或 pymysql
这样的 MySQL 客户端库。
下面是一个示例 Python 脚本,演示了如何使用 mysql-connector-python
库连接到 MySQL 数据库并创建表:
import mysql.connector
# 连接到 MySQL 数据库
conn = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="my_database" # 指定要连接的数据库
)# 创建游标对象
cursor = conn.cursor()# 执行创建表的 SQL 命令
create_table_query = """
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
birthdate DATE,
active BOOLEAN DEFAULT TRUE
)
"""
cursor.execute(create_table_query)# 提交事务
conn.commit()# 关闭游标和数据库连接
cursor.close()
conn.close()
导入 mysql.connector
模块,通过 mysql.connector.connect()
方法连接到 MySQL 数据库。使用 cursor()
方法创建一个游标对象,该对象用于执行 SQL 命令。然后,执行一个创建表的 SQL 命令 CREATE TABLE
,定义一个名为 users
的表,并指定了各列的数据类型。最后,通过 commit()
方法提交了事务,并关闭了游标和数据库连接。