mysql查询数据表中数据总数慢_「4」MySQL中操作数据表的SQL汇总

在学完建表知识后,自然会想到该如何操作表的事情了,这就是本文的内容。

【0】引入问题

13547d0d7c5cf6344d728690547d34e1.png

我们还是按照从问问题的老套路开始,罗列下表操作有哪些。

  • 如何增加与删除表的列(请条友移步上一篇瞄一眼)?
  • 数据库中有多少表?
  • 如何查看表结构?
  • 表名如何修改?
  • 字段名如何修改?
  • 表的字段顺序是否可以调整?
  • 表的字段类型是否可以修改?如何修改?
  • 表的存储引擎如何查看与修改?
  • 表的主键如何创建?
  • 表的外键如何创建与删除?

下面我们就这些问题一一展开。

【1】查看数据库表

连接到数据库之后,我们的第一反应当然是想看看有多少张表,每张表的表名如何。

show tables;
71387363d084c42d588de9313a7d2ff9.png

【2】查看表结构

MySQL提供了两种查看方式:一是查看基本表结构,一是查看详细结构。

describe student_info; -- 基本表结构show create table student_info; -- 详细表结构
5015a2b7e76a473674a198cb686ac10a.png

【3】修改表名

-- 将student_info表改名为student_info2alter table student_info rename student_info2; 
daa8f96be6e21d02913c84cd8d2a3c5c.png

【4】修改字段名

-- 将字段grade更名为 nianjialter table student_info2 change grade nianji varchar(10);
6bebbe8a545128ba6fa3c34dd2b0fd88.png

注:此命令中change关键词不能丢,另外新字段名后面要带上字段类型。

【5】修改字段类型

-- 将字段nianji类型修改为varchar(32)alter table student_info2 modify nianji varchar(32);
4a01e90319b835882f3b8c37051f513e.png

【6】字段顺序调整

-- 将字段nianji调为第一个字段alter table student_info2 modify nianji varchar(32) first;
711eb1d3e6be1eb661ac75f6e2c198cf.png
-- 将字段nianji调为另一个字段后面,当然就能实现放到最后一位alter table student_info2 modify nianji varchar(32) after address;
e112402bda1fa81aecca4fc82a45d7e9.png

【7】表的存储引擎

如果仔细点我们就能发现在查看表详细结构的时候就看到了该表的存储引擎。

f59262d8f2243e1a59419c3b773d6c1e.png
-- 修改表的存储引擎为MyISAMalter table student_info2 ENGINE=MyISAM;
d3591a094944621af9dd4ee1ffb66d99.png

此处我们发现,由于目标表存储一个外键,所以导致引擎修改失败。我们在接下来再解决这个问题。

【8】主键

一般主键是在建表的时候指定。

d69ea661c8b157f4cf4e33dd24cc9baa.png

当然也提供了再建好表之后再建主键的功能,并且可以用多个字段组合创建主键。

-- 用两个字段做主键ALTER TABLE bbs_user ADD CONSTRAINT pk_bbs_user1 PRIMARY KEY(uID,userName);
7f3e3b6b51338cdd6413eac2755686d3.png
-- 删除主键(不执行)ALTER TABLE bbs_user drop PRIMARY KEY;

【9】外键

通过核查,我们发现student_info2表的字段sno是表score_info的外键。此时我们尝试删除该外键。

alter table score_info drop FOREIGN KEY score_info_ibfk_1;
d54215abceceee93b24d6a14905b1ed2.png

细心的人可能发现一个问题:删除主键时不用指定主键名,而删除外键时需要指定外键名?那是因为一个表只有一个主键,而可能有多个外键。

接着我们可以尝试再次修改表的存储引擎,看看是否可行。

043ecf3de7f16888bb8575e309551f29.png

当然也是可以恢复删除的外键。

alter table score_info add FOREIGN KEY score_info_ibfk_1(sno) references student_info2(sno);

总结

本文罗列了八种表操作的情况,肯定不能覆盖全部的情况,更多地希望起到抛转引玉的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值