SQL基础教程(视频教学版)
上QQ阅读APP看书,第一时间看更新

2.8 综合案例——数据表的基本操作

本章全面介绍了MySQL中数据表的各种操作,如创建表、添加各类约束、查看表结构以及修改和删除表。读者应该掌握这些基本的操作,为以后的学习打下坚实的基础。这里给出一个综合案例,让读者全面回顾一下本章的知识要点,并通过这些操作来检验自己是否已经掌握了数据表的常用操作。

1. 案例目的

创建、修改和删除表,掌握数据表的基本操作。

创建数据库company,按照表2.4和表2.5给出的表结构在company数据库中创建两个数据表offices和employees,按照操作过程完成对数据表的基本操作。

表2.4 offices表结构

表2.5 employees表结构

2. 案例操作过程

步骤01 登录MySQL数据库。

启动Windows命令行,输入登录数据库的用户名和密码:

    C:\>mysql –h localhost -u root -p
    Enter password: **

或者启动MySQL 8.0 Command Line Client,只输入用户密码也可以登录。登录成功后显示如下信息:

登录成功之后,可以输入SQL语句进行操作。

步骤02 创建数据库company。

创建数据库company的语句如下:

    mysql> CREATE DATABASE company;

结果显示创建成功。在company数据库中创建表,必须先选择该数据库,输入语句如下:

    mysql> USE company;
    Database changed

结果显示选择数据库成功。

步骤03 创建表offices。

创建表offices的语句如下:

执行成功之后,使用“SHOW TABLES;”语句查看数据库中的表,语句如下:

可以看到,数据库中已经有了数据表offices,创建成功。

步骤04 创建表employees。

创建表employees的语句如下:

执行成功之后,使用“SHOW TABLES;”语句查看数据库中的表,语句如下:

可以看到,现在数据库中已经创建好了employees和offices两个数据表。要检查表的结构是否按照要求创建,可使用DESC分别查看两个表的结构,如果语句正确,则显示结果如下:

可以看到,两个表中字段分别满足表2.4和表2.5中要求的数据类型和约束类型。

步骤05 将表employees的mobile字段修改到officeCode字段后面。

修改字段位置,需要用到ALTER TABLE语句,输入语句如下:

    mysql> ALTER TABLE employees MODIFY mobile VARCHAR(25) AFTER officeCode;

结果显示执行成功,使用DESC查看修改后的结果如下:

可以看到,mobile字段已经插入到officeCode字段的后面。

步骤06 将表employees的birth字段改名为employee_birth。

修改字段名,需要用到ALTER TABLE语句,输入语句如下:

    ALTER TABLE employees CHANGE birth employee_birth DATETIME;

结果显示执行成功,使用DESC查看修改后的结果如下:

可以看到,表中只有employee_birth字段,已经没有名称为birth的字段了,修改名称成功。

步骤07 修改sex字段,将数据类型修改为CHAR(1),非空约束。

修改字段数据类型需要用到ALTER TABLE语句,输入语句如下:

    mysql>ALTER TABLE employees MODIFY sex CHAR(1) NOT NULL;

结果显示执行成功,使用DESC查看修改后的结果如下:

从执行结果可以看到,sex字段的数据类型已经修改为CHAR(1),且其Null字段显示为NO,表示该字段不允许空值,修改成功。

步骤08 删除字段note。

删除字段,需要用到ALTER TABLE语句,输入语句如下:

    mysql> ALTER TABLE employees DROP note;

结果显示执行语句成功,使用“DESC employees;”查看语句执行后的结果:

可以看到,DESC语句返回了8个列字段,note字段已经不在表结构中,删除字段成功。

步骤09 增加字段名favorite_activity,数据类型为VARCHAR(100)。

增加字段,需要用到ALTER TABLE语句,输入语句如下:

    mysql> ALTER TABLE employees ADD favorite_activity VARCHAR(100);

结果显示执行语句成功,使用DESC employees;查看语句执行后的结果:

可以看到,数据表employees中增加了一个新的列favorite_activity,数据类型为VARCHAR(100),允许空值,添加新字段成功。

步骤10 删除表offices。

在创建表employees时,设置了表的外键,该表关联了其父表的officeCode主键。如前面所述,删除关联表时,要先删除子表employees的外键约束才能删除父表。因此,必须先删除employees表的外键约束。

(1)删除employees表的外键约束,输入如下语句:

    mysql>ALTER TABLE employees DROP FOREIGN KEY office_fk;

其中,office_fk为employees表的外键约束的名称,即创建外键约束时CONSTRAINT关键字后面的参数,结果显示语句执行成功,现在可以删除offices父表。

(2)删除表offices,输入如下语句:

    mysql>DROP TABLE offices;

结果显示执行删除操作成功。使用“SHOW TABLES;”语句查看数据库中的表,结果如下:

可以看到,数据库中已经没有名称为offices的表了,删除表成功。

步骤11 修改表employees存储引擎为MyISAM。

修改表存储引擎,需要用到ALTER TABLE语句,输入语句如下:

    mysql>ALTER TABLE employees ENGINE=MyISAM;

结果显示执行修改存储引擎操作成功。使用“SHOW CREATE TABLE”语句查看表结构,结果如下:

可以看到,倒数第1行中的ENGINE后面的参数已经修改为MyISAM,修改成功。

步骤12 将表employees名称修改为employees_info。

修改数据表名需要用到ALTER TABLE语句,输入语句如下:

    mysql>ALTER TABLE employees RENAME employees_info;
    Query OK, 0 rows affected (0.00 sec)

结果显示执行语句成功。使用“SHOW TABLES;”语句查看执行结果:

可以看到数据库中已经没有名称为employees的数据表。