❤️持续创作,加速成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情”
🎨 个人介绍
👉大家好,我是:旺仔不是程序员
👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻
👉你的支持,是我每天更新的动力。
👉赞点:👍 留言:✍ 收藏:⭐
👉个人格言:想法一步一步的落实,才是你我前进最佳选择。
1. 查看数据表结构
- 目的:来确认表的定义是否正确
- 方法:在MySQL中,查看表结构可以使用DESCRIBE和SHOW CREATE TABLE语句
1. DESCRIBE:查看表基本结构语句
概述:DESCRIBE/DESC语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等
语法规则:
- 正常:DESCRIBE 表名;
- 简写:DESC 表名;(常用)
字段含义
NULL:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引
- PRI表示该列是表主键的一部分
- UNI表示该列是UNIQUE索引的一部分
- MUL表示在列中某个给定值允许出现多次
Default:表示该列是否有默认值,有的话指定值是多少
Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。
# 查看tb_dept1表结构,SQL语句如下:
DESCRIBE tb_dept1;
# 查看tb_emp1表结构,SQL语句如下:
DESC tb_emp1;
2. SHOW CREATE TABLE:查看表详细结构语句
概述:SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句
语法格式:SHOW CREATE TABLE <表名>;
说明:
- 使用SHOW CREATE TABLE语句,不仅可以查看表创建时候的详细语句
- 还可以查看存储引擎和字符编码
# 查看表tb_emp1的详细信息,SQL语句如下:
SHOW CREATE TABLE tb_emp1;
2. 修改数据表
概述:
- 修改表指的是修改数据库中已经存在的数据表的结构
- MySQL使用ALTER TABLE语句修改表
1. 修改表名
概述:MySQL是通过ALTER TABLE语句来实现表名的修改的
语法规则:ALTER TABLE <旧表名> RENAME [TO] <新表名>;
注意:
- TO为可选参数,使用与否均不影响结果
- 修改表名并不修改表的结构,因此修改名称后的表和修改名称前的表的结构必然是相同的
# 将数据表tb_dept3改名为tb_deptment3。
ALTER TABLE tb_dept3 RENAME tb_deptment3;
2. 更改表的存储引擎
- 语法格式:ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
# 将数据表tb_deptment3的存储引擎修改为MyISAM。
# 在修改存储引擎之前,先使用SHOW CREATE TABLE查看表tb_deptment3当前的存储引擎,结果如下。
SHOW CREATE TABLE tb_deptment3
ALTER TABLE tb_deptment3 ENGINE=MyISAM;
SHOW CREATE TABLE tb_deptment3
3. 删除表的外键约束
概述:
- 对于数据库中定义的外键,如果不再需要,可以将其删除
- 外键一旦删除,就会解除主表和从表间的关联关系
语法格式:ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>
# 删除数据表tb_emp9中的外键约束。
# 首先创建表tb_emp9,创建外键deptId关联tb_dept1表的主键id,SQL语句如下:
CREATE TABLE tb_emp9
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
# 使用SHOW CREATE TABLE查看表tb_emp9的结构,结果如下:
SHOW CREATE TABLE tb_emp9
ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
SHOW CREATE TABLE tb_emp9
4. 删除数据表
概述:删除数据表就是将数据库中已经存在的表从数据库中删除
注意:
- 在删除表的同时,表的定义和表中所有的数据均会被删除
- 因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无法挽回的后果
删除类型:
- 删除没有被关联的表
- 删除被其他表关联的主表
删除数据库表的3种方式
- drop:删除内容和定义,释放空间。简单来说就是把整个表删除掉,执行后数据库就没有这张表了
- truncate:删除数据表,再创建一个和原来表结构一样的表(删除所有数据时,建议使用)
- delete:系统一行一行地删(删除所有数据时,很慢,建议不使用)
# 删除数据表tb_dept2,SQL语句如下:
DROP TABLE IF EXISTS tb_dept2;
# 在数据库中创建两个关联表,首先,创建表tb_dept2,SQL语句如下:
CREATE TABLE tb_dept2
(
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50)
);
# 接下来创建表tb_emp,SQL语句如下:
CREATE TABLE tb_emp
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept2(id)
);
# 使用SHOW CREATE TABLE命令查看表tb_emp的外键约束,结果如下:
SHOW CREATE TABLE tb_emp\G
# 删除被数据表tb_emp关联的数据表tb_dept2,会删除失败
DROP TABLE tb_dept2;
# 删除外键
ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;
# 删除成功
DROP TABLE tb_dept2;
SHOW tables;