Sql 条件查询

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Sql 条件查询

主要包含常用运算符和排序操作:

1、常用条件运算符(条件)

条件查询需要用到 where 语句,where 必须放到 from 语句表的后面 ,运算符(条件)放在 where 后。

image.png


注:Like 中的表达式必须放到单引号或双引号中


2、例子:

-- 1、= 等于
SELECT * FROM `user` WHERE age =23
-- 2、<>或!= 不等于
SELECT * FROM `user` WHERE age <> 23
-- 3、< 小于
SELECT *FROM `user` WHERE age<30
-- 4、<= 小于等于
SELECT *FROM `user` WHERE age<=30
-- 5、> 大于
SELECT *FROM `user` WHERE age>30
-- 6、>= 大于等于
SELECT *FROM `user` WHERE age>=30
-- 7、between …and …. 两个值之间,等同于 >= and <=
SELECT *FROM `user` WHERE age between 30 and 40
-- 8、is null 为 null(is not null 不为空)
SELECT *FROM `user` WHERE age is null
SELECT *FROM `user` WHERE age is not null
-- 9、and 并且
SELECT *FROM `user` WHERE classid =2 and age <40
-- 10、or 或者
SELECT *FROM `user` WHERE age =30 or age =40
-- 11、in 包含,相当于多个 or(not in 不在这个范围中)
SELECT *FROM `user` WHERE age in (30,40,43,45)
-- 12、not not 可以取非,主要用在 is 或 in 中
SELECT *FROM `user` WHERE age not in (30,40,43,45)
-- 13、like like 称为模糊查询,支持%或下划线匹配,%匹配任意个字符,下划线,一个下划线只匹配一个字符
-- 模糊查询意指定字符开始
SELECT *FROM `user` WHERE `name` like '小%'
-- 模糊查询意指定字符结束
SELECT *FROM `user` WHERE `name` like '%小'
-- 模糊查询包含指定字符
SELECT *FROM `user` WHERE

image.png


3、user 表里面的数据

4、排序数据

排序采用 order by 子句,order by 后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by 默认采用升序,如果存在 where 子句那么 order by 必须放到 where 语句的后面


如果包含 where 语句 order by 必须放到 where 后面,如果没有 where 语句 order by 放到表的后面


例子:

-- 排序 (单字段排序) 年龄倒叙排序(排序默认是正序的)
SELECT *FROM `user` ORDER BY age desc
-- 排序 (多字段排序) 年龄倒叙排序,分数正排序
SELECT *FROM `user` ORDER BY age desc,grade

5、表达式的优先级

有()先运行括号里面的

-- 表达式的优先级
-- 查询分数大于30,并且classid 是 2 或者 3
--  --查询结果错误(查询的结果:筛选出classid 是对的,但是分数小于30的也会查询出来)
SELECT * FROM `user` WHERE grade >30 AND classid =2 OR classid =3
--  --查询结果正确
SELECT * FROM `user` WHERE grade >30 AND (classid =2 OR classid =3)
SELECT * FROM `user` WHERE grade >30 AND classid IN(2,3)

6、注

1、因为 null 类型比较特殊,必须使用 is 来比较


7、mysql 在window和linux 大小写问题

MySQL 在 windows 下是不区分大小写的,将 script 文件导入 MySQL 后表名也会自动转化为小写,结果再 想要将数据库导出放到 linux 服

务器中使用时就出错了。因为在 linux 下表名区分大小写而找不到表,查了很多都是说在 linux 下更改 MySQL 的设置使其也不区分大小写,但是

有没有办法反过来让 windows 下大小写敏感呢。其实方法是一样的,相应的更改 windows 中 MySQL 的设置。


具体操作:

在 MySQL 的配置文件 my.ini 中增加一行:

lower_case_table_names = 0

其中 0:区分大小写,1:不区分大小写

MySQL 在 Linux 下数据库名、表名、列名、别名大小写规则是这样的:
 1、数据库名与表名是严格区分大小写的;
 2、表的别名是严格区分大小写的;
 3、列名与列的别名在所有的情况下均是忽略大小写的;
 4、变量名也是严格区分大小写的; MySQL 在 Windows 下都不区分大小写
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
SQL 资源调度 数据库
深入探究SQL查询语句执行过程
深入探究SQL查询语句执行过程
27 2
|
11天前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
21 1
|
1月前
|
SQL 存储 缓存
高基数 GroupBy 在 SLS SQL 中的查询加速
本文详细介绍了SLS中的高基数GroupBy查询加速技术。
|
1月前
|
SQL 运维 程序员
一个功能丰富的SQL审核查询平台
一个功能丰富的SQL审核查询平台
|
15天前
|
SQL
SQL: 巧妙使用CASE WHEN实现查询
文章演示了如何利用SQL中的CASE WHEN语句来有效地进行条件性聚合查询,通过具体示例展示了CASE WHEN在统计分析中的应用技巧。
34 0
|
2月前
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age &gt; 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
41 0
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
71 0
|
2月前
|
Java UED 开发者
当错误遇上Struts 2:一场优雅的异常处理盛宴,如何让错误信息成为用户体验的救星?
【8月更文挑战第31天】在Web应用开发中,异常处理对确保用户体验和系统稳定性至关重要。Struts 2 提供了完善的异常处理机制,包括 `exception` 拦截器、`ActionSupport` 类以及 OGNL 表达式,帮助开发者优雅地捕获和展示错误信息。本文详细介绍了 Struts 2 的异常处理策略,涵盖拦截器配置、错误信息展示及自定义全局异常处理器的实现方法,使应用程序更加健壮和用户友好。
39 0
|
2月前
|
Java XML Maven
跨越时代的飞跃:Struts 2 升级秘籍——从旧版本无缝迁移到最新版,焕发应用新生!
【8月更文挑战第31天】随着软件技术的发展,Struts 2 框架也在不断更新。本文通过具体案例指导开发者如何从旧版平滑升级到 Struts 2.6.x。首先更新 `pom.xml` 中的依赖版本,并执行 `mvn clean install`。接着检查 `struts.xml` 配置,确保符合新版本要求,调整包扫描器等设置。审查 Action 类及其注解,检查配置文件中的弃用项及插件。更新自定义拦截器实现,并验证日志配置。最后,通过一系列测试确保升级后的系统正常运行。通过这些步骤,可以顺利完成 Struts 2 的版本升级,提升应用的安全性和性能。
106 0