精华内容
下载资源
问答
  • WHERE子句在SELECT语句中,语句首先从FROM子句开始执行,执行后会生成一个中间结果集,然后就开始执行WHERE子句WHERE子句是对FROM子句生成的结果集进行过滤,对中间结果集的每一行记录,WHERE子句会返回一个布尔值...

    WHERE子句

    在SELECT语句中,语句首先从FROM子句开始执行,执行后会生成一个中间结果集,然后就开始执行WHERE子句。WHERE子句是对FROM子句生成的结果集进行过滤,对中间结果集的每一行记录,WHERE子句会返回一个布尔值,(TRUE/FALSE),如果TURE,这行记录继续留在结果集中,如果FALSE,则这行记录从结果集中移除。如:

    SELECT name FROM student WHERE studentNO = 2

    FROM子句返回的中间结果集如下:

    studentNO  name

    ---------  ----

    1  张三

    2  李四

    3  王五

    4  赵六

    总共4行记录,对每一行记录执行WHERE子句。第一行中studentNO是1,所以studentNO=2表达式返回值为FALSE,这行记录移除。第二行中studentNO是2,所以studentNO=2返回TRUE,这行记录继续保留;同理第三行和第四行记录也移除,执行完WHERE语句后的中间结果集为:

    studentNO  name

    ---------  ----

    2  李四

    然后执行SELECT语句,最终的结果集为:

    name

    ----

    李四

    比较运算符

    WHERE子句返回布尔值,所以WHERE子句经常会用到比较运算符。比较运算符有:

    =  等于

    <=> 相等或者都等于空

    < 小于

    > 大于

    <= 小于或等于

    >= 大于或等于

    <> 不等于

    != 不等于

    2=2的结果为true,15<9的结果为false,3>2的结果为true,5!=4的结果为true。

    字符串也可以进行比较,'b''k'的结果为false。

    时间值可以比较,较早的时间小于较晚的时间。'1980-5-4''1991-2-19'的结果为false。

    =比较符与<=>比较符的差别在于,当比较两个空值的时候,=返回unknown,<=>返回为true。

    子查询中的比较运算符

    SELECT studentNO FROM student WHERE studentNO > (SELECT studentNO FROM student WHERE name='李四')

    一个子查询可以用于WHERE子句中。上例中是一个标量子查询,子查询只能返回一个标量值。

    同样一个行子查询也可以用于WHERE子句中:

    SELECT studentNO FROM student WHERE (studentNO,name) = (SELECT studentNO,name FROM student WHERE name='李四')

    不带比较运算符的WHERE子句

    WHERE子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当0时转化为false,当其他值是转化为true。

    SELECT studentNO FROM student WHERE 0

    则会返回一个空集,因为每一行记录WHERE都返回false。

    SELECT studentNO FROM student WHERE 1

    或者

    SELECT studentNO FROM student WHERE 'abc'

    都将返回student表所有行记录的studentNO列。因为每一行记录WHERE都返回true。

    展开全文
  • 本节主要介绍如何使用SELECT语句WHERE子句来指定搜索条件进行数据过滤,包括使用=、>、<等基础操作符的基础数据过滤;使用AND、OR、IN、NOT操作符的高级数据过滤;以及使用%、_、[]通配符的数据过滤操作,以及实际...

    上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值、利用LIMIT/OFFSET子句限制结果;以及利用ORDER BY子句排序检索出的数据,主要有按照单个/多个列名/列位置/混合排序、用DESC关键字指定排序方向。

    这一次我们来看一下如何使用SELECT语句的WHERE子句来指定搜索条件进行数据过滤,包括使用=、>、<等基础操作符的基础数据过滤;使用AND、OR、IN、NOT操作符的高级数据过滤;以及使用%、_、[]通配符的数据过滤操作,以及实际使用中的一些细节。


    1.过滤数据(WHERE子句)

    数据库表一般包含大量的数据,很少需要检索表中的所有行。通常只会根据特定操作或报告的需要提取表数据的子集

    只检索所需数据需要指定搜索条件(search criteria),或称为过滤条件(filter condition)。

    • 在SELECT语句中,数据根据WHERE子句中指定的过滤条件进行过滤
    • WHERE子句位置:在表名(FROM子句)之后给出。
    • 通过非选择列进行过滤。用非检索的列过滤数据也是是完全合法的。

    1.1 WHERE子句操作符

    在这里插入图片描述

    • 注意:操作符兼容。表中所列出的操作符是冗余的,有功能相同的操作符。具体DBMS支持的操作符不一样。
    • 经过尝试,MySQL中除不支持!<、!>这两个操作符外,其他都支持。
    • SQL过滤 or 在应用层过滤?通常最好选择SQL过滤。

    1.2 过滤操作

    1.2.1 检查单个

    • 语句:
    SELECT 列名1,列名2
    FROM 表
    WHERE 列名1 < 10;
    

    1.2.2 不匹配检查(!=、<>操作符)

    • 语句:
    SELECT 列名1,列名2
    FROM 表
    WHERE 列名1 <> 'DLL01';
    

    提示:

    • 单引号用来限定字符串。若将字符串类型的列进行比较,就需要限定引号;若将值与数值列进行比较,则不用引号。

    1.2.3 范围值检查(BETWEEN操作符)

    • 语句:
    SELECT 列名1,列名2
    FROM 表
    WHERE 列名1 BETWEEN 5 AND 10;
    

    提示:

    • 在使用BETWEEN操作符时,必须指定两个值:所需范围的低端值和高端值。(闭区间)
    • 并且这两个值必须AND关键字分隔。

    1.2.4 空值检查(IS NULL操作符)

    • 语句:
    SELECT 列名1,列名2
    FROM 表
    WHERE 列名1 IS NULL;
    

    分析:

    • 在创建表时,表设计人员可以指定其中的列能否不包含值。在一个列不包含值时,称其包含空值NULL
    • NULL:无值(no value),它与字段包含0空字符串或仅仅包含空格不同。

    提示:各DBMS 特有的操作符。

    • 许多DBMS 扩展标准操作符集,提供了更高级的过滤选择,想了解可以参阅相应DBMS文档

    注意:NULL和非匹配。

    • 在进行匹配过滤或非匹配过滤时,不会返回含NULL值的行。
    • 因此过滤数据时,一定要验证被过滤列中含NULL值的行确实出现在返回的数据中。

    2.高级数据过滤(组合WHERE子句)

    在上一小节中,所有的WHERE子句在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制,SQL允许给出多个WHERE子句。这些句子有两种使用方式:以AND子句OR子句的方式使用。

    • 操作符(operator):用来联结或改变 WHERE子句中的//子句//的关键字,也称为逻辑操作符(logical operator)。

    下面我们就来分别介绍一下AND、OR、IN、NOT四种操作符。

    2.1 AND操作符

    要通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件

    • 语句:
    SELECT 列名1,列名2,列名3
    FROM 表
    WHERE 列名1 = 值1 AND 列名2 <= 值2;
    

    分析:

    • AND:用在WHERE子句中的关键字,用来表示//检索(v)//满足所有给定条件的行。
    • 这个例子中只有两个过滤条件。可以增加多个过滤条件,每个条件间都要使用AND关键字。

    注意:

    • 例子中省略了ORDER BY子句。因此不同情况下做出来的输出,顺序可能不同。可以在WHERE子句之后加上一个ORDER BY子句

    2.2 OR操作符

    • 语句:
    SELECT 列名1,列名2,列名3
    FROM 表
    WHERE 列名1 = 值1 OR 列名2 = 值2;
    

    分析:

    • OR:用在WHERE子句中的关键字,用来表示//检索(v)//满足任一给定条件的行。(可以看出,OR的功能与AND正好相反。)

    提示:

    • 许多DBMS在OR WHERE子句的第一个条件得到满足时,不管第二个条件是否满足,相应的行都将被检索出来。

    2.3 求值顺序(AND与OR结合时)

    WHERE子句可以包含任意数目的AND和OR操作符。允许两者结合进行复杂、高级的过滤。

    提示:在结合 AND和OR时,要注意求值的顺序(优先级):

    • SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。
    • 优先级:圆括号 > AND > OR。在三者中圆括号的优先级最高。
    • 任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。

    2.4 IN操作符

    • 语句:
    SELECT 列名1,列名2,列名3
    FROM 表
    WHERE 列名1 IN (值1,值2)
    ORDER BY 列名2;
    

    分析:

    • IN后跟一组由逗号分隔,括在圆括号(必须)中的合法值

    • IN操作符用来指定条件范围,范围中的//每个条件都可以进行匹配。功能与OR相当,下面看一个实例:

      语句1:
      SELECT prod_name,prod_price
      FROM Products
      WHERE vend_id IN ('DLL01','BRS01')
      ORDER BY prod_name;
      
      语句2:
      SELECT prod_name,prod_price
      FROM Products
      WHERE vend_id ='DLL01' OR vend_id = 'BRS01'
      ORDER BY prod_name;
        
      语句1与语句2输出完全一样。
      注意:使用OR时,即使检索同一个列的不同值,也不可以直接:vend_id ='DLL01' OR 'BRS01'
      

    那么,既然IN与OR功能相当,我们为什么还要使用IN操作符呢?IN操作符的优点如下:

    • 语法更清楚、直观;
    • 在与其他AND和OR操作符组合使用IN时,求值顺序更容易管理;
    • IN操作符一般比一组OR操作符执行得更快
    • 最大优点:IN操作符可以包含其他SELECT语句,能够更动态地建立WHERE子句。(后续的笔记中,还会对此做详细介绍。)

    2.5 NOT操作符

    • 语句:
    SELECT 列名1
    FROM 表
    WHERE NOT 列名1 = 值1
    ORDER BY 列名1;
    

    上面这个例子也可以使用<>或!=操作符来完成。

    分析:

    • NOT操作符:有且只有一个功能,即否定其后所跟的任何条件
    • NOT 从不单独使用,所以它的语法与其他操作符有所不同。可以用在要过滤的列前 ,也可以用在要过滤的列后

    说明:

    • 大多数DBMS:允许使用NOT否定任何条件
    • MariaDB:支持使用NOT否定IN、BETWEEN和EXISTS子句。

    NOT的优点:

    • 对于上面例子中简单的WHERE子句,使用NOT确实没有什么优势。
    • 但是在更复杂的子句中,NOT是非常有用的。比如,在与IN操作符联合使用时,NOT可以非常简单地找出与条件列表不匹配的行。

    3.用通配符进行过滤(LIKE + 通配符)

    前面所介绍的所有操作符都是针对已知(完整)值进行过滤的。但是这种过滤方法并不是任何时候都好用。有些时候需要利用通配符,来创建(v)//用于比较(v)特定数据的//搜索模式。

    • 通配符(wildcard):用来匹配值的一部分的特殊字符。
    • 搜索模式(search pattern):由字面值(已知值)、通配符或两者组合构成的搜索条件

    通配符本身实际上是SQL的WHERE子句中有特殊含义字符,SQL支持几种通配符。

    LIKE操作符:

    • 为在搜索句子中使用通配符,必须使用LIKE操作符。
    • LIKE指示DBMS,后跟的搜索模式利用通配符匹配,而不是简单的相等匹配进行比较。

    注意:

    • 通配符搜索,只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。

    谓词(predicate)(选看):

    • 操作符何时不是操作符?答案是,它作为谓词时。
    • 技术上说,LIKE是谓词而不是操作符。虽然最终的结果是相同的,但应对此术语有所了解,以免在SQL文献或手册中遇到此术语时不知所云。

    3.1 百分号(%)通配符

    语句:

    SELECT 列名1,列名2,列名3
    FROM 表
    WHERE 列名1 LIKE 'Fish%';
    

    分析:

    • %是最常用的通配符。
    • 在搜索串中,%表示任何字符(除NULL)出现任意次数(包括0次)。
    • 通配符(不止是%)可以在搜索模式中的任意位置使用,并且可以使用多个通配符。

    说明:

    • Access通配符。如果使用的是Microsoft Access,需要使用*而不是%。
    • 区分大小写。根据DBMS的不同及其配置,搜索可以是区分大小写的。

    注意:

    • 注意字符串后面所跟的空格,包括Access在内的许多DBMS都用空格来填补字段的内容。(经过测试,默认设置的MySQL中没有填补空格的机制。)

      例如,如果某列有50个字符,而存储的文本为Fish bean bag toy(17个字符),则为填满该列需要在文本后附加33个空格。
      这样做一般对数据及其使用没有影响,但是可能对某些SQL语句有负面影响。
      例如,子句WHERE prod_name LIKE 'F%y'只匹配以F开头,以y结尾的prod_name。如果值后面跟空格,则不是以y结尾,那么最终检索结果就不是我们预想的。
      
      - 解决办法:简单的,给搜索模式再增加一个%,即'F%y%';
        				 更好的解决办法,用函数去掉空格(后面详细介绍)
      
    • 注意NULL。通配符%无法匹配NULL。

    3.2 下划线(_)通配符

    • 语句:
    SELECT 列名1,列名2
    FROM 表
    WHERE 列名1 LIKE '__ inch teddy bear';
    

    分析:

    • -总是刚好匹配一个字符,不能多也不能少。
    • %可以匹配0个、1个、多个字符。

    说明:

    • DB2不支持通配符_
    • Access通配符。如果使用的是Microsoft Access,需要使用?而不是_。

    3.3 方括号([])通配符(MySQL不支持)

    • 语句:
    SELECT 列名1
    FROM 表
    WHERE 列名1 LIKE '[JM]%'
    ORDER BY 列名1;
    

    分析:

    • []通配符用来指定一个字符集,它必须(也只能)匹配指定位置(通配符的位置)的一个字符。
    • 此通配符可以用前缀字符(脱字号^)来否定。也可以使用NOT操作符得到类似的结果
      ,^的唯一优点是在使用多个WHERE子句时可以简化语法

    说明:

    • 并不总是支持集合。与前面描述的通配符不一样,并不是所有DBMS都支持用来创建集合的[]。只有Access和SQL Server支持集合。(经过测试,MySQL确实不支持这个操作。)
    • Access中需要用!而不是^来否定一个集合。即,用[!JM],而不是[ ^JM]。

    3.4 使用通配符的技巧

    正如本节我们介绍,SQL的通配符很有用。但是这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。

    使用通配符的技巧

    • 不要过度使用通配符。其他操作符能达到相同的目的,尽量使用其他操作符
    • 确实需要使用通配符时,尽量不要把它们放在搜索模式开始处
    • 仔细注意通配符的位置。如果放错地方,可能不会返回我们想要的数据。

    总之,通配符是一种极其重要和有用搜索工具,以后我们经常会用到它。


    参考资料:
    1.《SQL必知必会》Ben Forta。

    展开全文
  • SELECTSQL语句中Where子句功能解析教育论文 [摘要]针对SELECT-SQL语句中Where子句存在多种使用方式的状况,分析了SELECT-SQL子句特点的基础上,本文提出了根据不同应用要求,合理使用Where子句的观点,结合多年的教学...
  • select语句子句以及子查询

    万次阅读 2019-06-04 23:45:55
    1.select语句的各个子句 按顺序: (1)from:从哪些表筛选 (2)where:从表筛选的条件 (3)group by:分组依据 (4)having:统计结果再次筛选 (5)order by:排序 (6)limit:分页 having与where的...

    1.select语句的各个子句

    按顺序:

    (1)from:从哪些表中筛选

    (2)where:从表中筛选的条件

    (3)group by:分组依据

    (4)having:在统计结果中再次筛选

    (5)order by:排序

    (6)limit:分页

    having与where的区别?

    (1)where是从表中筛选的条件,而having是统计结果中再次筛选

    (2)where后面不能加“分组/聚合函数”,而having后面可以跟

    order by:

    降序:desc

    升序:用么默认,要么加asc

    limit:

    limit m,n

    m = (第几页 - 1)*每页的数量

    n = 每页的数量

    代码示例:

    #查询每个部门的男生的人数,并且显示人数超过5人的,按照人数降序排列,
    #每页只能显示10条,我要第2页
    SELECT did,COUNT(*) "人数"
    FROM t_employee
    WHERE gender = '男'
    GROUP BY did
    HAVING COUNT(*)>5
    ORDER BY 人数 DESC
    LIMIT 10,10
    

    2.子查询

    嵌套在另一个查询中的查询,根据位置不同,分为:

    (1)where型

    ①子查询是单值结果,那么可以对其使用(=,>等比较运算符)

    ②子查询是多值结果,那么可对其使用(【not】in(子查询结果),或 >all(子查询结果),或>=all(子查询结果),<all(子查询结果),<=all(子查询结果),或 >any(子查询结果),或>=any(子查询结果),<any(子查询结果),<=any(子查询结果))

    (2)from型

    必须给子查询取别名

    (3)exists

    所有子查询必须使用()括起来

    示例代码:

    查询全公司最高工资的员工信息
    select * from 员工表 where 薪资 = (select max(薪资) from 员工表);
    
    查询每个部门的编号,名称,平均工资
    select 部门编号, 部门名称, 平均工资
    from 部门表 inner join (select 部门编号,avg(薪资) from 员工表  group by 部门编号) temp
    on 部门表.部门编号 = temp.部门编号
    
    查询那些有员工的部门
    select 部门编号, 部门名称 from 部门表
    where exists (select * from 员工表  where 部门表.部门编号 = 员工表.部门编号);
    
    展开全文
  • 文章目录注意:不要用应用过滤,而用SQL过滤WHERE 子句(from子句后)where子句的条件操作符示例1:<, <=示例2:相等检验示例3:不匹配检查示例4:范围检查,between示例5:空值检查(where子句的is null...

    注意:不要用应用过滤,而用SQL过滤

    因为

    • SQL才是操作数据库最高效的语言,客户源开发语言操作低效
    • 服务器把大量未经过滤的数据通过网络传给客户端,浪费网络资源

    在这里插入图片描述

    WHERE 子句(在from子句后)

    在这里插入图片描述
    在这里插入图片描述

    where子句的条件操作符

    好多奇怪的长相
    在这里插入图片描述
    在这里插入图片描述

    示例1:<, <=

    select prod_name, prod_price
    from products
    where prod_price < 5;
    

    在这里插入图片描述

    示例2:相等检验

    检索两列,不返回所有行

    select prod_name, prod_price
    from products
    where prod_price = 3.49;
    

    在这里插入图片描述

    示例3:不匹配检查

    select vend_id, prod_name
    from products
    where vend_id <>'DLL01';
    

    在这里插入图片描述
    在这里插入图片描述
    注意就算是字符串,也是单引号

    在这里插入图片描述
    mysql也支持!=表示不等于

    select vend_id, prod_name
    from products
    where vend_id !='DLL01';
    

    示例4:范围检查,between

    select prod_name, prod_price
    from products
    where prod_price between 5 and 10;
    

    在这里插入图片描述
    在这里插入图片描述

    示例5:空值检查(where子句的is null子句)

    原来子句还可以有子句
    在这里插入图片描述

    select prod_name
    from products
    where prod_price is null;
    

    在这里插入图片描述

    select cust_name
    from customers
    where cust_email is null;
    

    在这里插入图片描述

    总结

    介绍了如何用SELECT语句的WHERE子句过滤返回的数据。

    学习了如何检验相等、不相等、大于、小于、值的范围以及NULL值等。

    关键字

    • where
    • between
    • and
    展开全文
  • 在SELECT语句中,根据WHERE子句中指定的搜索条件(称为过滤条件)进行过滤 同时使用ORDER BY和WHERE子句时,ORDER BYWHERE之后(否则会报错) SELECT prod_id,prod_price,prod_name FROM products WHERE prod_...
  • SQL where子句及查询条件语句(六)

    千次阅读 2019-10-29 20:38:46
    WHERE 子句用于提取那些满足指定条件的记录。 SELECT column_name1,column_name2 FROM table_name WHERE column_name operator value; 运算符 描述 = 等于 <>或!= 不等于 &...
  • SQL的SELECT语句WHERE语句,SELECT DISTINCT语句,AND&OR运算符 注:SQL 对大小写不敏感:SELECT 与 select 是相同的 SELECT语句 SELECT语句用于从数据库选取数据 结果被存储表,称为结果集。 语法: ...
  • 5 select语句3.2 where子句(条件子句)1、where的作用,是对表中行数据进行限制,符合where条件数据就被选中,不符合where条件数据就被过滤掉。  select id,salary from s_emp;  select id,salary from s_emp ...
  • 例子:select o.id,o.sku_id from orderItem o where ISNULL(sku_id); 2.使用is null。例子:select o.id,o.sku_id from orderItem o where sku_id is null; 3.使用IFNULL(字段,"替换值") 函数。例子:select ...
  • 1、应尽量避免 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如: select id from t where num is null 可以num上设置默认值0,确保表中num列没有null值,然后这样查询: ...
  • MySQL在selectwhere中使用iF语句

    千次阅读 2020-05-04 14:02:39
    mysql 在selectwhere条件如何使用 IF 条件语句
  • 1.情景展示where限制条件后面如果想要加select语句的话,如何实现?2.原因分析通常情况下,where后面跟的是:clomn=值的方式,其实,=号后面也是可以使用查询语句的,但有使用限制条件,下面会说;使用in()或者...
  • select语句中where后的逻辑查询

    千次阅读 2017-09-18 22:23:25
    大多用在select语句中where后,判断限定性条件的逻辑比较 1.and(逻辑与) 指查询and左右两边的条件都满足的数据 2.or(逻辑或) 指查询or左右两边的条件满足一个即可的数据 3.between 小数 and 大数(两个数...
  • 文章目录背景介绍问题解决方式一:将where中的别名换成表达式即可解决方式二:使用子查询的方式,然后就可以在where字句调用了问题拓展总结 背景介绍 昨天写sql脚本,与前端进行调试的时候发现,SQL的字段别名...
  • 目录 1.SELECT语句处理顺序 2.where 后条件执行先后顺序 1.SELECT语句处理顺序 (1)from ...(4)where ...(5)group by (开始使用select中的...第一步:首先对from子句中的前两个表执行一个笛卡尔乘积,此时生成虚拟表vt1
  • SELECT Price,Home FROM house_price WHERE SUM(Price)>100 果然华华丽丽的报错 ...聚合函数是列上进行操作,将满足要求的放在一个组 where呢? SELECT name,weight,hight FROM basketball WHERE ...
  • 正则表达式:列值内进行匹配(通配符匹配整列)1基本字符匹配SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’ ORDER BY prod_name;SELECT prod_name FROM products WHERE prod_name REGEXP ...
  • SQL:WHERE子句中的IF子句

    千次阅读 2021-05-04 02:38:50
    您可以使用CASE如下:WHERE OrderNumber LIKE CASE WHEN IsNumeric(@OrderNumber) = 1 THEN @OrderNumber ELSE '%' + @OrderNumber END或者你可以使用像@JReed指出的IF语句。你应该可以做到这一点,没有任何IF或...
  • SQL-SELECT 语句,From子句,where条件查询

    千次阅读 2011-12-07 10:55:49
    SELECT 语句 SELECT 语句用来检索数据表的数据,而哪些数据被检索由列出的数据行与语句中WHERE 子句决定。例如,要从之前建立的 Customer_Data数据表检索 customer_id 以及 first_name 数据行的数据,并且...
  • 现在要查,sex为男,age为20的那些数据,可用如下语句select * from student where sex='男' and age=20;   SELECT * FROM Persons WHERE City='Beijing' SELECT * FROM Persons WHERE ...
  • where子句和having子句区别

    千次阅读 2019-11-13 16:58:31
    感谢大佬:... where子句和having子句的区别:     1.where  不能放在group by后面     2.having   是跟group by连一起用的,放在group by 后面,此时的作用相当于wh...
  • sql语句where子句

    2015-02-26 10:35:53
    sql语句之where子句数据库查询数据时,有时只希望查询所需要的数据,而非数据表的所有数据,那么就可以使用SELECT语句中WHERE子句来实现。  数据库查询数据时,有时只希望查询所需要的数据,而非...
  • 聚合函数出现在where子句中是个伪命题!举个简单的例子,现在需要select出所有员工中那些工资大于平均工资的员工信息,如果sql语句写成select * from 表名 where sal > avg(sal);肯定是要报错的。因为聚合函数的...
  • having子句与where子句

    千次阅读 2020-10-11 20:10:50
    1.相同点 都是对记录进行筛选 2.不同点 ...where子句:where子句仅仅用于从from子句中返回的值,from子句返回的每一行数据都会用where子句中的条件进行判断筛选,where子句中允许使用比较运算符和逻辑运算
  • sql语句where子句like的用法详解

    万次阅读 2015-05-16 10:13:36
    LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是一个字符型字段列检索包含对应子串的。 假设有一个数据库有个表table1,table1有两...
  • SQL的查询语句WHERE子句用于指定查询条件,只有满足条件的元组才会出现结果集中。本教程操作环境:windows7系统、mysql5.8版、Dell G3电脑。sql的select语句中,用于实现选择运算的是“WHERE”。在在sql...
  • SQL语句 where子句 like用法

    万次阅读 2017-12-23 11:00:40
    like 的通配符有两种 %(百分号):代表零个、一个或者多个字符。 _(下划线):代表一个...2. name包含"云",“云”可以任何位置 where name like '%云%'   3. 第二个和第三个字符是0的值 whe
  • select语句有6大子句: (1)from子句 (2)where子句 (3)group by子句 (4)having子句 (5)order by子句 (6)limit子句 强调:每一个select的6大子句的顺序是(1)-(6) 关键字的顺序是不能颠倒的: SELECT ... FROM ... ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 187,078
精华内容 74,831
关键字:

在select语句的where子句中