天天看点

MySQL数据库 - 数据库和表的基本操作(一)

数据定义(DDL)

      • 第1关:查看表结构与修改表名
        • 任务描述
        • 相关知识
          • 查看数据表基本结构
          • 查看数据表详细结构
          • 修改表名
        • 编程要求
        • 测试说明
      • 第2关:修改字段名与字段数据类型
        • 任务描述
        • 相关知识
          • 修改字段名
          • 修改字段数据类型
        • 编程要求
        • 测试说明
      • 第3关:添加与删除字段
        • 任务描述
        • 相关知识
          • 添加字段
            • 在表的最后一列添加字段
            • 在表的第一列添加字段
            • 在表的指定列后添加字段
          • 删除字段
        • 编程要求
        • 测试说明
      • 第4关:修改字段的排列
        • 任务描述
        • 相关知识
          • 修改字段的排列位置
          • 修改字段为表的第一个字段
          • 修改字段到表的指定列之后
        • 编程要求
        • 测试说明
      • 第5关:删除表的外键约束
        • 任务描述
        • 相关知识
          • 删除表的外键约束
        • 编程要求
        • 测试说明

第1关:查看表结构与修改表名

任务描述

本关任务:修改表名,并能顺利查询到修改后表的结构。

相关知识

为了完成本关任务,你需要掌握: 1.如何查看表的结构; 2.如何修改表的名称。

查看数据表基本结构

有强迫症或健忘症的小伙伴们在建好数据库和表以后,通常会怀疑自己刚才是不是敲错了,怎么办?如果不是使用图形界面是不是就没法查看啦?

不存在的,这就告诉你查看口令:

DESCRIBE

语法规则为:

DESCRIBE 表名;

大小写不敏感哟!

DESCRIBE

可以查看表的字段信息,包括:字段名、字段数据类型、是否为主键、是否有默认值等。

比如本岛主新建了一个名叫

Products

的表,结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

现在来看看“现场”,用

DESCRIBE

查表的结构是这样的。

其中,该结构中各个字段的含义分别为:

  • NULL

    :表示该列是否能存储

    NULL

    值;
  • Key

    :表示该列是否已编制索引;
  • PRI

    :表示该列是此表主键的一部分;
  • UNI

    :表示该列是

    UNIQUE

    索引的一部分;
  • MUL

    :表示在列中某个给定值允许出现多次;
  • Default

    :表示该列是否有默认值,如果有的话值是多少;
  • Extra

    :表示可以获取的与给定列有关的附加信息。
    MySQL数据库 - 数据库和表的基本操作(一)
查看数据表详细结构

什么?你发现表建错了,你想知道错在哪里了? 那就用

SHOW CREATE TABLE

语句吧。

语法规则为:SHOW CREATE TABLE 表名; 。

还是刚才那个例子,让我们看看

SHOW CREATE TABLE

有什么能耐。

MySQL数据库 - 数据库和表的基本操作(一)
MySQL数据库 - 数据库和表的基本操作(一)

可以看到,使用 SHOW CREATE TABLE 语句,不仅仅可以返回给我们建表时所写的详细语句,而且还可以查看存储引擎和字符编码。

再告诉大家一个小诀窍,是不是觉得返回的结果排版有点乱。我们加上

\G

后效果就会有所改善哟,来看看!

MySQL数据库 - 数据库和表的基本操作(一)
修改表名

随着表越来越多,有时候你会后悔之前的数据表的名字根本没有认真斟酌过,想要重新命名一下,可以做到吗?

答案是:可以!

MySQL

是通过

ALTER TABLE

语句来修改表名的。

语法规则为:ALTER TABLE 旧表名 RENAME 新表名; 。

举个例子,我们先用

SHOW TABLES

看看我们的数据库中有什么表吧。

MySQL数据库 - 数据库和表的基本操作(一)

可以看到,我们目前已经有了两张表,分别叫

Products

tb_emp

接下来,我们使用

ALTER TABLE

Products

改名。

MySQL数据库 - 数据库和表的基本操作(一)

改名成功!

Products

成功变成了

Mall_products

接下来你们可以自行体验一下了!

编程要求

根据提示,在右侧编辑器补充代码:

  • 把数据表

    tb_emp

    改名为

    jd_emp

  • 查看该数据库下数据表的列表;
  • 查看数据表

    jd_emp

    的基本结构。

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

开始你的任务吧,祝你成功!

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## modify the table name ##########
ALTER TABLE tb_emp RENAME jd_emp;


########## show tables in this database ##########
show tables;


########## describe the table ##########
DESCRIBE jd_emp;


########## End ##########
           

第2关:修改字段名与字段数据类型

任务描述

本关任务:修改表中的字段名,并修改字段的数据类型。

相关知识

为了完成本关任务,你需要掌握:1.如何修改字段名;2.如何修改字段的数据类型。

修改字段名

有时,在我们建好一张表后会突然发现,哎呀!字段名貌似写错了!怎么办?要删了表再重新建一个新表吗?还是要删了这个字段再新建一个新的字段? 都不用,

