MySQL数据表的高级操作(上)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 一、克隆表,将数据表的数据记录生成到新的表中方法1:先克隆表结构,再导入表数据。

一、克隆表,将数据表的数据记录生成到新的表中


方法1:先克隆表结构,再导入表数据。

格式:

create table 新表名 like 旧表名;             #通过LIKE方法,复制旧表的结构生成新表
 insert into 新表名 select * from 旧表名;     #再将旧表数据导入新表
复制代码


示例:

create table tt02 like tt01;    #通过tt01表克隆一个tt02表,这样只克隆表结构,没有表数据
 insert into tt02 select * from tt01;    #将tt01的表数据导入tt02中
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


方法2:创建新表的同时,导入旧表数据。

格式:

create table 新表名 (select * from 旧表名);
复制代码


示例:

create table tt03 (select * from tt01);   #创建tt03表的同时,导入tt01表的数据
复制代码


网络异常,图片无法展示
|


二、查看表结构的三种方法

方法一:
 desc 表名;      #以表格形式显示表结构
 方法二:
 show create table 表名;     #以创建表的命令形式显示表结构
 方法三:
 desc 表名\G       #如果字段较多,也可以使用"desc 表名\G"的方式竖向显示表结构
复制代码


网络异常,图片无法展示
|



网络异常,图片无法展示
|
网络异常,图片无法展示
|

三、清空表,删除表内的所有数据

方法一:delete

delete from 表名;
 #DELETE清空表后,返回的结果内有删除的记录条目;
 DELETE 工作时是一行一行的删除记录数据的,删除时速度较慢;
 如果表中有自增长字段,使用"DELETE FROM"删除所有记录后,新添加的记录会从原来最大的记录ID后面继续自增写入记录。
 示例:
 #delete删除所有数据后,新添加的记录id字段值会在原有的13基础上递增1,即增长为14。
 insert into tt02(cardid,hobby) values(1101,'running');
复制代码



网络异常,图片无法展示
|
网络异常,图片无法展示
|

方法二:truncate

truncate table 表名;    #相当于格式化,速度很快
 #TRUNCATE清空表后,没有返回被删除的条目。
 TRUNCATE 工作时是将表结构按原样重新建立,因此在速度方面 TRUNCATE 会比DELETE清空表快。
 使用TRUNCATE TABLE清空表内数据后,ID会从1开始重新记录。
 示例:
 #truncate删除所有数据后,新添加的记录ID会从1开始重新记录。
 insert into tt02(cardid,hobby) values(1101,'running');
复制代码


网络异常,图片无法展示
|


四、创建临时表 TEMPORARY

  • 临时表创建成功之后,使用"SHOW TABLES"命令是看不到创建的临时表的,临时表会在连接退出后被销毁。
  • 如果在退出连接之前,也可以执行增删改查等操作,比如使用"DROP TABLE"语句手动直接删除临时表。
  • 临时表一般用于测试使用,只有当前连接的用户才能看到,相同用户换个终端登录也看不到。退出当前连接(退出数据库)之后临时表会被销毁。

格式:

CREATE TEMPORARY TABLE 表名(字段1 数据类型,字段2 数据类型[, ...] [, PRIMARY KEY (主键名)]);
复制代码


示例:

create temporary table test01 (        #创建临时表test01
 id int(4) zerofill primary key,
 name varchar(10) not null,
 cardid int(18) not null unique key,
 hobby varchar(50));
 show tables;      #使用"show tables"查看不到临时表
 insert into test01 values (1,'张三',123456,'running');    #向临时表中插入数据
 select * from test01;      #查看临时表的数据,可以查看到
 quit                       #退出mysql
 #退出数据库后重新进入,查看临时表数据,提示表不存在。临时表会在连接退出后被销毁。
 select * from test01;
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
71 4
|
4月前
|
存储 SQL 关系型数据库
MySQL 给数据表增加一列,一定会锁表吗?
【8月更文挑战第8天】在数据库管理和开发中,给数据表增加一列是一个常见的操作。然而,当面试官提出“MySQL 给数据表增加一列,一定会锁表吗?”这一问题时,答案并非绝对。这主要取决于MySQL的版本、存储引擎以及具体的操作方式。
409 0
|
5月前
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
70 0
|
2月前
|
监控 关系型数据库 MySQL
MySQL数据表索引命名规范
MySQL数据表索引命名规范
94 1
|
2月前
|
存储 监控 关系型数据库
MySQL造数据占用临时表空间
MySQL造数据占用临时表空间
41 0
|
3月前
|
存储 SQL 关系型数据库
MySQL 数据表操作
MySQL 数据表操作
41 1
|
5月前
|
存储 关系型数据库 文件存储
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
51 2
|
5月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之运行mysql to doris pipeline时报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
关系型数据库 MySQL 调度
MySQL高级功能与优化策略深度探索
MySQL高级功能与优化策略深度探索

热门文章

最新文章