数据库中where与having区别

having 和where 都是用来筛选用的  having 是筛选组  而where是筛选记录

他们有各自的区别

1》当分组筛选的时候 用having

2》其它情况用where-----------------------------------------------------用having就一定要和group by连用,用group by不一有having (它只是一个筛选条件用的)-------------------------------------------------------例子表结构部门编号  姓名  工资   1       aa    2000   2       bb    1200   1       cc    2100   2       dd    1800   1       ee    2100   3       ff    8000   2       gg    2200   3       hh    4500

查询有多个员工的工资不低于2000的部门编号(就是说如果一个部门的员工大于2000的人数有两个或两个以上就查询出来)

select 部门编号,count(*) from 员工信息表where 工资>=2000group by 部门编号having count(*)>1

where 针对每一条记录筛选而 having 对同一个部门的分组count(*)>1 计算多于两个的部门

查询结果为

1  33  2
时间: 2024-10-10 09:42:52

数据库中where与having区别的相关文章

数据库中varchar和Nvarchar区别与联系

在数据库中新建表的时候发现了字段类型有的带n有的不带n,那么两者之间有什么区别? 于是上网查找一些资料如下: 一. 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim(). 2.VARCHAR.存储变长数据,但存储效率没有CHAR高.如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARC

数据库中 ’’ 和 NULL的区别

null不是对象,''是对象 从'',你就可以知道这是一个字符串类型的数据,是一个长度为零的字符串. 从NULL,你只能知道这里没有赋过值,是空的,他不属于任何数据类型. 我们在数据库实际使用中,一般把字符串型变量默认为'',数值型变量默认为0,这样才能保正在进行逻辑运算时不产生类型不匹配的错误.SQL SERVER中函数为:ISNULL(变量,值),如对于整型变量,这样去参加运算:SET @VAR=1+ISNULL(整型变量,0)对于字符型变量,这样去参加运算:SET @VAR=ISNULL(

谈谈数据库中MyISAM与InnoDB区别 针对业务类型选择合适的表

MyISAM:这个是默认类型,它是基于传统的ISAM类型, ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法. 与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键.如果事物回滚将造成不完全回滚,不具有原子性.如果执行大量的SELECT,MyISAM是更好的选择. MyIASM是IASM表的新版本,有如下扩展

关于数据库中字符串类型的区别与使用方法

数据库的数据类型: 整数:int,smallint,bigint,decimal 实数类型:float,real. 字符串类型:char/nchar .varchar/nvarchar. 1. 有没有var的区别:带var的叫可变长度的字符串类型,不带var的是定长的字符串.定长的字段,如果存储的数据没达到最大长度,系统会在录入的字符串 后边补够空格.当记录的数据有固定长度时,选用定长的(char/nchar).当无法确定记录的数据有多长时,选用变长的(varchar /nchar) 定长:很容

【实习记】2014-09-02MySQL数据库中key与index区别

做数据库优化时,使用sql语句调整数据库,在此记录一下. 好博客,好文章 <mysql常用SQL语句>http://www.cnblogs.com/jevo/p/3257222.html <MySQL 主键与索引的联系与区别分析>http://www.jb51.net/article/34037.htm 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键. 2. 一个表中可以有多个唯一性索引,但只能有一个主键. 3. 主键列不允许空值,而唯一性索引列允许空值. 4. 索引可以提

谈谈数据库中MyISAM与InnoDB区别

MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键.如果事物回滚将造成不完全回滚,不具有原子性.如果执行大量的SELECT,MyISAM是更好的选择. MyIASM是IASM表的新版本,有如下扩展:

MySQL 数据库中MyISAM 和 InnoDB 的区别

首先要明白,在MySQL数据库忠中的存储引擎是基于表的,而不是基于数据库的. 讲述两者区别: InnoDB 存储引擎,主要面向 OLTP(Online Transaction Processing,在线事务处理)方面的应用,是第一个完整支持 ACID 事务的存储引擎(BDB 第一个支持事务的存储引擎,已经停止开发). 特点: 行锁设计.支持外键: 支持类似于 Oracle 风格的一致性非锁定读(默认情况下读取操作不会产生锁): InnoDB 将数据放在一个逻辑的表空间中,由 InnoDB 自身进

关于数据库中char,varchar,varchar(2)的区别

数据库中的char类型用于存储定长类型;效率比varchar要稍高,但是,占用空间比varchar要多. 比如"asd",对于char(9)就表示存储9个字节(包括6个空字节),在取值的时候就需要.trim()把两边的空号去掉. 对于varchar(9),则是按照实际字节数存储的,只存储三个字节. oracle中,会有一个varchar2型的数据类型,varchar2型与varchar型的区别: 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等

[转] 数据库中Schema和Database有什么区别

原文链接:http://blog.163.com/baibai_zheng/blog/static/51980755201022125325689/ 前言:最近接触 Laravel 的数据库迁移, 代码里的 Schema 让我对 Database 以及 两者的区别有点蒙圈了,然后就有了这篇转载. 在MySQL中创建一个Schema好像就跟创建一个Database是一样的效果,在SQL Server和Orcal数据库中好像又不一样. 目前我只能理解,在mysql中 schema<==>datab