MySQL 条件查询

MySQL SELECT,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。

语法格式如下:

WHERE <查询条件> {<判定运算1><判定运算2>,…}

其中,判定运算其结果取值为 TRUE、FALSE 和 UNKNOWN。

判定运算的语法分类如下:

	<表达式1>{=|<|<=|>|>=|<=>|<>|!=}<表达式2><表达式1>[NOT]LIKE<表达式2><表达式1>[NOT][REGEXP|RLIKE]<表达式2><表达式1>[NOT]BETWEEN<表达式2>AND<表达式3><表达式1>IS[NOT]NULL

单一条件的查询语句

在表 tb_students_info 中查询身高为 170cm 的学生的姓名,输入的 SQL 语句和行结果如下所示。

mysql> use test_db
Database changed
mysql> SELECT name,height-> FROM tb_students_info-> WHERE height=170;
+-------+--------+
| name  | height |
+-------+--------+
| Susan |    170 |
+-------+--------+
1 row in set (0.17 sec)

该语句采用了简单的相等过滤,查询一个指定列 height 的具体值 170。

查询年龄小于 22 的学生的姓名,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT name,age-> FROM tb_students_info-> WHERE age<22;
+------+------+
| name | age  |
+------+------+
| John |   21 |
+------+------+
1 row in set (0.05 sec)

可以看到,查询结果中所有记录的 age 字段的值均小于 22 岁,而大于或等于 22 岁的记录没有被返回。

多条件的查询语句

使用 SELECT 查询时,可以增加查询的限制条件,这样可以使查询的结果更加精确。MySQL 在 WHERE 子句中使用 AND 操作符限定只有满足所有查询条件的记录才会被返回。

可以使用 AND 连接两个甚至多个查询条件,多个条件表达式之间用 AND 分开。

在 tb_students_info 表中查询 age 大于 21,并且 height 大于等于 175 的学生的信息,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT * FROM tb_students_info-> WHERE age>21 AND height>=175;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | height | login_date |
+----+--------+---------+------+------+--------+------------+
|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
+----+--------+---------+------+------+--------+------------+
3 rows in set (0.06 sec)

注意:上例的 WHERE 子句中只包含一个 AND 语句,把两个过滤条件组合在一起,实际上可以添加多个 AND 过滤条件,增加条件的同时增加一个 AND 关键字。

使用 LIKE 的模糊查询

字符串匹配的语法格式如下:

<表达式1> [NOT] LIKE <表达式2>

字符串匹配是一种模式匹配,使用运算符 LIKE 设置过滤条件,过滤条件使用通配符进行匹配运算,而不是判断是否相等进行比较。

相互间进行匹配运算的对象可以是 CHAR、VARCHAR、TEXT、DATETIME 等数据类型。运算返回的结果是 TRUE 或 FALSE。

利用通配符可以在不完全确定比较值的情形下创建一个比较特定数据的搜索模式,并置于关键字 LIKE 之后。可以在搜索模式的任意位置使用通配符,并且可以使用多个通配符。MySQL 支持的通配符有以下两种:

1 百分号(%)
百分号是 MySQL 中常用的一种通配符,在过滤条件中,百分号可以表示任何字符串,并且该字符串可以出现任意次。

使用百分号通配符要注意以下几点:

	MySQL 默认是不区分大小写的,若要区分大小写,则需要更换字符集的校对规则。百分号不匹配空值。百分号可以代表搜索模式中给定位置的 0 个、1 个或多个字符。尾空格可能会干扰通配符的匹配,一般可以在搜索模式的最后附加一个百分号。

2 下划线(_)
下划线通配符和百分号通配符的用途一样,下画线只匹配单个字符,而不是多个字符,也不是 0 个字符。

在 tb_students_info 表中,查找所有以“T”字母开头的学生姓名,输入的 SQL 的语句和执行结果如下所示。

mysql> SELECT name FROM tb_students_info-> WHERE name LIKE 'T%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.12 sec)

注意:在搜索匹配时,通配符“%”可以放在不同位置。

在 tb_students_info 表中,查找所有包含“e”字母的学生姓名,输入的 SQL 的语句和执行结果如下所示。

mysql> SELECT name FROM tb_students_info-> WHERE name LIKE '%e%';
+-------+
| name  |
+-------+
| Green |
| Henry |
| Jane  |
+-------+
3 rows in set (0.00 sec)

由执行结果可以看出,该语句查询字符串中包含字母 e 的学生的姓名,只要名字中有字母 e,其前面或后面无论有多少个字符,都满足查询的条件。

