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 。

mysql的sql语句where,SQL之WHERE语句相关推荐

  1. mysql数据库会同时执行sql吗_mysql 一次执行多条sql语句

    最近要做一个软件升级,其中涉及到数据库表字段的变动(新增或删除或修改),所有的关于数据库的变动的sql语句都是存放在Sqlupdate.sql文件中,每次升级的时候都需要执行一次Sqlupdate.s ...

  2. MySQL用户管理、常用sql语句、数据库备份

    13.4 MySQL用户管理 创建用户并授权 指定登录IP [root@centos-01linux ~]# mysql -uroot -p Enter password: Welcome to th ...

  3. 两种方式:mysql查看正在执行的sql语句

    mysql查看正在执行的sql语句 2015年08月21日 17:32:59 阅读数:15398 有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史 ...

  4. 如何在mysql查找效率慢的SQL语句

    如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启 ...

  5. MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句

    文章目录 一.常用的 SQL 语句 (一)查看当前登录用户 (二)查看当前数据库 (三)如何查看全部用户? (四)创建数据库 (五)选择要操作的数据库 (六)创建表 (七)查看表的结构 (八)往表中插 ...

  6. MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏

    文章目录 1.SQL语言的分类 2.SQL语言的规则与规范 3.基本的SELECT语句 4.DESCRIBE显示表结构 5.WHERE过滤数据 1.SQL语言的分类 SQL语言在功能上主要分为如下3大 ...

  7. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

  8. mysql命令书写顺序_MySQL SQL语句书写顺序和执行顺序

    SQL语句书写顺序和执行顺序 (7) SELECT (8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING (9 ...

  9. mysql select call_MySQL的SQL语句 - 数据操作语句(1)- CALL 语句

    CALL 语句 1. CALL sp_name([parameter[,...]]) 1. CALL sp_name[()] CALL 语句调用 CREATE PROCEDURE 定义的存储过程. 如 ...

  10. mysql面试题sql语句_数据库MySQL经典面试题之SQL语句

    数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex ...

最新文章

  1. 自然语言处理十问!独家福利
  2. ICRA 2022 | 基于多模态变分自编码器的任意时刻三维物体重建
  3. vba excel 开发游戏_为什么要学习VBA?
  4. 018_Session
  5. Qt CheckBox的使用
  6. java不可编辑的文本框_如何使编辑文本不可编辑,但在JAVA中可点击
  7. boost::make_ready_future相关的测试程序
  8. 数据结构 【实验7 二叉树基本操作】
  9. Linux云服务器安装Redis并设置远程连接设置开机自启
  10. 使用 python 的 urllib2和 urllib模块爆破 form 表单的简易脚本
  11. python里面的list
  12. 训练日志 2019.1.26
  13. 【原创】MySQL里求给定的时间是所在月份的第几个礼拜
  14. OpenGL C#绘图环境配置
  15. 计算机二级分省和国家吗,计算机国家二级和省二级有什么区别?
  16. 中国的网站能活几天?
  17. 【Spring】概述及IOC理论推导
  18. Excel十八个快捷键
  19. 2021前端经典面试题
  20. 糖尿病性视网膜病变分级诊断

热门文章

  1. 医院耗材管理系统开发_15
  2. 最简单的爬虫代码 python_python爬虫最简单代码
  3. CarMaker快速入门第四课开发48V P1混动系统
  4. 二维凸包算法(Andrew算法)
  5. 基于java的田径运动会报名系统
  6. Java基础三:Java 核心技术
  7. 滤波器: 滤波器设计软件
  8. 嵌入式linux中文繁体字库,嵌入式Linux下中文字体显示
  9. 全国java二级考试范围,全国计算机二级Java考试大纲
  10. access mysql odbc驱动程序_access odbc驱动程序