MySQL数据表的基本操作和基于 MySQL数据表的基本操作的综合实例项目(中)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL数据表的基本操作和基于 MySQL数据表的基本操作的综合实例项目(中)

3.5、删除字段


删除字段是将数据表中的某个字段从表中移除。


ALTER TABLE <表名> DROP <字段名>;


删除数据表tb_dept1表中的column2字段,,SQL语句如下:


mysql> ALTER TABLE tb_dept1 DROP column2;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql>  DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int         | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int         | YES  |     | NULL    |       |
| location  | varchar(60) | YES  |     | NULL    |       |
| managerId | int         | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


3.6、修改字段排列的位置


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


ALTER TABLE <表名> 
MODIFY <字段1> <数据类型>  FIRST|AFTER <字段2>;



1、修改字段为数据表的第一个字段

将数据表tb_dept中的column1字段修改为表的第一个字段,SQL语句如下:

mysql> ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql>  DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column1   | varchar(12) | YES  |     | NULL    |       |
| id        | int         | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int         | YES  |     | NULL    |       |
| location  | varchar(60) | YES  |     | NULL    |       |
| managerId | int         | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


2、修改字段到数据表制定的列之后

将数据表tb_dept1中的column1字段插入到location字段后面,SQL语句如下:

mysql> ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER location;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql>  DESC tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int         | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int         | YES  |     | NULL    |       |
| location  | varchar(60) | YES  |     | NULL    |       |
| column1   | varchar(12) | YES  |     | NULL    |       |
| managerId | int         | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)


3.7、修改数据表的存储引擎


在MySQL中,存储引擎是指MySQL数据库中表的存储类型。可以根据自己的需要,选择不同的引擎,甚至可以为每一张表选择不同的存储引擎。


qALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;


将数据表tb_deptment3的存储引擎修改为MyISAM。

1、在修改存储引擎之前,先使用SHOW CREATE TABLE查看表tb_deptment3当前的存储引擎,结果如下。


94402720900140a9a1ef778a27ed0ba3.png


2、修改存储引擎


mysql>  ALTER TABLE tb_deptment3 ENGINE=MyISAM;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0


3、在修改存储引擎之后,使用SHOW CREATE TABLE查看表tb_deptment3当前的存储引擎,结果如下。


d69b2c5c2d9d42cf891aed828d0a2954.png

3.8、修改数据表的外键约束


对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系。


ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>


删除数据表tb_emp9中的外键约束。

1、创建表tb_emp9,创建外键deptId关联tb_dept1表的主键id,SQL语句如下:

mysql> 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)
    -> );
Query OK, 0 rows affected, 2 warnings (0.03 sec)


使用SHOW CREATE TABLE查看表tb_emp9的结构,结果如下:

37ac344d7dd04dfa83324fd7d69ac7ba.png


2、删除数据表tb_emp9中的外键约束。


mysql> ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

3、使用SHOW CREATE TABLE查看表删除tb_emp9中外键约束的结构,结果如下:

image.png


4、删除数据表


4.1、删除没有被关联的表


删除数据表tb_dept2,SQL语句如下:


mysql> DROP TABLE IF EXISTS tb_dept2;
Query OK, 0 rows affected (0.01 sec)


4.2、删除被其它表关联的主表


在数据库中创建两个关联表。

1、创建表tb_dept2,SQL语句如下:

mysql> CREATE TABLE tb_dept2
    -> (
    -> id       INT(11) PRIMARY KEY,
    -> name    VARCHAR(22),
    -> location  VARCHAR(50)
    -> );
Query OK, 0 rows affected, 1 warning (0.02 sec)



2、创建表tb_emp,SQL语句如下:

mysql> 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)
    -> );
Query OK, 0 rows affected, 2 warnings (0.03 sec)

使用SHOW CREATE TABLE命令查看表tb_emp的外键约束,结果如下:


3934a0d870714cbe92976dde7ba9dca3.png


删除被数据表tb_emp关联的数据表tb_dept2。

mysql>  DROP TABLE tb_dept2;
ERROR 3730 (HY000): Cannot drop table 'tb_dept2' referenced by a foreign key constraint 'fk_emp_dept' on table 'tb_emp'.


删除会出现错误,因为存在外键的约束,主表不能直接删除。

解除子表的外键约束


mysql> ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

删除数据表tb_dept2;


mysql> DROP TABLE tb_dept2;
Query OK, 0 rows affected (0.01 sec)



消除外键约束后,主表就可以删除了。


5、综合案例-数据表的基本操作


1、案例要求


创建数据库company,按照下面数据表格的要求创建两个数据表:offices和employees。


1.1、Offices表结构


字段名 数据类型 主键 外键 非空 唯一 自增
officeCode INT(10)
city VARCHAR(50)
address VARCHAR(50)
country VARCHAR(50)
postalCode VARCHAR(15)


1.2、Employees表结构


字段名 数据类型 主键 外键 非空 唯一 自增
employeeNumber INT(11)
lastName VARCHAR(50)
firstName VARCHAR(50)
mobile VARCHAR(25)
officeCode INT(10)
jobTile VARCHAR(50)
birth DATETIME
note VARCHAR(255)
sex VARCHAR(5)


通过数据表的创建、查看、修改和删除等操作,来达到掌握有关数据表的基本操作的能力。其具体要求如下所示:

1、创建数据库company

