mysql建表完整语句

2025-03-10 15

Image

《mysql建表完整语句》

在数据库开发中,创建结构合理、符合需求的表是至关重要的。本篇将提供构建MySQL表的解决方案,通过完整的建表语句实现这一目标。

一、使用基本数据类型和约束创建简单表

当我们要创建一个存储用户基本信息(如用户名、密码、年龄等)的表时,可以采用如下方式:

sql
CREATE TABLE user_info (
user_id INT PRIMARY KEY AUTO_INCREMENT, -- 用户id,主键且自动递增
username VARCHAR(50) NOT NULL UNIQUE, -- 用户名,非空且
password CHAR(32) NOT NULL, -- 密码,这里假设密码为32位加密后的字符串,非空
age TINYINT UNSIGNED CHECK (age >= 0 AND age <= 150), -- 年龄,无符号 tinyint 类型,并且限制年龄范围
gender ENUM('male', 'female') DEFAULT 'male' -- 性别,默认值为'male'
);

在这个例子中,我们定义了不同类型的字段,包括整数类型(INT)、字符类型(VARCHARCHAR)、枚举类型(ENUM)等,并添加了相应的约束条件,如主键(PRIMARY KEY)、非空(NOT NULL)、(UNIQUE)、检查(CHECK)以及默认值(DEFAULT)。

二、创建包含外键关联的表

如果我们有订单表(order_info)和用户表(上述的user_info),订单表中需要与用户表建立关联关系。

sql
CREATE TABLE order_info (
order_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
order_amount DECIMAL(10, 2) NOT NULL, -- 订单金额,总长度10位,保留两位小数
order_time DATETIME DEFAULT CURRENT_TIMESTAMP, -- 订单时间,默认为当前时间
FOREIGN KEY (user_id) REFERENCES user_info(user_id)
ON DELETE CASCADE -- 如果删除用户,则对应的订单也被删除
ON UPDATE CASCADE -- 如果更新用户id,则对应的订单中的user_id也更新
);

这里通过外键(FOREIGN KEY)建立了order_info表中的user_iduser_info表中user_id的关联,并设置了级联操作(ON DELETE CASCADEON UPDATE CASCADE)。

三、创建带有索引的表

对于查询量较大的表,可以考虑创建索引来提高查询效率。例如创建一个商品表(product_info),其中商品名称经常用于查询。

sql
CREATE TABLE product_info (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
price DECIMAL(8, 2) NOT NULL,
stock INT NOT NULL,
INDEX idx_product_name (product_name) -- 创建名为idx_product_name的普通索引
);

除了普通索引,还可以根据实际需求创建索引、全文索引等不同类型索引来优化查询性能。

以上就是关于MySQL建表完整语句的介绍,不同的业务场景可以根据自身需求选择合适的建表方式。

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载