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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据表的基本操作和基于 MySQL数据表的基本操作的综合实例项目(下)

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


mysql> ALTER TABLE employees MODIFY sex CHAR(1) NOT NULL;
Query OK, 0 rows affected (0.03 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            | char(1)      | NO   |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

可以看到,数据表employees的sex字段的数据类型已经修改为了CHAR(1)。


7、删除字段note


mysql> ALTER TABLE employees DROP note;
Query OK, 0 rows affected (0.01 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    |                |
| sex            | char(1)     | NO   |     | NULL    |                |
+----------------+-------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)


可以看到,数据表employees的note字段的已经删除了。


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

mysql> ALTER TABLE employees ADD favorite_activity VARCHAR(100);
Query OK, 0 rows affected (0.01 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    |                |
| sex               | char(1)      | NO   |     | NULL    |                |
| favorite_activity | varchar(100) | YES  |     | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

可以看到,数据表employees已经增加字段名称为favorite_activity,数据类型为VARCHAR(100)。


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


1、删除外键约束

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

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

mysql> ALTER TABLE employees ENGINE=MyISAM;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> SHOW CREATE TABLE employees\G;
*************************** 1. row ***************************
       Table: employees
Create Table: CREATE TABLE `employees` (
  `employeeNumber` int NOT NULL AUTO_INCREMENT,
  `lastName` varchar(50) NOT NULL,
  `firstName` varchar(50) NOT NULL,
  `officeCode` int NOT NULL,
  `mobile` varchar(25) DEFAULT NULL,
  `jobTile` varchar(50) NOT NULL,
  `emoloyee_birth` datetime DEFAULT NULL,
  `sex` char(1) NOT NULL,
  `favorite_activity` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`employeeNumber`),
  UNIQUE KEY `mobile` (`mobile`),
  KEY `office_fk` (`officeCode`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

可以看到存储引擎已经变为了


ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci


可以看到,已经将数据表employees的存储引擎修改为了MyISAM。


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

mysql> ALTER TABLE employees RENAME employees_info;
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW TABLES;
+-------------------+
| Tables_in_company |
+-------------------+
| employees_info    |
| offices           |
+-------------------+
2 rows in set (0.00 sec)


可以看到,已经将数据表employees的名称修改为employees_info。


11、删除数据表employees_info

mysql> DROP TABLE employees_info;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW TABLES;
+-------------------+
| Tables_in_company |
+-------------------+
| offices           |
+-------------------+
1 row in set (0.00 sec)

可以看到,已经将数据表employees删除了。


二、用Navicat实现案例过程


1、新建查询


进入Navicat软件好,新建一个创建数据库的查询。

在查询中编写如下的SQL语句,如下所示。

-- 1、创建数据库company
CREATE DATABASE company;
-- 2、创建数据表offices
USE company;
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)
);
-- 3、创建数据表employees
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)
);
-- 4、将数据表employees的mobile字段修改到officeCode字段后面
ALTER TABLE employees MODIFY mobile VARCHAR(25) AFTER officeCode;
DESC employees;
-- 5、将数据表employees的birth字段修改名称为employee_birth
ALTER TABLE employees CHANGE birth employee_birth DATETIME;
DESC employees;
-- 6、修改sex字段的数据类型为CHAR(1),非空约束
ALTER TABLE employees MODIFY sex CHAR(1) NOT NULL;
DESC employees;
-- 7、删除字段note
ALTER TABLE employees DROP note;
DESC employees;
-- 8、增加字段名称为favorite_activity,数据类型为VARCHAR(100)
ALTER TABLE employees ADD favorite_activity VARCHAR(100);
DESC employees;
-- 9、修改数据表employees存储引擎为MyISAM
ALTER TABLE employees DROP FOREIGN KEY office_fk;
ALTER TABLE employees ENGINE=MyISAM;
SHOW CREATE TABLE employees;
-- 10、将数据表employees名称修改为employees_info
ALTER TABLE employees RENAME employees_info;
SHOW TABLES;
-- 11、删除数据表employees_info;
DROP TABLE employees_info;
SHOW TABLES;


2、运行过程


依次选择要运行的SQL语句。运行过程如下所示:

1、创建数据库company


159d1573924e4e929698a953bb563772.png


2、创建数据表offices


9c03663cc916447697b30bd4e35f4562.png


41c6f776ca7240d294b4bcc89b6e1f0e.png

3、创建数据表employees


0841b0e489b94e6f8437dc57928919b8.png


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


2f8edacd0d55450ba9cb2671b14fccb0.png


cd9fb52ac2e049e382070b8d3fedf7c6.png


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

29786f504a9146ccaf8a57e690596cf6.png

2f12efd24a0d4c93878b495b4b062b34.png


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

8b0634dac6c94a8f879614ae16566217.png


fb295992c5214d5d98de4a72e6cb34f0.png


7、删除字段note


dda120773d2d4f9da20c2f6ed0e048cf.png

185c385719d94b398c3ce43df2e04736.png



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


5cddf76d96e14ffcb26d4d4d415ec1f4.png660acc0f794c40fca142209feef0ef91.png

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



d64695d0a9244455b4a3178da57d666b.png


ac08c7e01c69475ebb43c08cb5ce57fd.png


09846749a20f49859b6d5574e6942e04.png

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



13d7ac7480fd4befab0f13c2a6d054d4.png



551d0243022347858b58cf858a8c2ba2.png


11、删除数据表offices


6f5b074d80d645e5904611770a8ade86.png


ec13faaf521e40feb3b38134989e4cae.png


总结


本文主要介绍了MySQL中数据表的各种操作:

创建数据表、添加各类约束、查看数据表表结构,修改数据表和删除数据 表。使读者可以很快掌握MySQL数据库中关于创建数据表、添加各类约束、查看数据表表结构,修改数据表和删除数据表的基本使用方法。另外还介绍了分别使用cmd环境和Navicat软件环境中创建数据表表、添加各类约束、查看数据表表结构,修改数据表和删除数据表的使用方法。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
89 1
|
1月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
46 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
9天前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
30 8
|
25天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
7天前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
18天前
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
22 0
|
30天前
|
存储 关系型数据库 MySQL
mysql 8.0 的 建表 和八种 建表引擎实例
mysql 8.0 的 建表 和八种 建表引擎实例
20 0
|
1月前
|
存储 关系型数据库 MySQL
Key_Value 形式 存储_5级省市城乡划分代码 (mysql 8.0 实例)
本文介绍了如何使用MySQL8.0数据库中的Key_Value形式存储全国统计用区划代码和城乡划分代码(5级),包括导入数据、通过数学函数提取省市区信息,以及查询5级行政区划的详细数据。
30 0
|
1月前
|
算法 关系型数据库 MySQL
复购率 mysql 实例(sample database classicmodels _No.1 )
复购率 mysql 实例(sample database classicmodels _No.1 )
27 0
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4