上一篇
假设你正在开发一个校园图书管理系统📚,需要创建一个books
表来存储图书信息,作为新手DBA的小明面对空白数据库手足无措...别担心!这篇指南将手把手教你用MySQL设计表结构并创建表~
CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... ) [表选项];
mysql -u root -p # 输入密码后进入
CREATE DATABASE IF NOT EXISTS library; -- 创建库 USE library; -- 切换库
先规划好字段:
CREATE TABLE books ( book_id INT AUTO_INCREMENT PRIMARY KEY,VARCHAR(100) NOT NULL, author VARCHAR(50) DEFAULT '未知作者', price DECIMAL(10,2) CHECK (price > 0), stock INT UNSIGNED DEFAULT 0, publish_date DATE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_title (title) -- 为书名添加索引 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
字段类型选择:
INT
:整数(搭配UNSIGNED
表示无符号)VARCHAR(n)
:可变长度字符串(n≤65535)DECIMAL(m,n)
:精确小数(m总位数,n小数位)TIMESTAMP
:自动记录时间戳⏳常用约束:
PRIMARY KEY
:主键(唯一标识)AUTO_INCREMENT
:自增(常用于ID)DEFAULT
:默认值CHECK
:数据校验(MySQL 8.0+才强制生效)表选项:
ENGINE
:存储引擎(InnoDB支持事务)CHARSET
:字符集(推荐utf8mb4支持emoji)场景:增加带分类的图书表
-- 先创建分类表 CREATE TABLE categories ( cat_id TINYINT PRIMARY KEY, cat_name VARCHAR(20) UNIQUE ); -- 修改books表添加外键 ALTER TABLE books ADD COLUMN category TINYINT, ADD CONSTRAINT fk_category FOREIGN KEY (category) REFERENCES categories(cat_id);
order
、group
)CHAR
(定长)或VARCHAR
(变长)DECIMAL
,不要用FLOAT
❌CREATE TABLE books ( ... ) COMMENT='图书信息表';
DESC books; -- 查看表结构 SHOW CREATE TABLE books; -- 查看完整建表语句
MySQL 8.3版本优化了CHECK
约束的执行效率,现在更推荐使用字段级数据验证啦!
本文由 谷梁凝雨 于2025-08-02发表在【云服务器提供商】,文中图片由(谷梁凝雨)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/510662.html
发表评论