🗣 Wd提问: MySQL创建表
🤖 Ai回答: 在 MySQL 中创建表是一个常见的操作,可以通过 `CREATE TABLE` 语句来实现。以下是一个基本的语法示例:
sql
CREATE TABLE 表名 (
列1 数据类型 [约束条件],
列2 数据类型 [约束条件],
...
[表级约束条件]
);
示例说明
假设我们要创建一个名为 `users` 的表,包含以下字段:
`id`: 用户ID,整数类型,主键且自增
`username`: 用户名,字符串类型,长度不超过50,唯一且不能为空
`email`: 邮箱,字符串类型,长度不超过100,唯一且不能为空
`created_at`: 创建时间,日期时间类型,默认值为当前时间
SQL 语句如下:
sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
参数解释
1、`id`:
`INT`: 整数类型
`AUTO_INCREMENT`: 自动递增
`PRIMARY KEY`: 主键,唯一标识每条记录
2、`username`:
`VARCHAR(50)`: 可变长度字符串,最大长度为50
`NOT NULL`: 不允许为空
`UNIQUE`: 唯一性约束,确保每个用户名不重复
3、`email`:
`VARCHAR(100)`: 可变长度字符串,最大长度为100
`NOT NULL`: 不允许为空
`UNIQUE`: 唯一性约束,确保每个邮箱不重复
4、`created_at`:
`TIMESTAMP`: 时间戳类型
`DEFAULT CURRENT_TIMESTAMP`: 默认值为当前时间
其他常用数据类型
`INT`: 整数
`BIGINT`: 大整数
`FLOAT`, `DOUBLE`: 浮点数
`DECIMAL(M, N)`: 定点数,M 是总位数,N 是小数位数
`VARCHAR(N)`: 可变长度字符串,N 是最大长度
`CHAR(N)`: 固定长度字符串,N 是长度
`TEXT`: 长文本
`DATE`: 日期
`TIME`: 时间
`DATETIME`: 日期和时间
`TIMESTAMP`: 时间戳
`BOOLEAN`, `TINYINT`: 布尔值或布尔类型的整数(0 或 1)
约束条件
`NOT NULL`: 列值不能为 NULL
`UNIQUE`: 列值必须唯一
`PRIMARY KEY`: 主键,唯一标识每条记录
`FOREIGN KEY`: 外键,用于引用其他表的主键
`CHECK`: 检查约束,限制列值的范围
`DEFAULT`: 默认值
示例:带外键的表
假设我们有两个表:`users` 和 `orders`,其中 `orders` 表引用 `users` 表的 `id` 作为外键。
sql
创建 users 表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
创建 orders 表
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
order_date DATE,
amount DECIMAL(10, 2),
FOREIGN KEY (user_id) REFERENCES users(id)
);
在这个例子中,`orders` 表中的 `user_id` 是外键,它引用了 `users` 表中的 `id` 列。
总结
通过 `CREATE TABLE` 语句,你可以灵活地定义表的结构,包括列的数据类型、约束条件以及表级约束。根据实际需求,你可以选择合适的数据类型和约束来确保数据的完整性和一致性。
📣 商家广告:





0
IP地址: 39.166.206.20
搜索次数: 12
提问时间: 2025-12-25 06:42:48
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。