1.mysql查出数据表中连续出现三次或三次以上的数据

建一张表如下:表名为 number

1.1 要求找出num列连续出现三次或三次以上的数据:

select * from number where id in (
select distinct n1.id from number n1,number n2,number n3
where (n1.num = n2.num and n2.num = n3.num and (
(n1.id + 1= n2.id and n2.id +1 = n3.id)or
(n3.id + 1= n2.id and n2.id +1 = n1.id)or
(n3.id + 1= n1.id and n1.id +1 = n2.id)
)
)
order by n1.id )

运行结果:

1.2找出上表(运行结果表)中重复数据中id最小的数据。

思想:将上表中的数据分组取最小。

select min(id) as minid,id,num
from ((select * from number where id in (
select distinct n1.id from number n1,number n2,number n3
where (n1.num = n2.num and n2.num = n3.num and (
(n1.id + 1= n2.id and n2.id +1 = n3.id)or
(n3.id + 1= n2.id and n2.id +1 = n1.id)or
(n3.id + 1= n1.id and n1.id +1 = n2.id)
)
)
order by n1.id ))as t) group by num ;

运行结果:

2.删除表中的重复数据,保留id最小的数据

原表中的数据如下:

/*
方法一:
1.创建临时表
2.将需要的数据保存到临时表
3.清空原表,将临时表中的数据保存到原表中
4.删除临时表
*/
create temporary table temp select min(id),email from test group by email; truncate table test; insert into test select * from temp; select * from test; drop table temp; /*
方法二:
1.按照邮件分组,把每一组中的最小的id取出放在临时表中 2.删除原表中除临时表中id以外的其他id 对应的数据
*/ create temporary table temp select min(id) as minid from test group by email; delete from test where id not in (select minid from temp); drop table temp; /*
方法三:
在原表上操作
*/
delete from test where id not in (
select minid from (
select min(id) minid from test group by email
)b
);
select * from test;

运行结果:

3.mysql中的各种连接

创建两张表,代表两个店铺,每个店铺有不同的,每个柜台卖不同的商品。

/*
两个商店,每个店有不同的柜台,每个柜台上卖有不同的商品
*/
create table tableA(
id int(10) not null primary key auto_increment,
monorail varchar(20),
variety varchar(50)
);
insert into tableA
values (1,'a1','苹果'),(2,'a1','梨'),(3,'a3','香蕉'),(4,'a4','苹果'),(5,'a5','西瓜'),
(6,'a6','苹果'),(7,'a7','葡萄'),(8,'a8','桃子');
create table tableB(
id int(10) not null primary key auto_increment,
monorail varchar(20),
variety varchar(50)
);
insert into tableB
values (1,'b1','虾'),(2,'b2','猪肉'),(3,'b3','苹果'),(4,'b4','西瓜'),(5,'b5','梨'),
(6,'b6','香蕉');

两个表数据如下:

3.1.内连接

/*
内连接,查处两个商店共有的商品
*/
select * from tablea A INNER JOIN tableb B
on A.variety = B.variety ;

运行结果

3.2.左连接

/*
左连接,以A表为左表
*/
select * from tablea A LEFT JOIN tableb B
on A.variety = B.variety ;

运行结果

3.3.右连接

/*
右连接,以A表为左表
*/
select * from tablea A RIGHT JOIN tableb B
on A.variety = B.variety ;

运行结果

3.4.左外连接

/*
左外连接,以A表为左表
*/
select * from tablea A LEFT JOIN tableb B
on A.variety = B.variety Where B.variety is null;

运行结果

3.5.右外连接

/*
右外连接,以A表为左表
*/
select * from tablea A RIGHT JOIN tableb B
on A.variety = B.variety Where A.variety is null;

运行结果

3.6.全连接 

mysql不支持full  (outer) join 故使用union代替

/*
全连接
*/
select * from tablea A LEFT JOIN tableb B
on A.variety = B.variety ;
union
select * from tablea A RIGHT JOIN tableb B
on A.variety = B.variety ;

运行结果

3.7.全外连接

select * from tablea A LEFT  JOIN tableb B
on A.variety = B.variety Where B.variety is null
union
select * from tablea A RIGHT JOIN tableb B
on A.variety = B.variety Where A.variety is null

运行结果

mysql中各种复杂的增删改查的更多相关文章

  1. 用CI框架向数据库中实现简单的增删改查

    以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...

  2. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  3. MYSQL - database 以及 table 的增删改查

    MYSQL - database 以及 table 的增删改查 MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这 ...

  4. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

  5. 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计

    在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...

  6. 在python中连接mysql数据库,并进行增删改查

    数据库在开发过程中是最常见的,基本上在服务端的编程过程中都会使用到,mysql是较常见的一种数据库,这里介绍python如果连接到数据库中,并对数据库进行增删改查. 安装mysql的python扩展 ...

  7. MYSQL的常用命令和增删改查语句和数据类型

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  8. MYSQL的常用命令和增删改查语句和数据类型【转】

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  9. nodejs+express+mysql实现restful风格的增删改查示例

    首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...

随机推荐

  1. 八数码问题 双向BFS/Hsh链表存储

    转自洛谷 作者EndSaH #include<iostream> #include<string> #include<cmath> #include<cstr ...

  2. JuJu团队11月27号工作汇报

    JuJu团队11月27号工作汇报 JuJu   Scrum 团队成员 今日工作 剩余任务 困难 于达 将真实数据处理后按矩阵读入, 以供训练使用  提供generator的接口 对julia语言还不够 ...

  3. JuJu团队11月26号工作汇报

    JuJu团队11月26号工作汇报 JuJu   Scrum 团队成员 今日工作 剩余任务 困难 于达 对原始文本进行预处理, 并转换成可被julia读入的格式 完成预处理并用julia读入. 读入后按 ...

  4. mapper语句的一些问题,union连表查询和mapper中根据条件不同采用不同语句的查询问题

    根据业务要求,不同表查出来的内容天需要一起展示出来,并且还有分页之类的,不同表查询字段也不完全相同,这样就有一个问题,不同表如何接合在一起,不同字段怎么办? 这个问题就需要用到union联合查询,并将 ...

  5. 《TensorFlow实战Google深度学习框架》笔记——TensorFlow入门

    一.Tensorflow计算模型:计算图 计算图是Tensorflow中最基本的一个概念,Tensorflow中的所有计算都被被转化为计算图上的节点. Tensorflow是一个通过计算图的形式来描述 ...

  6. 七十九、SAP中数据库操作之更新数据,UPDATE的用法

    一.我们查看SFLIGHT数据库,比如我们需要改这条数据 二.代码如下 三.执行效果如下,显示“数据更新成功” 四.我们来看一下SFLIGHT数据库,发现已经由DEM更改为了AAA了

  7. springMVC上传文件和文件下载

    springMVC.xml文件 <bean id="multipartResolver" class="org.springframework.web.multip ...

  8. PHP操作MYSQL数据库(10.11 第十九天)

    一.连接及断开数据库 1.使用mysqli 扩展(推荐),只针对mysql数据库 面向对象的方式 $con = new mysqli(ip,user,password); if($con->co ...

  9. 电脑使用热键时是否需按住Fn键相关说明

    ThinkPad E系列机型 方法一: 在开机出现ThinkPad标志时,连续点F1(若无反应,请尝试Fn+F1)进入BIOS设置. 在BIOS中,依次选择Config---Keyboard/Mous ...

  10. 1 - apicloud - str 字符串拼接技术

    <body> <label>Hello APP</label> <div id='sys-info'></div></body> ...