SQL之WHERE语句

作者: PM回忆录 | 来源:发表于2019-07-31 00:02 被阅读3次

SQL语句是数据库查询语句,可以应用在各种数据库操作软件中,比如Mysql,Oracle,因此SQL语句学一套就基本可以通用了。这篇文章主要总结一下Where的用法,文章持续更新。

一般的结构查询语句的结构如下:

SELECT *

FROM table_a

WHERE x=y

其中,以上语句的select,from,where是不区分大小写的,一般分行写select,from,where语句。select一般是查询结果要展示的字段,from后一般是要查询的表名,where是进行行数据筛选的条件。

一般的用法有:

对比:=,!=,>,<

包含:in,not in,exists,not exists

模糊匹配:like

空值判断:is null, is not null

范围匹配:between ... and ...

多条件且、或:and,or

1.对比

=是精确匹配的意思,比如:where name='zhangsan'则是筛选出所有name='张三'的行,除数字外必须带引号。(!=就是除了=之外的所有行)

>和<一般是数字之间的对比,用法相同,数字不带引号

2.包含

in和not in分别是包含和不包含的意思,用法:where name in('zhangsan', 'lisi'),可筛选出name='zhangsan'和'lisai'的所有行。

exists和not exists等同于in和not in,不同的是使用时服务器使用效率不同,一般在多表匹配的时候会区别一下。可以先看以下例子:

1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;

2) select * from T1 where T1.a in (select T2.a from T2) ;

T1数据量小而T2数据量非常大时,T1    exits 效率高

T1数据量非常大而T2数据量小时,T1>>T2 时,2) in 的查询效率高。

3.模糊匹配

如果你只想匹配字段值的一部分,则要用like:where name like '%zhang%'或where name like 'zhang_'

%代表不限数量的匹配字符数,_代表单个字符的匹配。比如zhang%可以匹配出zhangsan, zhangsi等,而zhang_只能匹配出如zhangx这种的字符。

4.空值判断

null是数据为空时的一种状态,not null是不为空的状态,这两种状态可以用来做筛选:where name is null,筛选出name为空的行,where name is not null,筛选出name不为空的行。

5.范围判断

BETWEEN x1 AND x2 是指筛选出值在x1到x2之间的数据行,如:where id between 1 and 95,筛选出id为1~95的行。需要注意的是,不同的数据库对于between的用法有一点点差异,有的是[1,95],有的是(1,95)等,这点知道就行了,我用的Mysql是[]形式的。

6.多条件且、或

and 用来连接条件,表示多条件必须满足。or用来连接条件,表示满足任一即可。如:where name='zhangsan' and number=94,只会筛选出name和number同时满足了条件的数据行。而:where name='zhangsan' or number=94 则会筛选出name='zhangsan' 或者number=94满足任一条件的数据行。

那么多个and和or一起使用时怎么办呢,一般优先级是and>or,如:name='zhangsan' and number=94 or number=95,就会解析为(name='zhangsan' and number=94) or (number=95)。因此,为了避免不确定性,我们可以在查询条件中加入括号来对条件进行组合。例如:where (name='zhangsan' or name='lisi') and number = 100 。

欢迎访问个人网站,了解更多:www.pmhuiyilu.com

相关文章

  • SQL之WHERE语句

    SQL语句是数据库查询语句,可以应用在各种数据库操作软件中,比如Mysql,Oracle,因此SQL语句学一套就基...

  • Mysql数据库常用sql语句及多表查询设计

    一、sql语句 ~~sql语句书写顺序: select from where groupby having ord...

  • SQL语句基本使用

    SQL语句基本使用——增删改查 SQL语句基本使用——WHERE子句 SQL语句基本使用——AND和OR的使用 S...

  • SQL语句 where

    参考原文https://www.jianshu.com/p/04bb31cf9cec原文中有详细的示例代码 注意体...

  • 查询不区分大小写

    1、在sql语句中 WHERE description LIKE '%abc%' 或者 WHERE descrip...

  • sql查询语句,where条件中包含单引号的解决方案

    关于jsp页面中使用sql语句,where条件中变量包含特殊字符单引号的解决方案: sql语句中需要将where条...

  • java 22

    SQL语句 查询select ··from ··where··like··between ·· and ··as ...

  • MySQL

    数据类型 sql基础 数据库表 SQL SELECT 语句: SQL WHERE 子句: SQL AND & OR...

  • SQL优化

    一、SQL语句编写注意问题 下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子...

  • sqli-labs(less23-less37)

    LESS-23 SQL语句$sql="SELECT * FROM users WHERE id='$id' LIM...

网友评论

    本文标题:SQL之WHERE语句

    本文链接:https://www.haomeiwen.com/subject/ixdarctx.html