2021-7-30 MySql进阶2
创建临时表只需在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的更多相关文章
- 【目录】mysql 进阶篇系列
随笔分类 - mysql 进阶篇系列 mysql 开发进阶篇系列 55 权限与安全(安全事项 ) 摘要: 一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysq ...
- MySQL进阶篇(03):合理的使用索引结构和查询
本文源码:GitHub·点这里 || GitEE·点这里 一.高性能索引 1.查询性能问题 在MySQL使用的过程中,所谓的性能问题,在大部分的场景下都是指查询的性能,导致查询缓慢的根本原因是数据量的 ...
- MySQL进阶:约束,多表设计,多表查询,视图,数据库备份与还原
MySQL进阶 知识点梳理 一.约束 1. 外键约束 为什么要有外键约束 例如:一个user表,一个orderlist 如果现在想要直接删除id为1的张三,但是orderlist里还有用户id为1的订 ...
- mysql进阶(二十九)常用函数
mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...
- mysql进阶(二十八)MySQL GRANT REVOKE用法
mysql进阶(二十八)MySQL GRANT REVOKE用法 MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...
- mysql进阶(二十七)数据库索引原理
mysql进阶(二十七)数据库索引原理 前言 本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb. 第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础. ...
- mysql进阶(二十六)MySQL 索引类型(初学者必看)
mysql进阶(二十六)MySQL 索引类型(初学者必看) 索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型. 在数 ...
- mysql进阶(十六)常见问题汇总
mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...
- 【转】MySQL— 进阶
[转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...
- 30.Mysql常见问题和应用技巧
30.Mysql常见问题和应用技巧30.1 忘记Mysql的root密码30.2 如何处理MyISAM存储引擎的表损坏 30.2.1 方法一:使用myisamchk工具 30.2.2 方法二:使用SQ ...
随机推荐
- 实现异步操作CompletableFuture
多个线程异步操作后统一返回执行结果AtomicReference<RespVo> event = new AtomicReference<>(); AtomicReferenc ...
- C# Nuget版本号排序
Nuget包版本号和我们软件应用版本号一样,不过因为稳定性等的考虑,组件版本有更高的要求.预发布版本使用频率更高 版本号介绍,详见我朋友胡承老司机的博客:Nuget包的版本规范 (qq.com) 我这 ...
- 数据分析04-pandas(apply函数、排序、数据合、分组聚合、透视表、交叉表及项目分析)
数据分析-04 排序 按标签(行)排序 按标签(列)排序 按某列值排序 数据合并 concat merge & join 分组聚合 分组 聚合 透视表与交叉表 透视表 交叉表 项目:分析影响学 ...
- Python-获取Local Storage和Session Storage
一.简介 LocalStorage 是只读的.数据存储也是跨浏览器会话.LocalStorage 类似于SessionStorage. 区别在于,数据存储在 LocalStorage 是无期限的,而当 ...
- Prism Sample 21-PassingParameters
这个例子是说明导航中传递参数,类似Asp.net中实现. 例子的模板,是例16中使用regionContext实现过的.在例16中, <Grid x:Name="LayoutRoot& ...
- SpringBoot自定义注解+AOP+redis实现防接口幂等性重复提交,从概念到实战
本文为千锋教育技术团独家创作,更多技术类知识干货,点个关注持续追更~ 接口幂等性是Web开发中非常重要的一个概念,它可以保证多次调用同一个接口不会对结果产生影响.如果你想了解更多关于接口幂等性的知识, ...
- 2022-11-30:小红拿到了一个仅由r、e、d组成的字符串 她定义一个字符e为“好e“ : 当且仅当这个e字符和r、d相邻 例如“reeder“只有一个“好e“,前两个e都不是“好e“,只有第三个
2022-11-30:小红拿到了一个仅由r.e.d组成的字符串 她定义一个字符e为"好e" : 当且仅当这个e字符和r.d相邻 例如"reeder"只有一个&q ...
- SQL Server:User, group, or role 'iemis' already exists in the current database.
--最新的解决方法 --先创建用户帐户,不进行授权,然后通过下面的SQL语句将该用户帐户关联至对应的数据库用户.优点是避免了重新授权的操作. USE tempdbEXEC sp_change_user ...
- structed streaming 触发器trigger
structed streaming的执行批次,较spark streaming有所改变.更加灵活.总结下来,可大白话地分为三类: 1尽可能快的执行,不定时间 2按固定间隔时间执行 3仅执行一次 详情 ...
- 人手一个 Midjourney,StableStudio 重磅开源!
人手一个 Midjourney,StableStudio 重磅开源! Stability AI 公司在上个月 19 号推出了 Alpha 版本 StableLM 大语言模型,包含了 30 亿和 70 ...