1.两结构相同的表数据间移植

Inset into 表一

Select 字段1,字段2,....字段n from表二

建立数据库时设置数据库编码

create database 数据库名 charset uft8

模糊查询时

%(任意字符任意个数)

_(单个字符)

2.聚合函数使用时必须有group by给定分组条件

比如有一个表

求平均成绩是用聚合函数avg()时必须制定此函数作用的范围依据

3.分组,排序,再次筛选,取几条执行顺序

Where>group by >having>order by >limit

门及2门以上同学的平均分和不及格科目数

方法一:分步查询

先查出2门及2门以上不及格学生是谁

然后再查这些同学的平均分,需要2个select语句

select name from stu where score<60  group by name having count(name)>=2

便得到表

name

张三

李四

注意sql的执行顺序

先执行select name from stu where score<60 

会得到表2:

name

张三

张三

李四

李四

王五

之后再分组和再筛选

但要注意虽然group by在having前,但group by是作为having的筛选分组条件的

然后在表2中having筛选即得

第二步:

找到这些学生后,在把学生名最为查询条件再次筛选,因为第一步筛选掉了及格的了的成绩,结果破坏了数据的原始性,所以还得进行一次筛选

 select name,avg(score) from stu where name in (select name from stu where

 score<60  group by name having count(name)>=2) group by name;

方法二:利用select后可以直接是判断式及本题特点

分析:首先运行sql查询

select name ,score<60 from stu;

得到下表3:

name

Score<60

张三

0

张三

1

张三

1

李四

1

李四

1

王五

1

在select后的字段或条件mysql会依次与表中的数据对比,如score<60会拿60逐一与表中的score值比较

比如字段name没有要比较的值就显示它在表中的值

从表三发现:sum(score<60)的值就是不及格科目数

于是

 select name ,avg(score),sum(score<60) as gk from stu group by name having

 gk>=2;

聚合函数的执行时同时进行

得到结果表:

显然方法二比一更简洁高效

未完待续....!

最新文章

  1. C++异常处理:try,catch,throw,finally的用法
  2. Python的模块引用和查找路径
  3. APOC 15 Years Celebration
  4. PHP5.6.15连接Sql Server 2008配置方案
  5. 查看本机ip
  6. 如何让您的php也支持pthreads多线程
  7. 【概念笔记】JAVA基础 - part2
  8. 小白有问题-下雨天给linux装adobe flash player更配
  9. [转]windows下设置socket的connect超时
  10. 【转】Eclipse中设置ButterKnife进行注解式开发步骤 -- 不错
  11. C语言学习--全局变量、静态本地变量
  12. crawler_分布式网络爬虫的设计与实现_设计图
  13. java int数组任何数之间间隔不能对于指定数,内付极速排序
  14. log4net的简单使用记录一下,防止下次忘记
  15. corosync+pacemaker的crmsh的常用指令介绍
  16. oplog
  17. 爬取ofo共享单车信息
  18. 如何在Android平台上使用USB Audio设备
  19. grep和sed匹配多个字符关键字的用法
  20. 1003 Emergency (25)(25 point(s))

热门文章

  1. using inno setup uninstall default icon
  2. (easy)LeetCode 219.Contains Duplicate II
  3. Throttling ASP.NET Web API calls
  4. VC 类泡泡龙游戏算法
  5. jmeter的分布式部署
  6. 一步一步学习Unity3d学习笔记系1.4单服模式架构
  7. Linux选型:开源不是免费 首选红帽和SUSE
  8. Sass基础语法
  9. 注册码 myeclipse6.5-6.8
  10. postgresql安装配置