在 tb_students_info 表中,查找所有以字母“y”结尾,且“y”前面只有 4 个字母的学生的姓名,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT name FROM tb_students_info-> WHERE name LIKE '____y';
+-------+
| name  |
+-------+
| Henry |
+-------+
1 row in set (0.00 sec)

日期字段作为条件的查询语句

以日期字段作为条件,可以使用比较运算符设置查询条件,也可以使用 BETWEEN AND 运算符查询某个范围内的值。

BETWEEN AND 用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结束值,若字段值满足指定的范围查询条件,则这些记录被返回。

在表 tb_students_info 中查询注册日期在 2016-01-01 之前的学生的信息,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT * FROM tb_students_info-> WHERE login_date<'2016-01-01';
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | height | login_date |
+----+-------+---------+------+------+--------+------------+
|  1 | Dany  |       1 |   25 | F    |    160 | 2015-09-10 |
|  3 | Henry |       2 |   23 | M    |    185 | 2015-05-31 |
|  6 | John  |       2 |   21 | M    |    172 | 2015-11-11 |
|  8 | Susan |       4 |   23 | F    |    170 | 2015-10-01 |
+----+-------+---------+------+------+--------+------------+
4 rows in set (0.04 sec)

在表 tb_students_info 中查询注册日期在 2015-10-01 和 2016-05-01 之间的学生的信息,输入的 SQL 语句和执行结果如下所示。

