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

MySQL: 自动添加约束、更改(删除)表名和字段、删除表

目录

自动添加表的属性:

向表内插入数据:

查看表中的数据:

查看表结构:

查看表的详细结构:

更改表名和字段:

更改表名:

更改字段数据类型:

修改字段名:

 添加字段:

删除字段:

 修改字段排列位置:

更改储存引擎:

删除表的外键约束:

删除表:


前言:自学记录。

自动添加表的属性:

这里应该接入笔者写的上一篇的内容,会更好一些。

MySQL:创建数据库,数据表,主键和外键_豆包的戳苏的博客-CSDN博客

自动添加的字段可以是任何整数类型。

(语句中包含CONTRAINT 就是约束语句。)

 选择数据库,在库中建立一个新的数据表 tb6

在表中添加相关的字段,将 id 设置为 主键,并设置成 自动约束。

自动约束可以自动生成数据,如果了解过python中第三方库pandas的话,可以参考里面的DataFrame 或  中的 index,因为 index 是自动生成的。

向表内插入数据:

INSERT INTO <表名称> (<字段1>, <字段2>);

# 括号内部可以添加多个字段,如果字段设置为“NOT NULL”,就必须添加;如果没有“非空约束”,就可以不用添加。同时注意“唯一约束”。

查看表中的数据:

SELECT * FROM <表名称>;

继续按这个方式插入:

证明该语句可以查看完整的表格,而不是只显示插入的部分。

这里插播一条:

查看表结构:

DESCRIBE <表名称>; 或 DESC <表名称>;

查看表的详细结构:

SHOW CREATE TABLE <表名称>;

 从中我们可以知道:id 数据类型为INT,每一条不可为空,自动填充;name  字符串->utf8mb4;deptID 数据类型为整数型,默认为空,salary同之;主键为id;引擎为InnoDB;自动填充了7个内容(包括最开头的一行)

DEFAULT 指的是默认约束,这里面默认的是NULL。

做了一个小测试,又插入了两行数据,这回再看看:

这里的AUTO_INCREMENT 是 9,但是我插入了8个数据,算上字段行,一共生成了9行。 

更改表名和字段:

更改表名:

ALTER TABLE <旧名字> RENAME <新名字>;

# 书上教材的写法是在RENAME 后面加了一个 [TO],我这里删掉了,是为了能够更好的理解。

# 更改表名 和 更改字段名称一定要区别开来! 

 最后通过查看全部表名进行检验。

更改字段数据类型:

这个句法和更改表名的类似,所以放在一起说了。

ALTER TABLE <表名> MODIFY <字段> <新数据类型>;

依然是tb11作为例子,查看最初的数据类型:

 接下来进行修改:将name字段的数据类型改为int

ALTER TABLE <> MODIFY <> <>;

显示表格信息,进行查看:

 将name字段的int类型更改回varvhar(25):

ALTER TABLE <> MODIFY <> <>;

如果不清楚数据类型,可以在修改的最初,展示一下表格中的各字段细节。

修改字段名:

# 数据库中含有数据的时候,不要轻易更改数据类型。

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新字段数据类型>;

 添加字段:

ALTER TABLE <表名> ADD <新字段> <新字段数据类型> [FIRST/AFTER <这部分可有可无,如果没有则放在所有字段最末尾,如果是FIRST则放在开头,如果想要放在指定位置,则用AFTER,你想要放在哪个字段后面,AFTER后面就写哪个字段的名称>];

 加上AFTER 参数:

# 当然可以发现,数据类型这里,不区分大小写。

删除字段:

ALTER TABLE <表名> DROP <字段名>;

 修改字段排列位置:

ALTER TABLE <表名> MODIFY <字段名> <字段数据类型> [FIRST/AFTER] <如果使用AFTER,排列在哪个字段后面,就写哪个字段的名称,FIRST就不需要了>

把school字段放在 id 的后面。

 把NAME 放在第一个后,再放到最后一个

放到最后一个依然应用AFTER 

更改储存引擎:

ALTER TABLE <表名> ENGINE=<更改后的引擎> ;


 
删除表的外键约束:

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

以上是我创建的带有外键约束的表,现在删除外键:

# 注意外键名称!是:fk_emp_tb3, 不是 septID(这个是字段)

 

删除表:

DROP TABLE IF EXISTS <表名>;

# 如果存在外键,父表无法直接删除,必须取消外键约束,才能进行删除!!!


 以上,就是数据表的基本操作,复盘:

首先学习了自动添加表格属性,这个直接在创建表格,设置字段的时候进行标注:AUTO_INCREMENT

查看表结构 DESCRIBE 简写为DESC

查看详细内容: SHOW CREATE TABLE <表名>;

修改表名: ALTER TABLE <旧表名> RENAME <新表名>;

修改表内字段数据类型: ALTER TABLE <表名> MODIFY <字段名> <新数据类型>;

修改表内字段名: ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新字段数据类型>;

添加字段:ALTER TABLE <表名> ADD <字段名> [FIRST/LATER<>];

删除字段:ALTER TABLE <表名> DROP <字段名>;

改变字段位置:ALTER TABLE <表名> MODIFY <字段> FIRST/AFTER <字段>;

删除外键约束:ALTER TABLE <表名> DROP FOREIGN KEY <外键>;

删除表:DROP TABLE IF EXISTS <表名(可以是多个)>;

# 前提是不能删除带有外键约束的父表,必须取消约束才能删除!


日拱一卒,功不唐捐。

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

相关文章:

  • 基于微博评论的细粒度的虚假信息识别软件
  • Android 11.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析
  • ROS学习第三十二节——xacro构建激光雷达小车
  • 中厂,面试就问了4道题,凉了!
  • 22.轮播模块
  • MYSQL命令小总结
  • Java常见开发工具和Object类
  • Linux 配置YUM源(FTP方式获取软件源、使用阿里云yum源、同时使用本地源与在线源)YUM获取安装包并生成YUM软件仓库
  • Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服务
  • 养老保障金查询系统【GUI/Swing+MySQL】(Java课设)
  • 国考省考行测:词句理解,词的对象指代,就近原则,主语一致法,语意语境分析上下文找出指代含义
  • 部署YUM仓库
  • SpringBoot框架(邮件发送Mail|持久层框架JPA|Extra前后端分离跨域处理|接口管理Swagger)这一篇就够了(超详细)
  • chatGPT对话R语言
  • 代码随想录--字符串--替换空格题型
  • Spring JDBC和事务控制
  • 【音视频第16天】详解STUN协议
  • C++算法初级11——01背包问题(动态规划2)
  • Python 库大全(下)
  • 如何用链表实现LRU缓存淘汰算法
  • 【01】数据结构与算法基础-数据、数据元素、数据项和数据对象 | 数据类型和抽象数据类型 | 抽象数据类型的表示和C++实现
  • PHP匿名类的使用场景有哪些?PHP匿名类怎么用?有什么好处?PHP匿名类如何在运行时动态生成?
  • 【并发基础】一篇文章带你彻底搞懂Java线程中断的底层原理——interrupt()、interrupted()、isInterrupted()
  • 【c语言】函数的数据传递原理 | 数组传入函数方法
  • vue3源码(3)——computed
  • 数学建模第七天:数学建模算法篇之插值及MATLAB实现
  • RUST 每日一省:生命周期作用域
  • 【过程8】——能量守恒视角总结感受
  • kong(4):限流配置
  • 人脸识别 Face Recognition 入门