`

MySql摘要

    博客分类:
  • Sql
 
阅读更多

001、批量删除

public void deleteAll(List<Integer> list);//删除

 <delete id="deleteAll" >
         DELETE from qy_exchangepl  
	 WHERE exchangeplid in
	<foreach item="item" index="index" collection="list" 
                       open="(" separator="," close=")">
             #{item}
        </foreach>
     </delete>

 

002 、MySql日期函数


003、MySql 禁用和启用外键约束检查

-- SQL data bulk transfer script generated by the MySQL Migration Toolkit
-- ----------------------------------------------------------------------
-- Disable foreign key checks 禁用
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
-- Re-enable foreign key checks 启用
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
-- End of script

 005、

查询重复记录

/*查找重复记录
	指定重复字段
	按重复字段分组
	count重复字段值>1则重复*/
SELECT *
FROM allintersection b
WHERE b.`Name` 
IN(
	SELECT a.`Name`
	FROM allintersection a
	GROUP BY a.`Name`
	HAVING COUNT(a.`Name`)>1
)

 006、

删除重复记录

按规则删除重复记录	
DELETE FROM allintersection 
WHERE allintersection.ID 
IN(
  SELECT b.maxid
	FROM
	(SELECT MAX(a.ID) as maxid
	FROM allintersection a
	GROUP BY a.`Name`
	HAVING COUNT(a.`Name`)>1 ) b
)

 007、

关于having的几点说明

1、SQL标准要求HAVING必须引用GROUP BY子句中的列或用于总计函数中的列。
   不过,MySQL支持对此工作性质的扩展,并允许HAVING涉及SELECT清单中
   的列和外部子查询中的列。
2、HAVING子句必须位于GROUP BY之后ORDER BY之前。
3、如果HAVING子句引用了一个意义不明确的列,则会出现警告。在下面的语
   句中,col2意义不明确,因为它既作为别名使用,又作为列名使用:
   mysql> SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2;
   标准SQL工作性质具有优先权,因此如果一个HAVING列名既被用于GROUP BY,又被
   用作输出列清单中的起了别名的列,则优先权被给予GROUP BY列中的列。
4、HAVING子句可以引用总计函数,而WHERE子句不能引用。【这应该是开发者在特
   定的情况下采用HAVING子句的最大原因】
5、不要将HAVING用于应被用于WHERE子句的条目,从我们开头的2条语句来看,这样用
   并没有出错,但是mysql不推荐。而且也没有明确说明原因,但是既然它要求,我
   们遵循就可以了。

 008、按某一字段分组统计

例:qy_rb表--rblx日报类型字段(可能值0、1、2、3、4),现依据rblx统计一段时间内所有人员发表不同类型日报的数量

 

效果图:



 

局部sql:

SELECT 
SUM(case when rb.rblx='0' then 1 else 0 end) AS rbcount,
SUM(IF (rb.rblx=1,1,0) )AS zbcount,
SUM(IF (rb.rblx=2,1,0)) AS ybcount,
SUM(IF (rb.rblx=3,1,0)) AS jxthcount,
SUM(IF (rb.rblx=4,1,0)) AS jxfscount,
rb.userid
FROM qy_rb	rb
WHERE DATE_FORMAT(rb.tjsj,'%Y-%m-%-d')>=DATE_FORMAT('2012-08-01','%Y-%m-%-d') and DATE_FORMAT(rb.tjsj,'%Y-%m-%-d')<=DATE_FORMAT('2012-12-31','%Y-%m-%-d')
GROUP BY rb.userid

完整sql:

SELECT qyuser.xm,
	IF(ISNULL(t_a.rbcount),0,t_a.rbcount) as rbcount,
	IF(ISNULL(t_a.zbcount),0,t_a.zbcount) as zbcount,
	IF(ISNULL(t_a.ybcount),0,t_a.ybcount) as ybcount,
	IF(ISNULL(t_a.jxthcount),0,t_a.jxthcount) as jxthcount,
	IF(ISNULL(t_a.jxfscount),0,t_a.jxfscount) as jxfscount,
	IF(ISNULL(t_b.excount),0,t_b.excount) as excount,
	bm.bmmc
FROM qy_user qyuser
LEFT JOIN
(SELECT 
SUM(case when rb.rblx='0' then 1 else 0 end) AS rbcount,
SUM(IF (rb.rblx=1,1,0) )AS zbcount,
SUM(IF (rb.rblx=2,1,0)) AS ybcount,
SUM(IF (rb.rblx=3,1,0)) AS jxthcount,
SUM(IF (rb.rblx=4,1,0)) AS jxfscount,
rb.userid
FROM qy_rb	rb
WHERE DATE_FORMAT(rb.tjsj,'%Y-%m-%-d')>=DATE_FORMAT('2012-08-01','%Y-%m-%-d') and DATE_FORMAT(rb.tjsj,'%Y-%m-%-d')<=DATE_FORMAT('2012-12-31','%Y-%m-%-d')
GROUP BY rb.userid) t_a on qyuser.userid=t_a.userid
LEFT JOIN 
(SELECT count(*) as excount,
qyex.userid
FROM qy_exchange qyex 
WHERE DATE_FORMAT(qyex.tjsj,'%Y-%m-%-d')>=DATE_FORMAT('2012-08-01','%Y-%m-%-d') and DATE_FORMAT(qyex.tjsj,'%Y-%m-%-d')<=DATE_FORMAT('2012-12-31','%Y-%m-%-d')
GROUP BY qyex.userid

)t_b ON qyuser.userid=t_b.userid
LEFT JOIN qy_bm bm on qyuser.bmid=bm.bmid
WHERE qyuser.dwid='001'
ORDER BY rbcount AND zbcount and ybcount AND  excount DESC

 

 00、case语句

##方式一:
	SELECT 
		case sal.sfaz
			when 1  then '是' 
			when 2  then '否'
		end sfaz
	FROM saleorder sal
##	方式二:
	SELECT 
		case 
			when sal.sfaz=1  then '是' 
			when sal.sfaz=2  then '否'
		end sfaz
	FROM saleorder sal
##
SELECT 
	CASE
		WHEN a.user_name=null then 'no'
		WHEN a.user_name='' THEN 'no'
		ELSE a.user_name
	END as user_name
FROM game_user a

 

 00、if语句

SELECT 
		IF(sal.sfaz=1,'是','否') as sfaz
	FROM saleorder sal

00、mysql: 将记录值转换为字段统计(成绩表)

/*
select coalesce(a,b,c);  
如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;
如果a b c 都为null ,则返回为null(没意义)。
*/
SELECT a.username,
    (SELECT COALESCE(t.fenshu,0) from cores t WHERE t.cursorse='数学' and t.username=a.username) as 数学,
    (SELECT IFNULL(t.fenshu,0) from cores t WHERE t.cursorse='语文' and t.username=a.username) as 语文,
   (SELECT IF(ISNULL(t.fenshu),0,t.fenshu) from cores t WHERE t.cursorse='英语' and t.username=a.username) as 英语    
FROM cores a
group by a.username 

 

 

 

 

 

 

 

  • 大小: 59.3 KB
  • 大小: 3.9 KB
  • 大小: 26.8 KB
分享到:
评论
1 楼 raza2736 2013-01-14  
这什么编译器啊,能给我一份吗

相关推荐

    高性能mysql摘要

    mysql学习笔记,是高性能mysql的学习摘要。对于理解mysql架构体系,更熟练的使用mysql有很大的助益

    JSP+MYSQL学生个人理财系统-毕业设计

    收支记账:日常收支活动进行记录。对每天的消费及时入账。便于以后对家庭收支或个人收支的查询和统计。它记录了收支活动的日期,收支类型,活动说明,收入金额,支出金额,余额,及消费者。

    MySQL API 中文手册 v5.1官方中文版

    摘要:这是关于5.1版至5.1.2-alpha版MySQL数据库系统的参考手册。该手册不适用于旧版本MySQL软件,这是因为在MySQL 5.1和以前的版本存在很多功能性差异和其他差异。如果正在使用MySQL软件的较旧版本,请参阅MySQL ...

    linux下启动mysql服务

    提问 编辑摘要 如何启动/停止/重启MySQL 一、启动方式 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、停止 ...

    BugTrace PHP缺陷跟踪系统 v2.1

    不过客户端登录需要使用支持HTML5的Chrome浏览器浏览,其它非IE内核的浏运行环境:PHP+MySQL 摘要:PHP源码,其它类别,BugTrace  BugTrace PHP缺陷跟踪系统,无需初始化,开包即用。  不过客户端登录需要使用支持...

    MySQL 5 参考手册 CHM

    MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文...摘要 这是MySQL参考手册 它涉及MySQL 5.1至5.1.2-alpha版本。 文档生成于: 2005-11-15

    易语言MYSQL密码加密源码(取数据摘要)

    资源介绍:。返回一段字节集数据的数据摘要文本,如果获取失败将返回空文本,本命令为初级命令。这部分是hacker0058的源码。资源作者:。@易语言自学网。资源界面:。资源下载:。

    mysql15.1 官方中文手册

    MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文...摘要 这是MySQL参考手册 它涉及MySQL 5.1至5.1.2-alpha版本。 文档生成于: 2005-11-15

    MySQL数据库考试试题及答案

    MySQL数据库考试试题及答案,详情摘要请参见博客内容,谢谢

    基于java swing和mysql的超市管理系统

    基于Java Swing和MySQL的超市管理系统是一种用于超市或商场管理商品和订单信息的计算机软件系统。该系统使用Java Swing作为GUI编程工具,MySQL作为数据库,可以方便地进行商品管理、订单管理、库存管理和查询等操作...

    1_MYsql学习(摘要笔记).zip

    1_MYsql学习(摘要笔记).zip

    MySQL误操作后快速恢复数据的方法

    摘要: 利用binlog闪回误操作数据。 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了。假如这还是线上环境核心...

    基于SpringBoot+MySQL+Vue的在线考试系统(源码+论文).zip

    基于SpringBoot+MySQL+Vue的在线考试系统(源码+论文).zip 基于SpringBoot+MySQL+Vue的在线考试系统(源码+论文).zip 基于SpringBoot+MySQL+Vue的在线考试系统(源码+论文).zip 基于SpringBoot+MySQL+Vue的在线...

    易语言MYSQL密码加密

    易语言MYSQL密码加密源码,MYSQL密码加密,password,模块_取数据摘要

    在Windows环境下安装MySQL 的教程图解

    摘要:本文主要说明了如何下Windows环境下安装MySQL。 查看电脑上是否安装了MySQL 打开cmd窗口,输入services.msc命令,等待服务界面打开: 如果能在服务中找到MySQL服务,则说明系统已经安装了MySQL: 下载并安装...

    李玉婷老师的mysql课程sql

    李玉婷老师的mysql课程sql摘要

    linux mysql5.7.0 rpm 安装包

    摘要:rpm 安装mysql 5.7版本,含(mysql-connector-java-5.1.48.jar) 用途:数据库,jdbc 系统:Linux系统 ,解压密码:mysql

    基于PHP+MySQL的学生成绩管理系统设计与实现.zip

    资源包含文件:论文文档+项目源码及数据库文件+演示视频 php+mysql做一个简单的学生成绩管理系统 ...mysql5.7.26 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/123370476?spm=1001.2014.3001.5502

    MySQL 5.5参考手册

    这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与 英文版参考手册相比,本...摘要 这是MySQL参考手册 它涉及MySQL 5.5至5.5.2-alpha版本。 文档生成于: 2010-11-1

    mysql性能优化综述

    简单介绍下可以从哪些方面优化

Global site tag (gtag.js) - Google Analytics