MySQL

中修改字段名称也有专门的语句,接近于自然语言,很好记忆。

语法规则为: ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 。

举个例子: 现在我们要把表

Mall_products

中的字段

prod_id

改名为

ID

。表结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

输入命令:

ALTER TABLE Mall_products CHANGE prod_id ID varchar(20);

。执行过程如下所示。简单吧!

MySQL数据库 - 数据库和表的基本操作(一)

小提示: 如果不需要修改字段的数据类型,可以把新字段的数据类型设置为和原来一样,但是!千万不要空着它!

修改字段数据类型

随着存储的数据越来越多,数据库新人可能会发现,哎呀,当初预留的数据类型已经不能满足要求了,或者当初预留的字符太少了,怎么办?怎么修改?规则来了。

语法规则为: ALTER TABLE 表名 MODIFY 字段名 数据类型; 。

举个例子: 现在我们要把表

Mall_products

中的字段

ID

的数据类型改为

varchar(30)

。表结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

输入命令:

ALTER TABLE Mall_products MODIFY ID varchar(30);

。执行过程如下所示。

MySQL数据库 - 数据库和表的基本操作(一)

ID

的数据类型

varchar(20)

成功变成了

varchar(30)

接下来你们可以自行体验一下了!

编程要求

根据提示,在右侧编辑器补充代码:

  • 把数据表

    tb_emp

    的字段

    Id

    改名为

    prod_id

    ,数据类型不变;
  • 把数据表

    tb_emp

    字段

    Name

    的数据类型改为

    varchar(30)

数据表结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

开始你的任务吧,祝你成功!

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## change the column name ##########
alter table tb_emp change Id prod_id int(11);


########## change the data type of column ##########
alter table tb_emp modify Name varchar(30);


########## End ##########

DESCRIBE tb_emp;
           

第3关:添加与删除字段

任务描述

本关任务:分别在表的最后一列、第一列和指定列后添加新的字段,并删除表中的指定字段。

相关知识

为了完成本关任务,你需要掌握: 1.如何在指定位置添加新的字段, 2.如何删除指定的字段。

添加字段

因为甲方的业务需求是不停变化的,所以在数据库操作中,添加字段可是常有的事。一个完整的字段包括:

字段名

数据类型

完整性约束

语法规则为: ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER] 已存在字段名; 。

以下是在

MySQL

中常用的约束。

NOT NULL

约束:确保某列不能有

NULL

值。

DEFAULT

约束:当某列没有指定值时,为该列提供默认值。

UNIQUE

约束:确保某列中的所有值是不同的。

PRIMARY Key

约束:唯一标识数据库表中的各行/记录。

CHECK

约束:

CHECK

约束确保某列中的所有值满足一定条件。

在表的最后一列添加字段

只要不做

[FIRST|AFTER]

的位置说明,在添加字段时

MySQL

会默认把新字段加入到表的最后一列。

举个例子: 现在我们要把字段

prod_country

添加到表

Mall_products

的最后一列。表结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

输入命令:

ALTER TABLE Mall_products ADD prod_country varchar(30);

执行结果如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

在表的第一列添加字段

如果我们想在第一列添加新的字段,只需做

FIRST

的位置说明。

举个例子: 现在我们要把字段

prod_country

添加到表

Mall_products

的第一列。

输入命令:

ALTER TABLE Mall_products ADD prod_country varchar(30) FIRST;

执行结果如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

在表的指定列后添加字段

如果我们想在某一列后面添加新的字段,只需做

AFTER

的位置说明,然后注明你想让它添加在哪个字段的后面即可。

举个例子: 现在我们要把字段

prod_country

添加到表

Mall_products

prod_name

字段的后面。

输入命令:

ALTER TABLE Mall_products ADD prod_country varchar(30) AFTER prod_name;

执行结果如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

总之,想要添加新的字段,记住绿色框里的语法规则就能记住三种位置的添加方式。

删除字段

有添加的需求就会有删除的需求。删除一个字段就是将数据表中的某个字段从表中移除。

语法规则为: ALTER TABLE 表名 DROP 字段名; 。

举个例子: 现在我们要把字段

prod_price

从表

Mall_products

中删除。表结构如上图结果所示。

输入命令:

ALTER TABLE Mall_products DROP prod_price;

执行结果如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

字段

prod_price

成功删除!

接下来你们可以自行体验一下了!

编程要求

根据提示,在右侧编辑器补充代码:

  • 在数据表

    tb_emp

    Name

    字段后添加字段

    Country

    ,数据格式为

    varchar(20)

  • 删除数据表

    tb_emp

    中的字段

    Salary

数据表结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

开始你的任务吧,祝你成功!

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## add the column ##########
ALTER TABLE tb_emp ADD Country varchar(20) AFTER Name;

 
########## delete the column ##########
ALTER TABLE tb_emp DROP Salary;


########## End ##########

DESCRIBE tb_emp;
           

