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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 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;
复制代码


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


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


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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
关系型数据库 MySQL
MySQL数据表添加字段(三种方式)
本文解析了数据表的基本概念及字段添加方法。在数据表中,字段是纵向列结构,记录为横向行数据。MySQL通过`ALTER TABLE`指令支持三种字段添加方式:1) 末尾追加字段,直接使用`ADD`语句;2) 首列插入字段,通过`FIRST`关键字实现;3) 指定位置插入字段,利用`AFTER`指定目标字段。文内结合`student`表实例详细演示了每种方法的操作步骤与结构验证,便于理解与实践。
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
277 4
|
存储 SQL 关系型数据库
MySQL 给数据表增加一列,一定会锁表吗?
【8月更文挑战第8天】在数据库管理和开发中,给数据表增加一列是一个常见的操作。然而,当面试官提出“MySQL 给数据表增加一列,一定会锁表吗?”这一问题时,答案并非绝对。这主要取决于MySQL的版本、存储引擎以及具体的操作方式。
723 0
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
230 0
|
监控 关系型数据库 MySQL
MySQL数据表索引命名规范
MySQL数据表索引命名规范
920 1
|
存储 SQL 关系型数据库
MySQL 数据表操作
MySQL 数据表操作
128 1
|
存储 监控 关系型数据库
MySQL造数据占用临时表空间
MySQL造数据占用临时表空间
209 0
|
存储 关系型数据库 文件存储
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
133 2
|
SQL Java 数据库
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
|
分布式计算 DataWorks 关系型数据库
MaxCompute操作报错合集之配置mysql数据源querysql模式,同步到MC时遇到报错,该怎么处理
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
167 0

热门文章

最新文章

推荐镜像

更多