【MySQL进阶】数据库与表的创建和管理(二)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 【MySQL进阶】数据库与表的创建和管理(二)

4. 修改表


修改表指的是修改数据库中已经存在的数据表的结构。使用 ALTER TABLE 语句可以实现:

  • 向已有的表中添加列
  • 修改现有表中的列
  • 删除现有表中的列
  • 重命名现有表中的列


4.1 追加一个列


语法格式如下:

SHOW CREATE TABLE 表名\G 
ALTER TABLE 表名 
ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;


举例:

ALTER TABLE dept80 
ADD job_id varchar(15);


4.2 修改一个列


可以修改列的数据类型,长度、默认值和位置。

语法格式如下:

ALTER TABLE 表名 
MODIFY 【COLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名 2】;


举例:

ALTER TABLE dept80 
MODIFY last_name VARCHAR(30);
ALTER TABLE dept80 
MODIFY salary double(9,2) default 1000;


  • 对默认值的修改只影响今后对表的修改
  • 此外,还可以通过此种方式修改列的约束。


4.3 重命名一个列


使用 CHANGE old_column new_column dataType子句重命名列。

语法格式如下:

ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;


举例:

ALTER TABLE dept80 
CHANGE department_name dept_name varchar(15);


4.4 删除一个列


删除表中某个字段的语法格式如下:

ALTER TABLE 表名 DROP 【COLUMN】字段名


举例:

ALTER TABLE dept80


方式一:使用RENAME

RENAME TABLE emp 
TO myemp;


方式二:

ALTER table dept 
RENAME [TO] detail_dept; 
-- [TO]可以省略


  • 必须是对象的拥有者


6. 删除表


在删除数据表时:

  • 在MySQL中,当一张数据表没有与其他任何数据表形成关联关系时,可以将当前数据表直接删除。
  • 数据和结构都被删除
  • 所有正在运行的相关事务被提交
  • 所有相关索引被删除


语法格式:

DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];


IF EXISTS的含义为:如果当前数据库中存在相应的数据表,则删除数据表;如果当前数据库中不存在相应的数据表,则忽略删除语句,不再执行删除数据表的操作。

举例:

DROP TABLE dept80;


  • DROP TABLE 语句不能回滚


7. 清空表


TRUNCATE TABLE语句:

  • 删除表中所有的数据
  • 释放表的存储空间


举例:

TRUNCATE TABLE detail_dept;


TRUNCATE语句不能回滚,而使用 DELETE 语句删除数据,可以回滚。

对比:

DELETE FROM emp2; 
#TRUNCATE TABLE emp2; 
SELECT * FROM emp2; 
ROLLBACK; 
SELECT * FROM emp2

;

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
21小时前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
|
21小时前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
|
1天前
|
SQL 关系型数据库 MySQL
MySQL数据库的约束+进阶版新增与查询-2
MySQL数据库的约束+进阶版新增与查询
11 1
|
2天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
11 0
|
2天前
|
存储 Oracle 关系型数据库
达梦数据库入门语法:从基础到进阶的指南
达梦数据库入门语法:从基础到进阶的指南
|
9天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
9天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
9天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
10天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
11天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作