
本系列可作为数据库学习系列的笔记文中提到的一些练习的代码小编会将代码复制下来大家复制下来就可以练习了方便大家学习。点赞关注不迷路您的点赞、关注和收藏是对小编最大的支持和鼓励系列文章目录JAVA初阶---------已更完JAVA数据结构---------已更完数据库---Day 1 数据库基础数据库---Day2 数据库操作数据库---Day3 数据类型数据库---Day4 数据表的操作目录目录系列文章目录目录前言一、本节学习目标二、查看数据库中的所有表2.1 查看表语法2.2 执行前提2.3 正确执行流程2.4 执行结果示例三、创建表CREATE TABLE3.1 完整官方建表语法3.2 语法每一部分详细解释3.2.1 CREATE TABLE3.2.2 [TEMPORARY]3.2.3 [IF NOT EXISTS]3.2.4 表名3.2.5 字段定义格式3.2.6 ENGINE 存储引擎3.2.7 CHARACTER SET 字符集3.2.8 COLLATE 排序规则四、建表完整示例文档原版示例 1创建用户表 users示例 2创建 MyISAM 引擎表五、表在磁盘上的物理文件原理必懂5.1 InnoDB 引擎表默认5.2 MyISAM 引擎表六、安全建表IF NOT EXISTS七、查看表结构DESC7.1 查看表结构语法7.2 示例7.3 输出字段含义必须背八、修改表结构ALTER TABLE8.1 完整修改语法8.2 修改操作 1添加新列8.3 修改操作 2修改字段类型 / 长度8.4 修改操作 3重命名列名8.5 修改操作 4删除列高危8.6 修改操作 5修改表名九、删除表DROP TABLE9.1 删除表语法9.2 示例9.3 删除表注意事项必读十、实战练习商店数据库 store文档完整版10.1 第一步创建数据库10.2 第二步创建商品表 goods10.3 第三步创建客户表 customer10.4 第四步创建购买记录表 purchase十一、表操作全部语法速查表开发必备十二、本章总结总结前言小编作为新晋码农一枚会定期整理一些写的比较好的代码作为自己的学习笔记会试着做一下批注和补充如转载或者参考他人文献会标明出处非商用如有侵权会删改欢迎大家斧正和讨论在 MySQL 数据库中库是容器表是核心。所有业务数据、用户信息、订单记录、日志内容最终都必须以 “表” 的形式存储。表结构设计是否合理、操作是否规范直接决定系统稳定性、查询效率与后期维护成本。一、本节学习目标熟练使用show tables查看当前数据库中的所有表完全掌握CREATE TABLE完整建表语法包括字段定义、数据类型、注释、存储引擎、字符集、排序规则学会使用DESC查看表结构并看懂每一列含义精通ALTER TABLE所有常用修改操作添加列修改列类型 / 长度 / 位置重命名列删除列修改表名安全执行DROP TABLE删除表并理解高危风险独立完成实战练习商店管理系统三表设计商品表、客户表、购买记录表二、查看数据库中的所有表在操作任何表之前必须先确认当前数据库中有哪些表。2.1 查看表语法show tables;2.2 执行前提必须先使用use 数据库名进入某个数据库否则会报错No database selected2.3 正确执行流程-- 1. 进入数据库 use java01; -- 2. 查看所有表 show tables;2.4 执行结果示例-------------------- | Tables_in_java01 | -------------------- | users | | t_myisam | --------------------三、创建表CREATE TABLE建表是数据库开发最核心、最基础、最常用的操作。一条建表语句定义了数据未来的存储结构。3.1 完整官方建表语法CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 ( 字段名1 数据类型 [约束条件] [COMMENT 字段说明文字], 字段名2 数据类型 [约束条件] [COMMENT 字段说明文字], 字段名3 数据类型 [约束条件] [COMMENT 字段说明文字], ... ) [ ENGINE 存储引擎 ] [ CHARACTER SET 字符集 ] [ COLLATE 排序规则 ];3.2 语法每一部分详细解释3.2.1 CREATE TABLE固定关键字表示创建表。3.2.2 [TEMPORARY]可选关键字表示创建临时表。临时表只对当前会话可见会话断开连接临时表自动删除普通开发极少使用3.2.3 [IF NOT EXISTS]最推荐、最常用、必须加判断表是否存在不存在 → 创建已存在 →不报错只提示警告避免程序重复执行建表语句崩溃3.2.4 表名见名知意user、order、goods、customer小写字母 下划线不使用 MySQL 关键字、数字开头、特殊符号3.2.5 字段定义格式字段名 数据类型 [约束] [COMMENT 说明]字段名列名如 id、name、phone、create_time数据类型int、bigint、varchar、char、date、datetime、decimal约束非空、主键、唯一、自增、默认值下一章重点COMMENT字段注释企业开发必须写方便后期维护3.2.6 ENGINE 存储引擎指定表使用的存储引擎不写则使用默认InnoDB。常用InnoDB默认支持事务、外键、行锁MyISAM查询快不支持事务3.2.7 CHARACTER SET 字符集推荐utf8mb4支持中文、emoji3.2.8 COLLATE 排序规则推荐utf8mb4_0900_ai_ci四、建表完整示例文档原版示例 1创建用户表 userscreate table users ( id bigint, name varchar(20) comment 用户名, password char(32) comment 密码是32位的md5值, birthday date comment 生日 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;执行成功Query OK, 0 rows affected (0.01 sec)示例 2创建 MyISAM 引擎表create table t_myisam ( id bigint, name varchar(20) comment 用户名 ) engine MyISAM;五、表在磁盘上的物理文件原理必懂不同存储引擎在磁盘上生成的文件完全不同。5.1 InnoDB 引擎表默认只生成1 个文件表名.ibd存储数据 索引 表结构示例users.ibd5.2 MyISAM 引擎表生成3 个文件表名.MYD→ 数据文件MYData表名.MYI→ 索引文件MYIndex表名_数字.sdi→ 表结构描述文件JSONMySQL 8.0 以前使用.frm文件保存表结构8.0 之后统一使用.sdi。六、安全建表IF NOT EXISTS如果直接重复建表会直接报错Table users already exists使用安全写法create table if not exists users ( id int, name varchar(20) );执行结果Query OK, 0 rows affected, 1 warning (0.01 sec)查看警告show warnings;提示Table users already exists七、查看表结构DESC建表完成后必须查看表结构是否正确。7.1 查看表结构语法desc 表名; -- 等价写法 describe 表名;7.2 示例desc users;7.3 输出字段含义必须背字段含义Field列名Type数据类型Null是否允许为 NULLYES 允许NO 不允许Key是否是索引PRI 主键UNI 唯一MUL 普通索引Default默认值Extra扩展信息auto_increment 等八、修改表结构ALTER TABLE开发中需求会不断变化表结构必须经常调整。所有修改都使用ALTER TABLE。8.1 完整修改语法ALTER TABLE 表名 ADD 列名 数据类型 [位置] | MODIFY 列名 数据类型 [位置] | RENAME COLUMN 旧列名 TO 新列名 | DROP 列名 | RENAME TO 新表名;8.2 修改操作 1添加新列alter table users ADD assets varchar(100) comment 头像地址 after birthday;位置关键字after 列名→ 在某列之后first→ 放在第一列查看结果desc users;8.3 修改操作 2修改字段类型 / 长度alter table users MODIFY assets varchar(255);8.4 修改操作 3重命名列名alter table users RENAME COLUMN assets TO avatar;8.5 修改操作 4删除列高危alter table users DROP avatar;⚠️删除列会永久丢失数据8.6 修改操作 5修改表名alter table users RENAME TO employee;查看表show tables;另一种修改表名方式RENAME TABLE employee TO users;九、删除表DROP TABLE删除表是最高危操作一旦删除无法恢复。9.1 删除表语法DROP [TEMPORARY] TABLE [IF EXISTS] 表名1, 表名2, ...;9.2 示例drop table if exists employee; drop table if exists t_myisam;9.3 删除表注意事项必读删除表不可恢复删除表会删除磁盘上所有物理文件生产环境严禁随意执行可同时删除多张表用逗号分隔必须加if exists避免报错十、实战练习商店数据库 store文档完整版我们按照文档要求完整实现商店管理系统包含 1 个库 3 张表。10.1 第一步创建数据库create database if not exists store character set utf8mb4 collate utf8mb4_0900_ai_ci; use store;10.2 第二步创建商品表 goodscreate table goods ( id bigint comment 商品编号, name varchar(50) comment 商品名, unitprice decimal(12, 2) comment 零售单价, costprice decimal(12, 2) comment 成本价, category varchar(20) comment 商品类型, provider varchar(50) comment 供应商 ) character set utf8mb4 collate utf8mb4_0900_ai_ci;10.3 第三步创建客户表 customercreate table customer ( id bigint comment 客户编号, name varchar(20) comment 客户姓名, gender bool comment 性别 1男 0女, phone_num varchar(20) comment 电话号码, email varchar(50) comment 电子邮件, address varchar(255) comment 地址, create_time datetime comment 注册时间 ) character set utf8mb4 collate utf8mb4_0900_ai_ci;10.4 第四步创建购买记录表 purchasecreate table purchase ( order_id varchar(32) comment 订单编号, customer_id bigint comment 客户编号, goods_id bigint comment 商品编号, nums int comment 购买商品数量, amount decimal(12, 2) comment 总金额, create_time datetime comment 订单生成时间 ) character set utf8mb4 collate utf8mb4_0900_ai_ci;十一、表操作全部语法速查表开发必备操作语法查看所有表show tables;建表create table 表名 (...);安全建表create table if not exists ...;查看表结构desc 表名添加列alter table 表 add ...;修改列alter table 表 modify ...;重命名列alter table 表 rename column ... to ...;删除列alter table 表 drop ...;修改表名alter table 表 rename to ...;删除表drop table if exists 表十二、本章总结这一章是 MySQL 实战的基石会建表 会设计数据结构会改表 能应对需求变化会规范操作 能进企业开发掌握表操作你已经正式迈入数据库开发大门。总结以上就是今天要讲的内容本文简单记录了数据结构学习内容仅作为一份简单的笔记使用大家根据注释理解您的点赞关注收藏就是对小编最大的鼓励