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 ...
随机推荐
- WPF 屏幕点击的设备类型
1.鼠标 可以通过Mouse相关的事件参数MouseButtonEventArgs中的数据,e.StylusDecice==null表示没有触摸设备,所以设备为鼠标 2.触笔 or 触摸 根据Styl ...
- 机器学习04-(决策树、集合算法:AdaBoost模型、BBDT、随机森林、分类模型:逻辑回归)
机器学习04 机器学习-04 集合算法 AdaBoost模型(正向激励) 特征重要性 GBDT 自助聚合 随机森林 分类模型 什么问题属于分类问题? 逻辑回归 代码总结 波士顿房屋价格数据分析与房价预 ...
- Python OOP之继承封装多态
面向对象的三大特征 继承 封装 多态 继承 子类可以使用父类定义的内容或者行为 继承的实现 父类,基类,超类,被继承的类,Base Class,Super Class 子类:有继承行为的类 所有类都必 ...
- 【Vue2】NavigationDuplicated: Avoided redundant navigation to current location:xxxxx
翻译过来就是,导航重复:避免了到当前位置的冗余导航. 简单来说就是重复跳转了相同路径 原因 触发这种情况是因为vue-router中引入了primise,当传递了多次重复的参数就会抛出异常,而这种问题 ...
- Spring源码:Bean生命周期(五)
前言 在上一篇文章中,我们深入探讨了 Spring 框架中 Bean 的实例化过程,该过程包括从 Bean 定义中加载当前类.寻找所有实现了 InstantiationAwareBeanPostPro ...
- 【.NET】C#/.NET新建项目sln,增加src和test文件夹问题和解决方案
问题介绍 经常逛github找优秀的.NET项目看,看到github上的项目的层级有src test,sln放在外层.如下图: 发现自己再Visaul Studio新建的项目即使添加了src和te ...
- Vue 路由router
简单案例: App.vue是核心组件,其中的<router-link>相当于a标签,to相当于href,export是暴露函数,这样某组件才能被其他组件识别到 代码: <templa ...
- kali系统安装redis步骤
环境: 攻击机:Kali 5.16.0-kali7-amd64 192.168.13.78 靶机: Kali 5.16.0-kali7-amd64 192.168.13.94 安装 ...
- ODOO13之六:Odoo 13开发之模型 – 结构化应用数据
在本系列文章第三篇Odoo 13 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中 ...
- 【python基础】复杂数据类型-列表类型(元组)
1.初识元组 列表非常适合用于存储在程序运行期间可能变化的数据集.列表是可以修改的. 然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求 python将不能修改的值称为不可变的,而不可变的 ...