肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!(三)

简介: 肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!

MIN() 和 MAX()函数求最大最小值

MIN()函数返回所选列的最小值。MAX()函数返回所选列的最大值。

MIN() 语法

SELECT MIN(column_name)
FROM table_name
WHERE condition;

MAX() 语法

SELECT MAX(column_name)
FROM table_name
WHERE condition;

现在我们换一个新的表Product如下:

1.png

MIN() 示例

查找最便宜产品的价格:

SELECT MIN(Price) AS SmallestPrice
FROM Products;

显示如下:

1.png

MAX() 示例

查找最贵产品的价格:

SELECT MAX(Price) AS LargestPrice
FROM Products;

返回如下:

1.png

练习:

使用该MIN函数选择Price列的最小值的记录。

SELECT  MIN(Price) FROM  Products;

COUNT()、AVG() 和 SUM()函数

该COUNT()函数返回与指定条件匹配的行数。

COUNT() 语法

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

该AVG()函数返回数字列的平均值。

AVG() 语法

SELECT AVG(column_name)
FROM table_name
WHERE condition;

该SUM()函数返回数字列的总和。

SUM() 语法

SELECT SUM(column_name)
FROM table_name
WHERE condition;

我们还是用表product

1.png

COUNT() 示例

查找产品数量:

SELECT COUNT(ProductID)
FROM Products;

注意: NULL 值不计算在内。

AVG() 示例

查找所有产品的平均价格:

SELECT AVG(Price)
FROM Products;

注意: NULL 值被忽略。

假设我现在有“OrderDetails”表如下:1.png

SUM() 示例

查找“OrderDetails”表中“Quantity”字段的总和:

SELECT SUM(Quantity)
FROM OrderDetails;

返回如下:

1.png

注意: NULL 值被忽略。练习:返回Price值设置为18的记录数

SELECT COUNT(*) FROM Products
WHERE Price = 18;

LIKE运算符

该LIKE运算符在 WHERE子句中用于搜索列中的指定模式。有两个通配符经常与 LIKE运算符结合使用:

百分号 (%) 代表零、一个或多个字符

下划线 () 代表一个,单个字符

但是呢注意: MS Access 使用星号 (*) 代替百分号 (%),使用问号 (?) 代替下划线 ()

当然百分号和下划线也可以组合使用!

LIKE 语法

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

提示:您还可以使用 AND或OR运算符组合任意数量的条件。

以下是一些示例,显示了LIKE带有“%”和“_”通配符的不同运算符:

1.png

所对应意思为:

第一行:匹配任何以a开头的字段

第二行:匹配任何以a结尾的字段

第三行:匹配任何具有“or”的字段

第四行:查找第二个位置有“r”的任何值

第五行:查找任何以“a”开头且长度至少为 2 个字符的值

第六行:查找任何以“a”开头且长度至少为 3 个字符的值

第七行:查看以“a”开头并以“o”结尾的任何值

比如我们还是有如下Customers”表:

1.png

LIKE 示例

选择 CustomerName 以“a”开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

选择 CustomerName 以“a”结尾的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '%a';

选择 CustomerName 中任何位置都有“或”的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';

选择 CustomerName 中第二个位置为“r”的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';

选择 CustomerName 以“a”开头且长度至少为 3 个字符的所有客户:

SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';

选择 ContactName 以“a”开头并以“o”结尾的所有客户:

SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';

选择 CustomerName 不以“a”开头的所有客户:

SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';

通配符*?!等

这是英文文档所有通配符描述(实在不想翻译,大家自己看看)

1.png

1.png

假设我们还是有如下“Customers”表:

1.png

使用 % 通配符

选择 City 以“ber”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE 'ber%';

选择 City 包含“es”的所有客户:

SELECT * FROM Customers
WHERE City LIKE '%es%';

返回如下:1.png

使用 _ 通配符

选择 City 以任何字符开头,后跟“ondon”的所有客户:

SELECT * FROM Customers
WHERE City LIKE '_ondon';

选择 City 以“L”开头、后跟任意字符、“n”、任意字符、“on”的所有客户:

SELECT * FROM Customers
WHERE City LIKE 'L_n_on';

使用 [charlist] 通配符

选择 City 以“b”、“s”或“p”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE '[bsp]%';

选择 City 以“a”、“b”或“c”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE '[a-c]%';

使用 [!charlist] 通配符

选择 City 不是以“b”、“s”或“p”开头的所有客户:

SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';

或者

SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';

IN运算符

IN运算符允许您在 WHERE子句中指定多个值。

IN操作是针对多个速记 OR条件。

IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

我们还是以“Customers”表为例子:

1.png

IN 运算符示例

选择位于’Germany’, ‘France’, 'UK’的所有客户:

SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');

选择不在选择位于’Germany’, ‘France’, 'UK’的所有客户:

SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');

选择与 Suppliers来自相同国家的所有客户:

SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);

返回如下

1.png

相关文章
|
10天前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
64 9
|
29天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
92 6
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
95 11
|
2月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
SQL 存储 数据库
SQL Server函数与存储过程 计算时间
SQL Server函数与存储过程 计算时间 一、通过一个开始时间、结束时间计算出一个工作日天数(不包含工作日与节假日);   1、函数 --创建函数,参数 @bengrq 开始时间,@endrq 结束时间 create function [dbo].
1809 0
|
SQL 存储 Perl
PL/SQL函数和存储过程
前言 活到老,学到老。 基本概念 --ORACLE 提供可以把PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。
1444 0
|
SQL 存储 Perl
PL/SQL学习笔记_03_存储函数与存储过程
ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。 存储函数:有返回值,创建完成后,通过select function() from dual;执行 存储过程:由于没有返回值,创建完成后,不能使用select语句,只能使用pl/sql块执行   一.
1253 0

热门文章

最新文章