2、创建数据表offices

3、创建数据表employees

4、将数据表employees的mobile字段修改到officeCode字段后面

5、将数据表employees的birth字段修改名称为employee_birth

6、修改sex字段的数据类型为CHAR(1),非空约束

7、删除字段note

8、增加字段名称为favorite_activity,数据类型为VARCHAR(100)

9、修改数据表employees存储引擎为MyISAM

10、将数据表employees名称修改为employees_info

11、删除数据表offices


2、案例实现过程


一、cmd环境实现案例过程


1、创建数据库company


登入数据库:

C:\WINDOWS\system32>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.29 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

创建数据库:

mysql> CREATE DATABASE company;
Query OK, 1 row affected (0.01 sec)


2、创建数据表offices

1、使用数据库company

mysql> USE company;
Database changed


2、创建数据表offices

mysql> CREATE TABLE offices
    -> (
    -> officeCode INT(10) NOT NULL UNIQUE,
    -> city VARCHAR(50) NOT NULL,
    -> address VARCHAR(50),
    -> country VARCHAR(50) NOT NULL,
    -> postalCode VARCHAR(15),
    -> PRIMARY KEY(officeCode)
    -> );
Query OK, 0 rows affected, 1 warning (0.01 sec)

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


3、创建数据表employees

mysql> CREATE TABLE employees
    -> (
    -> employeeNumber INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    -> lastName VARCHAR(50) NOT NULL,
    -> firstName VARCHAR(50) NOT NULL,
    -> mobile VARCHAR(25) UNIQUE,
    -> officeCode INT(10) NOT NULL,
    -> jobTile VARCHAR(50) NOT NULL,
    -> birth DATETIME NOT NULL,
    -> note VARCHAR(255),
    -> sex VARCHAR(5),
    -> CONSTRAINT office_fk FOREIGN KEY(officeCode) REFERENCES offices(officeCode)
    -> );
Query OK, 0 rows affected, 2 warnings (0.02 sec)

可以看到,数据表employees已经创建成功。


4、将数据表employees的mobile字段修改到officeCode字段后面

mysql> ALTER TABLE employees MODIFY mobile VARCHAR(25) AFTER officeCode;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC employees;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int          | NO   | PRI | NULL    | auto_increment |
| lastName       | varchar(50)  | NO   |     | NULL    |                |
| firstName      | varchar(50)  | NO   |     | NULL    |                |
| officeCode     | int          | NO   | MUL | NULL    |                |
| mobile         | varchar(25)  | YES  | UNI | NULL    |                |
| jobTile        | varchar(50)  | NO   |     | NULL    |                |
| birth          | datetime     | NO   |     | NULL    |                |
| note           | varchar(255) | YES  |     | NULL    |                |
| sex            | varchar(5)   | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)


可以看到,数据表employees的mobile字段已经修改到了officeCode字段后面。


5、将数据表employees的birth字段修改名称为employee_birth

mysql> ALTER TABLE employees CHANGE birth emoloyee_birth DATETIME;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC employees;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| employeeNumber | int          | NO   | PRI | NULL    | auto_increment |
| lastName       | varchar(50)  | NO   |     | NULL    |                |
| firstName      | varchar(50)  | NO   |     | NULL    |                |
| officeCode     | int          | NO   | MUL | NULL    |                |
| mobile         | varchar(25)  | YES  | UNI | NULL    |                |
| jobTile        | varchar(50)  | NO   |     | NULL    |                |
| emoloyee_birth | datetime     | YES  |     | NULL    |                |
| note           | varchar(255) | YES  |     | NULL    |                |
| sex            | varchar(5)   | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)


可以看到,数据表employees的birth字段已经修改名称为了employee_birth 。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
16天前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
17天前
|
存储 弹性计算 关系型数据库
如何通过控制台创建RDS MySQL实例
本文介绍了通过控制台创建RDS MySQL实例的详细步骤,包括准备工作、选择计费方式、地域、实例规格、存储空间等关键配置,并指导用户完成下单与实例查看。
|
30天前
|
存储 关系型数据库 MySQL
【赵渝强老师】MySQL数据库的多实例环境
MySQL多实例是指在一台服务器上运行多个MySQL服务,通过不同端口提供独立的数据服务。各实例共享安装程序,但使用各自的配置文件和数据文件,实现资源高效利用。本文详细介绍了如何通过“mysqld_multi”工具配置和启动多个MySQL实例,并演示了目录创建、初始化、配置文件修改及实例启动等操作步骤。
|
4月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
299 41
|
3月前
|
关系型数据库 MySQL
MySQL数据表添加字段(三种方式)
本文解析了数据表的基本概念及字段添加方法。在数据表中,字段是纵向列结构,记录为横向行数据。MySQL通过`ALTER TABLE`指令支持三种字段添加方式:1) 末尾追加字段,直接使用`ADD`语句;2) 首列插入字段,通过`FIRST`关键字实现;3) 指定位置插入字段,利用`AFTER`指定目标字段。文内结合`student`表实例详细演示了每种方法的操作步骤与结构验证,便于理解与实践。
|
5月前
|
SQL Oracle 关系型数据库
在MySQL Shell里 重启MySQL 8.4实例
在MySQL Shell里 重启MySQL 8.4实例
141 2
|
7月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
233 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
9月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
587 26
|
10月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
199 8
|
10月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
140 0

推荐镜像

更多