第3讲——MySQL数据表的基本操作2

126 阅读4分钟

❤️持续创作,加速成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情

🎨 个人介绍

👉大家好,我是:旺仔不是程序员

👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

👉你的支持,是我每天更新的动力。

👉赞点:👍 留言:✍ 收藏:⭐

👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

my.jpeg

1. 查看数据表结构

  1. 目的:来确认表的定义是否正确
  2. 方法:在MySQL中,查看表结构可以使用DESCRIBE和SHOW CREATE TABLE语句

1. DESCRIBE:查看表基本结构语句

  1. 概述:DESCRIBE/DESC语句可以查看表的字段信息,其中包括字段名、字段数据类型、是否为主键、是否有默认值等

  2. 语法规则:

    1. 正常:DESCRIBE 表名;
    2. 简写:DESC 表名;(常用)
  3. 字段含义

    1. NULL:表示该列是否可以存储NULL值。

    2. Key:表示该列是否已编制索引

      1. PRI表示该列是表主键的一部分
      2. UNI表示该列是UNIQUE索引的一部分
      3. MUL表示在列中某个给定值允许出现多次
    3. Default:表示该列是否有默认值,有的话指定值是多少

    4. Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

 # 查看tb_dept1表结构,SQL语句如下:
 DESCRIBE tb_dept1;
 # 查看tb_emp1表结构,SQL语句如下:
 DESC tb_emp1;

2. SHOW CREATE TABLE:查看表详细结构语句

  1. 概述:SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句

  2. 语法格式:SHOW CREATE TABLE <表名>;

  3. 说明:

    1. 使用SHOW CREATE TABLE语句,不仅可以查看表创建时候的详细语句
    2. 还可以查看存储引擎和字符编码
 # 查看表tb_emp1的详细信息,SQL语句如下:
 SHOW CREATE TABLE tb_emp1;

2. 修改数据表

  1. 概述:

    1. 修改表指的是修改数据库中已经存在的数据表的结构
    2. MySQL使用ALTER TABLE语句修改表

1. 修改表名

  1. 概述:MySQL是通过ALTER TABLE语句来实现表名的修改的

  2. 语法规则:ALTER TABLE <旧表名> RENAME [TO] <新表名>;

  3. 注意:

    1. TO为可选参数,使用与否均不影响结果
    2. 修改表名并不修改表的结构,因此修改名称后的表和修改名称前的表的结构必然是相同的
 # 将数据表tb_dept3改名为tb_deptment3。
 ALTER TABLE tb_dept3 RENAME tb_deptment3;

2. 更改表的存储引擎

  1. 语法格式: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. 删除表的外键约束

  1. 概述:

    1. 对于数据库中定义的外键,如果不再需要,可以将其删除
    2. 外键一旦删除,就会解除主表和从表间的关联关系
  2. 语法格式: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. 删除数据表

  1. 概述:删除数据表就是将数据库中已经存在的表从数据库中删除

  2. 注意:

    1. 在删除表的同时,表的定义和表中所有的数据均会被删除
    2. 因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无法挽回的后果
  3. 删除类型:

    1. 删除没有被关联的表
    2. 删除被其他表关联的主表
  4. 删除数据库表的3种方式

    1. drop:删除内容和定义,释放空间。简单来说就是把整个表删除掉,执行后数据库就没有这张表了
    2. truncate:删除数据表,再创建一个和原来表结构一样的表(删除所有数据时,建议使用)
    3. 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;