当前位置: 首页 > news >正文

【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)

在这里插入图片描述

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。
🎯每天努力一点点,技术变化看得见

文章目录

  • 创建表
  • 查看表结构
  • 修改表
  • 删除表


创建表

语法:

create table table_name(field1 datatype,field2 datatype,field3 datatype
)charset=字符集名称 collate=校验规则名称 engine=存储引擎名称

说明:
● filed表示列名
● datatype表示列的类型
● charset(写成character set也可以)字符集,如果没有指定字符集,则以所在数据库的字符集为准
●collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
●engine存储引擎,如果没有指定存储引擎,则以所在数据库的存储引擎为准

创建表案例:
案例: 创建一个学生表,其中包含学号、姓名、性别。
在这里插入图片描述
上述的charset、collate、engine后面可以不跟’=',可以直接对应的取值,如下图所示↓↓↓
在这里插入图片描述
上述的charset还可以写成character set,且各属性之间可以选择使用空格间隔,也可以选择使用逗号间隔↓↓↓
在这里插入图片描述
★ps:不同的存储引擎创建的表的文件是不一样的↓↓↓
在这里插入图片描述
其中student和student_copy表的存储引擎是InnoDB,在数据库目录中各有两个不同的文件:以.frm结尾的是表结构,以.ibd结尾的是表索引。
而student_recopy表的存储引擎是MyISAM,在数据库目录中有三个不同的文件:以.frm结尾的是表结构,以.MYD结尾的是表数据,以.MYI结尾的是表索引。
关于什么是索引,及存储引擎的具体差异,将于后序文章中介绍,这里先了解:不同的存储引擎在具体存储时存在一定的差异

查看表结构

上文使用的show create table [表名称] \G虽然能够查看表的创建语句,但无法清晰明了的展现表的各个细节。

如果想查看表的各个细节,可以使用如下指令↓↓↓

desc 表名称;

在这里插入图片描述

修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

表添加字段语法:

alter table table_name add(column datatype [default expr][,column datatype]...);

表删除字段语法:

alter table table_name drop(column [,column]...);

表修改字段属性(不修改字段名称)语法:

alter table_name modify(column datatype [default expr][, column datatype]...);

表修改字段属性(可修改字段名称)语法:

alter table tabel_name change 原字段名称 新字段名称 [default expr];

表名称修改语法:

alter table 原表名称 rename to 新表名称;

修改表案例:
案例1: 给student表添加年龄字段,并添加在姓名之后

alter table student add age int after name;

在这里插入图片描述
案例2: 给student插入3条数据后,在所有字段之后添加birthday字段

insert into student values('0001','小明',18,'男');
insert into student values('0002','小菜',19,'男');
insert into student values('0003','小树',23,'男');
select * from student;

在这里插入图片描述

alter table student add dirthday date;

在这里插入图片描述
★ps:从上面可知,由于添加字段,原来的数据中没有新增字段的数据,这些位置会被填写Defaut数值。原来的数据并不会受到影响。
案例3: 将student表中的name字段varchar长度修改为64

alter table student modify name varchar(64);

在这里插入图片描述
案例4: 删除age字段
在这里插入图片描述
★ps:删除字段一定要小心,删除字段及其对应的列数据都没了

案例5: 修改student表表名为stu
在这里插入图片描述
★ps:rename语句中,to可以省略

案例6: 修改gender字段名为sex
在这里插入图片描述

删除表

语法:

drop [temporary] table [if exists] table_name [,table_name]...

下图演示了删除stu表↓↓↓
在这里插入图片描述

🎈欢迎进入半夜学习MySQL专栏,查看更多文章。
如果上述内容有任何问题,欢迎在下方留言区指正b( ̄▽ ̄)d

http://www.lryc.cn/news/349198.html

相关文章:

  • 曲线救国:window 安装 docker
  • 番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)
  • Pascal Content数据集
  • 【Unity】使用Resources.LoadAll读取文件的顺序问题
  • pdf怎么标注红色方框?五种PDF标注红色方框方法
  • C++字符串细节,面试题06
  • AutoModelForCausalLM.from_pretrained 函数调用本地权重报错
  • 【qt】动态属性
  • Git知识点总结
  • 【数据库】数据库指令
  • 设计模式——状态模式(State)
  • 理解打包好的vue项目结构dist包
  • 24深圳杯C题18页高质量论文+可执行代码+图表
  • Midjourney Imagine API 申请及使用
  • 电子邮箱是什么?怎么申请一个电子邮箱?
  • C++ 并发编程指南(11)原子操作 | 11.4、通过内存序实现顺序模型
  • 【数据结构】栈和队列专题
  • 2024年程序员最应该关注的几件事?
  • 【初阶数据结构】单链表基础OJ题讲解
  • 基于Java的俄罗斯方块游戏的设计与实现
  • Hadoop 3.4.0+HBase2.5.8+ZooKeeper3.8.4+Hive+Sqoop 分布式高可用集群部署安装 大数据系列二
  • umi搭建react项目
  • mybatis-plus之数据源切换事务失效问题
  • vue 百度地图点击marker修改marker图片,其他marker图片不变。
  • 【Javaer学习Python】 1、Django安装
  • SSL协议
  • 什么情况下会造成索引失效?
  • 间隔采样视频的代码
  • C++ QT设计模式 (第二版)
  • 【经验总结】超算互联网服务器 transformers 加载本地模型