mysql> SELECT * FROM tb_students_info-> WHERE login_date-> BETWEEN '2015-10-01'-> AND '2016-05-01';
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | height | login_date |
+----+-------+---------+------+------+--------+------------+
|  5 | Jim   |       1 |   24 | M    |    175 | 2016-01-15 |
|  6 | John  |       2 |   21 | M    |    172 | 2015-11-11 |
|  7 | Lily  |       6 |   22 | F    |    165 | 2016-02-26 |
|  8 | Susan |       4 |   23 | F    |    170 | 2015-10-01 |
+----+-------+---------+------+------+--------+------------+
4 rows in set (0.02 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开红数显示服务器为空,网维大师常见问题:图标空白或红号问号

【问题现象】客户机打开游戏菜单后出现图标异常&#xff0c;只能看到游戏文字看不到图标或图标&#xff1f;号&#xff0c;分别如下图两种情况或【原因说明】出现这种问题一般是由于网维大师服务端的游戏图标缓存文件损坏导致。而导致图标缓存损坏的原因一般是由于&#xff1a;…

shell脚本给mysql创建表_shell脚本:实现MySQL创建数据库和删除数据库的脚本

OS操作系统&#xff1a;CentOS release 6.8 (Final)[rootsky9896chapter11]# vi createdatabase.sh #批量创建数据库#!/bin/shPATH"/var/lib/mysql/bin:$PATH"MYUSERrootMYPASS*******MYCMD"mysql -u$MYUSER -p$MYPASS "for dbname in test skyboy skygirl…

MySQL 常用运算符

MySQL 数据库中的表结构确立后&#xff0c;表中的数据代表的意义就已经确定。而通过 MySQL 运算符进行运算&#xff0c;就可以获取到表结构以外的另一种数据。 例如&#xff0c;学生表中存在一个 birth 字段&#xff0c;这个字段表示学生的出生年份。而运用 MySQL 的算术运算符…

mysql连接不上远程数据库_Mysql 连接不上远程数据库,求助

如题&#xff0c;放假在家玩树莓派集群&#xff0c;其中一台连不上数据库&#xff0c;今日怪事1状态描述&#xff1a;平台树莓派 4B&#xff0c;架构 armv7&#xff0c;系统 raspbian 最新( debian10 )数据库版本 mariadb-server version: 10.3.22安装 mariadb-server & cl…

dicom虚拟打印服务器,DICOM打印服务器软件

dicom打印服务器|dicom相机|PrintSCP|dicom胶片打印服务器|与多家PACS产品对接通过dicom胶片打印服务器(PrintSCP)&#xff0c;接收放射设备(CT、ECT、CR、DR、MRI、DSA等)或PACS工作站的“胶片打印”指令&#xff0c;将胶片打印到Windows打印机&#xff0c;从而替代常规的激光…

MySQL 内连接查询

MySQL FROM 子句中使用关键字 INNER JOIN 连接两张表&#xff0c;并使用 ON 子句来设置连接条件。如果没有任何条件&#xff0c;INNER JOIN 和 CROSS JOIN 在语法上是等同的&#xff0c;两者可以互换。 语法格式如下&#xff1a; SELECT <列名1&#xff0c;列名2 …> F…

如何进入embl的ebi网站fasta3服务器,The EMBL-EBI bioinformatics web and programmatic tools framework...

摘要&#xff1a;Since 2009 the EMBL-EBI Job Dispatcher framework has provided free access to a range of mainstream sequence analysis applications. These include sequence similarity search services (https://www.ebi.ac.uk/Tools/sss/) such as BLAST, FASTA and…

mysql 时间 设计模式_数据库时间设计模式

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

超微服务器开机启动项目怎么设置,超微服务器启动项设置

超微服务器启动项设置 内容精选换一换微服务部署完后&#xff0c;您可以根据微服务的运行情况进行微服务的治理。您可以先在“服务目录 > 微服务列表”中创建微服务&#xff0c;启动微服务后&#xff0c;根据yaml文件的配置&#xff0c;会在对应的服务下注册服务实例。如果没…

MySQL 外连接查询

MySQL 中内连接是在交叉连接的结果集上返回满足条件的记录&#xff1b;而外连接先将连接的表分为基表和参考表&#xff0c;再以基表为依据返回满足和不满足条件的记录。 外连接更加注重两张表之间的关系。按照连接表的顺序&#xff0c;可以分为左外连接和右外连接。 左外连接…

mono for android mysql_mono for android 自定义titleBar Actionbar 顶部导航栏 修改 样式 学习...

以前的我是没有做笔记的习惯的&#xff0c;学习了后觉得自己能记住&#xff0c;但是最近发现很多学的东西都忘记了&#xff0c;所有现在一有新的知识&#xff0c;就记下来吧。最近又做一个mono for android 的项目 这次调整比较大&#xff0c;上次做的点餐系统很好用 &#xff…

mysql srid_mysql8 参考手册--索引优化

主键优化表的主键表示您在最重要的查询中使用的一列或一组列。它具有关联的索引&#xff0c;可提高查询性能。查询性能可以从NOT NULL优化中受益&#xff0c;因为它不能包含任何NULL值。使用InnoDB存储引擎&#xff0c;可以对表数据进行物理组织&#xff0c;以根据一个或多个主…

MySQL 分组查询

MySQL SELECT 语句&#xff0c;允许使用 GROUP BY 子句&#xff0c;将结果集中的数据行根据选择列的值进行逻辑分组&#xff0c;以便能汇总表内容的子集&#xff0c;实现对每个组而不是对整个结果集进行整合。 语法格式如下&#xff1a; GROUP BY { <列名> | <表达式…

MySQL 指定过滤条件

MySQL SELECT 语句&#xff0c;除了能使用 GROUP BY 子句分组数据外&#xff0c;还可以使用 HAVING 子句过滤分组&#xff0c;在结果集中规定了包含哪些分组和排除哪些分组。 语法格式如下&#xff1a; HAVING <条件>其中&#xff0c;<条件>指的是指定的过滤条件…

mysql 终端 远程访问,通过终端连接到远程mysql

For a test I set up user mysql user with % access. When I try to connect from a remote machine I get:Enter password:Then immediately get this:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘xxxxxxx’ (1)Any ideas解决方案Try to comment the bind-addr…

MySQL 正则表达式查询

MySQL中正式表达式通常被用来检索或替换符合某个模式的文本内容&#xff0c;根据指定的匹配模式匹配文中符合要求的特殊字符串。 例如&#xff0c;从一个文件中提取电话号码&#xff0c;查找一篇文章中重复的单词或替换用户输入的敏感语汇等&#xff0c;这些地方都可以使用正则…

mysql修改最大文件数_mysql更改最大打開文件數

1. 查看内核限制# ulimit -n655352. 修改 my.cnf 限制# vi /etc/my.cnf[mysqld]open_files_limit 655353. 重启 mysqld# /etc/init.d/mysql restart4. 查看结果mysql>show global variables like %open%;| open_files_limit | 65535 || table_open_cache | 1…

MySQL 插入语句

数据库与表创建成功以后&#xff0c;需要向数据库的表中插入数据。在 MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。 基本语法 INSERT 语句有两种语法形式&#xff0c;分别是 INSERT…VALUES 语句和 INSERT…SET 语句。 1 INSERT…VALUES语句 …

onmp mysql端口_ONMP 安装教程

之前用过极路由 1s&#xff0c;刷了恩山 H大的固件&#xff0c;发现内置了 web 环境&#xff0c;没想到一个路由器都能跑的动 LNMP。我之前最极限的尝试就是在一个 4刀3年 的 sentris ovz 小鸡上跑过 WordPress &#xff0c;那台小鸡 配置很低&#xff0c;只有 64M 的内存&…

MySQL 修改数据

MySQL 中&#xff0c;可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表&#xff0c;语法格式为&#xff1a; UPDATE <表名> SET 字段 1值 1 [,字段 2值 2… ] [WHERE 子句 ] [ORDER BY 子句] [LIMIT 子句]语法…