目录
自动添加表的属性:
更改表名和字段:
更改表名:
更改字段数据类型:
修改字段名:
添加字段:
删除字段:
修改字段排列位置:
编辑 删除表的外键约束:
删除表:
前言:自学记录。
自动添加表的属性:
这里应该接入笔者写的上一篇的内容,会更好一些。
MySQL:创建数据库,数据表,主键和外键_豆包的戳苏的博客-CSDN博客
自动添加的字段可以是任何整数类型。
(语句中包含CONTRAINT 就是约束语句。)
选择数据库,在库中建立一个新的数据表 tb6
在表中添加相关的字段,将 id 设置为 主键,并设置成 自动约束。
向表内插入数据,
首先选择其要插入的 字段名称(可以是一个字段,也可以是多个字段)
其次设置插入的值,注意,字符串和整数型的书写方式哦。
查看表:
注意查看表的命令:
SELECT * FROM tb6(表名称)
继续按这个方式插入:
证明该语句可以查看完整的表格,而不是只显示插入的部分。
这里插播一条:
查看表结构:DESCRIBE 表名称
当然可以简写为DESC
如果要想查看表的详细结构:
从中我们可以知道:id 数据类型为INT,每一条不可为空,自动填充;name 字符串->utf8mb4;deptID 数据类型为整数型,默认为空,salary同之;主键为id;引擎为InnoDB;自动填充了7个内容(包括最开头的一行)
DEFAULT 指的是默认约束,这里面默认的是NULL。
做了一个小测试,又插入了两行数据,这回再看看:
更改表名和字段:
更改表名:
ALTER TABLE <旧名字> RENAME <新名字>;
# 书上教材的写法是在RENAME 后面加了一个 [TO],我这里删掉了,是为了能够更好的理解。
最后通过查看全部表名进行检验。
更改字段数据类型:
这个句法和更改表名的类似,所以放在一起说了。
ALTER TABLE <表名> MODIFY <字段> <新数据类型>;
依然是tb11作为例子,查看最初的数据类型:
接下来进行修改:将name字段的数据类型改为int
显示表格信息,进行查看:
将name字段的int类型更改回varvhar(25):
如果不清楚数据类型,可以在修改的最初,展示一下表格中的各字段细节。
修改字段名:
# 数据库中含有数据的时候,不要轻易更改数据类型。
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新字段数据类型>;
添加字段:
ALTER TABLE <表名> ADD <新字段> <新字段数据类型> [FIRST/AFTER <这部分可有可无,如果没有则放在所有字段最末尾,如果是FIRST则放在开头,如果想要放在指定位置,则用AFTER,这个地方就写入字段名称>];
加上AFTER 参数:
# 当然可以发现,数据类型这里,不区分大小写。
删除字段:
ALTER TABLE <表名> DROP <字段名>;
修改字段排列位置:
ALTER TABLE <表名> MODIFY <字段名> <字段数据类型> <移动后的位置>
把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 <表名(可以是多个)>;
# 前提是不能删除带有外键约束的父表,必须取消约束才能删除!
日拱一卒,功不唐捐。