创建临时表只需在table前面加temporary

CREATE TEMPORARY TABLE mytable#创建临时表,在断开数据库连接时销毁
(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
index usernameIndex (username)#创建表的时候创建索引
);
insert into mytable(ID,username) VALUES(1,'呵呵'); select * from mytable; drop table mytable;#删除临时表
SELECT * from mytable;

创建临时表也可以通过查询其他表来创建如下:

CREATE TEMPORARY TABLE mytable as
(
SELECT * from users
LIMIT 0,3
); select * from mytable;
drop table mytable;

复制表:完整复制表结构和数据

show create table users;#查询信息然后复制粘贴在下方
CREATE TABLE `cloneusers` (#修改表名称
`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_password` varchar(100) NOT NULL,
`class_id` int(11) DEFAULT NULL,
`uname` varchar(100),
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; insert into cloneusers(user_id,user_password,class_id,uname)
SELECT user_id,user_password,class_id,uname from users;#插入查询到的表数据

另一种方法

create table clonetable like users;#可以快速完整的复制表结构
INSERT into clonetable SELECT * from users;#快速复制表数据

元数据的获取:

SELECT VERSION();#获取服务器版本信息
SELECT DATABASE();#获取数据库名称
SELECT USER();#获取用户名
SHOW STATUS;#获取服务器状态
SHOW VARIABLES;#获取服务器配置变量

获取最后插入的ID:

SELECT LAST_INSERT_ID();#获取最后插入的id
SELECT @@identity;#查询最后插入的值的id

重置序列:

alter table users drop user_id;#删除表的主键列
alter table users
add id int UNSIGNED not null auto_increment FIRST,#添加一列无符号整型非空自动增长的id列
add PRIMARY key (id);#设置主键

设置自动增长

create table newtable like users;
INSERT into newtable SELECT * from users;
alter table newtable auto_increment=100;#设置自动增长的起始值为100,可以在创建表的时候在末尾加上auto_increment=100来设置

插入相同的值

INSERT IGNORE into newtable(id,user_password) VALUES(101,'刘德华');#插入时使用IGNORE会忽略表中已经存在的数据
REPLACE into newtable(id,user_password,uname) VALUES(101,'刘德华','');#插入时使用REPLACE会删除表中已经存在的数据然后替换上去

删除重复数据:

select count(*) as 总和,user_password as 用户名 FROM newtable
GROUP BY user_password
HAVING 总和>1;#查询用户名重复的项 select DISTINCT user_password from newtable;#过滤重复的项 SELECT user_password from newtable GROUP BY user_password;#读取不重复的数据 CREATE table clonetable SELECT id,user_password,uname,class_id from newtable GROUP BY (user_password) ORDER BY id ;#复制一个新表,表结构请看之前的设计
DROP table newtable;#删除旧表
alter table clonewtable RENAME TO newtable;#改名

2021-7-30 MySql进阶2的更多相关文章

  1. 【目录】mysql 进阶篇系列

    随笔分类 - mysql 进阶篇系列 mysql 开发进阶篇系列 55 权限与安全(安全事项 ) 摘要: 一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysq ...

  2. MySQL进阶篇(03):合理的使用索引结构和查询

    本文源码:GitHub·点这里 || GitEE·点这里 一.高性能索引 1.查询性能问题 在MySQL使用的过程中,所谓的性能问题,在大部分的场景下都是指查询的性能,导致查询缓慢的根本原因是数据量的 ...

  3. MySQL进阶:约束,多表设计,多表查询,视图,数据库备份与还原

    MySQL进阶 知识点梳理 一.约束 1. 外键约束 为什么要有外键约束 例如:一个user表,一个orderlist 如果现在想要直接删除id为1的张三,但是orderlist里还有用户id为1的订 ...

  4. mysql进阶(二十九)常用函数

    mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...

  5. mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...

  6. mysql进阶(二十七)数据库索引原理

    mysql进阶(二十七)数据库索引原理 前言   本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb.   第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础.    ...

  7. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  8. mysql进阶(十六)常见问题汇总

    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...

  9. 【转】MySQL— 进阶

    [转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...

  10. 30.Mysql常见问题和应用技巧

    30.Mysql常见问题和应用技巧30.1 忘记Mysql的root密码30.2 如何处理MyISAM存储引擎的表损坏 30.2.1 方法一:使用myisamchk工具 30.2.2 方法二:使用SQ ...

随机推荐

  1. java调用https接口导入证书认证

    1.获取证书 浏览器访问需要调用的接口路径 如图导出证书. 2.进入java目录 jre/lib/security 导入证书 keytool -import -alias name -keystore ...

  2. FLV文件分析

    很久没看,做下关于FLV文件格式知识点回顾! 一.简单介绍        FLV(Flash Video)是Adobe公司推出的一种媒体封装格式.一个FLV文件,每个Tag类型都属于一个流.也就是说一 ...

  3. Python-HwTestReport的简单使用

    一.工具包下载 https://github.com/hongweifuture/HwTestReport(出自此大神) 二.使用示例(直接上代码) 1.将 HwTestReport.py 导入项目 ...

  4. GaussDB(DWS)网络流控与管控效果

    摘要:本文主要介绍GaussDB(DWS)网络流控能力,并对其管控效果进行验证. 本文分享自华为云社区<GaussDB(DWS)网络流控与管控效果>,作者:门前一棵葡萄树. 上一篇博文Ga ...

  5. 当我再次用Kotlin完成五年前已经通过Kotlin完成的项目后

      > 近日来对Kotlin的使用频率越来越高, 也对自己近年来写过的Kotlin代码尝试进行一个简单的整理. 翻到了自己五年前第一次使用Kotlin来完成的一个项目([贝塞尔曲线](https ...

  6. Grafana 系列-统一展示-2-Prometheus 数据源

    系列文章 Grafana 系列文章 Grafana Prometheus 数据源 Grafana 提供了对 Prometheus 的内置支持.本文会介绍 Grafana Prometheus(也包括 ...

  7. KaiOS 2.5.X 使用 WebIDE 安装以及调试第三方应用程序

    本教程将展示使用 Waterfox Classic 安装为 KaiOS 2.5.x 设计的应用,同时我们也非常推荐使用它来进行安装和调试应用. 本教程本身不会对手机产生任何损害,但请注意,你必须信任你 ...

  8. selenium 多浏览器处理

    开头 当我们做多浏览器自动化测试的时候,需要很多不同的浏览器,所以不同的参数对应不同的浏览器操作 目录结构 新建一个 base.py 文件, 通过 os 捕获到从命令行传进来的 import pyte ...

  9. SDK日志上传性能优化

    问题描述 在SDK初始化时,会在init方法中开启一个倒计时,在5s倒计时结束后使用子线程将本地保存的历史日志信息上传到后台. 因业务需要,在日志在发送上传前,对日志数据上传时需要对日志数据做编码和特 ...

  10. 文心一言 VS chatgpt (9)-- 算法导论2.3 7题 3.1 1题

    七.描述一个运行时间为O(nlgn)的算法,给定n个整数的集合S和另一个整数,该算法能确定 S中是否存在两个其和刚好为工的元素. 文心一言: 这里是一个运行时间为O(nlgn)的算法,可以用来确定集合 ...