肝通宵写了三万字把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

相关文章
|
6天前
|
SQL 数据库
SQL FORMAT() 函数
SQL FORMAT() 函数
15 2
|
9天前
|
SQL 数据库
SQL SUM() 函数
SQL SUM() 函数
11 0
|
8天前
|
SQL 数据库
SQL LCASE() 函数
SQL LCASE() 函数
16 7
|
8天前
|
SQL 数据库
SQL EXISTS 运算符
SQL EXISTS 运算符
12 5
|
8天前
|
SQL 数据库
SQL UCASE() 函数
SQL UCASE() 函数
13 4
|
7天前
|
SQL
SQL ROUND() 函数
SQL ROUND() 函数
12 1
|
8天前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之 MySQL数据库中,执行delete命令删除数据后,存储空间通常不会立即释放,该如何优化
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6天前
|
SQL 数据库
SQL NOW() 函数
SQL NOW() 函数
5 0
|
7天前
|
SQL 关系型数据库 MySQL
SQL LEN() 函数
SQL LEN() 函数
9 0
|
7天前
|
SQL 数据库
SQL MID() 函数
SQL MID() 函数
9 0