第4关:修改字段的排列

任务描述

本关任务:修改表中某字段的顺序,分别将其排至表中的第一列与指定列之后。

相关知识

为了完成本关任务,你需要掌握:如何将某字段排至表中的指定位置。

修改字段的排列位置

在一个数据表被创建的时候,其字段的排列顺序就已被确定了。不能变了吗?怎么可能,一锤子买卖没人敢做。

我们可以通过

ALTER TABLE

来改变表中字段的相对位置。

语法规则为: ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2; 。

其中,

字段1

指要修改位置的字段,

FIRST

AFTER 字段2

为可选参数。

修改字段为表的第一个字段

如果我们想把字段的位置调整到第一列,只需做

FIRST

的位置说明。

举个例子 现在我们要把字段

prod_price

调整到表

Mall_products

的第一列。

Mall_products

表结构如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

输入命令:

ALTER TABLE Mall_products MODIFY prod_price FLOAT FIRST;

执行过程如下所示:

MySQL数据库 - 数据库和表的基本操作(一)
修改字段到表的指定列之后

还有一种位置调整的方法可以让你把想调整的字段放在除了第一列的任何位置。调整的时候需要做

AFTER 字段2

的位置说明。

举个例子 现在我们要把字段

prod_price

调整到字段

prod_country

的后面。

Mall_products

表结构如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

输入命令:

ALTER TABLE Mall_products MODIFY prod_price FLOAT AFTER prod_country;

执行过程如下所示:

MySQL数据库 - 数据库和表的基本操作(一)

调整成功!

接下来你们可以自行体验一下了!

编程要求

根据提示,在右侧编辑器补充代码:

  • 将数据表

    tb_emp

    Name

    字段移至第一列,数据格式不变;
  • DeptId

    字段移至

    Salary

    字段的后边,数据格式不变。

数据表结构如下:

MySQL数据库 - 数据库和表的基本操作(一)

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

开始你的任务吧,祝你成功!

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## modify the column to top ##########
ALTER TABLE tb_emp MODIFY Name varchar(25) FIRST;


########## modify the column to the rear of another column ##########
ALTER TABLE tb_emp MODIFY DeptId int(11) AFTER Salary;


########## End ##########

DESCRIBE tb_emp;
           

第5关:删除表的外键约束

任务描述

本关任务:删除表中的外键约束。

相关知识

为了完成本关任务,你需要掌握:如何删除表的外键约束

删除表的外键约束

我们曾在第一章中讲过外键的作用,以及如何创建一个表的外键。建立了外键我们就建立起了两张表的关联关系,那如果我想删除主表呢?为了确保数据库的正确性,我们必须先解除两个表之间的关联关系,那就是删除外键约束啦!让我们先来看看删除外键约束的语法规则。

语法规则为: ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; 。

举个例子: 我们先建立了一个主表

country

,表结构如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

然后建立一个有外键约束的子表

Mall_products2

,让它的键

country_id

作为外键关联到

country

的主键

id

SQL

语句如下:

CREATE TABLE Mall_products2(id INT(11) PRIMARY KEY,country_name VARCHAR(20) NOT NULL,country_id INT(11) NOT NULL,CONSTRAINT prod_country FOREIGN KEY(country_id) REFERENCES country(id))
           

上述语句成功执行后,在表

Mall_products2

上添加了名称为

prod_country

的外键约束,外键名称为

prod_country

,依赖于表

country

的主键

id

,从下图中可以看到,已经成功添加了表的外键:

MySQL数据库 - 数据库和表的基本操作(一)

Mall_products2

表结构如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

下面开始删除外键约束,语句如下:

ALTER TABLE Mall_products2 DROP FOREIGN KEY prod_country;

使用

SHOW CREATE TABLE

查看表 Mall_products2 的结构,结果如下:

MySQL数据库 - 数据库和表的基本操作(一)

我们可以看到,

FOREIGN KEY

不见了,外键约束删除成功!

接下来你们可以自行体验一下了!

编程要求

我们已经为你建立了主表

tb_dept

和子表

tb_emp

,在表

tb_emp

上添加了名称为

emp_dept

的外键约束,外键名称为

DeptId

,依赖于表

tb_dept

的主键

Id

,下面那是两张表的结构展示:

MySQL数据库 - 数据库和表的基本操作(一)
MySQL数据库 - 数据库和表的基本操作(一)

请你根据提示,在右侧编辑器

Begin-End

中补充代码:

  • 删除数据表

    tb_emp

    的外键约束

    emp_dept

测试说明

我会对你编写的代码进行测试,最终结果会如下图所示:

MySQL数据库 - 数据库和表的基本操作(一)

开始你的任务吧,祝你成功!

USE Company;

#请在此处添加实现代码
########## Begin ##########

########## delete the foreign key ##########
ALTER TABLE tb_emp DROP FOREIGN KEY emp_dept;


########## End ##########
SHOW CREATE TABLE tb_emp \G;
           

头歌 MySQL实训作业练习,本文仅供学习参考。