SQL w3schools 自学(2)

1.SELECT TOP 子句

该子句用于指定要返回的记录数。SELECT TOP

SQL Server / MS Access 语法:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL语法:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12 语法:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

2.SQL 聚合函数

聚合函数通常与语句的子句一起使用。该子句将结果集拆分为值组和聚合函数可用于为每个组返回一个值。GROUP BY SELECT GROUP BY

最常用的 SQL 聚合函数有:

  • MIN()- 返回所选列中的最小值
  • MAX()- 返回所选列中的最大值
  • COUNT()- 返回集合中的行数
  • SUM()- 返回数值列的总和
  • AVG()- 返回数值列的平均值

聚合函数会忽略null值(除特殊情况外)COUNT()

1) MIN() 和 MAX() 函数

min()

SELECT MIN(column_name)
FROM table_name
WHERE condition;

max()

SELECT MAX(column_name)
FROM table_name
WHERE condition;

当您使用 `OR` 运算符时,返回的列将没有描述性名称。要为列指定描述性名称,请使用关键字: `MIN()` `MAX()` `AS`

eg.

SELECT MIN(Price) AS SmallestPrice
FROM Products;

MIN() 与 GROUP BY

我们使用函数和子句,以返回每个类别在“Products”表中最小的价格: MIN() GROUP BY

SELECT MIN(Price) AS SmallestPrice, CategoryID
FROM Products
GROUP BY CategoryID;

2) COUNT()函数

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

你可以使用列名代替星号(*)符号。

如果使用列名代替,则不会计算NULL值。(*)

添加 WHERE 子句

eg.

SELECT COUNT(ProductID)
FROM Products
WHERE Price > 20;

忽略重复项

您可以使用函数中的关键字忽略重复项。DISTINCT COUNT()

如果指定,则指定列的值相同的行将计为一行。DISTINCT

SELECT COUNT(DISTINCT Price)
FROM Products;

使用别名

使用关键字为计数列命名。AS

eg.

SELECT COUNT(*) AS [Number of records]
FROM Products;

COUNT() 与 GROUP BY 一起使用

我们使用函数和子句,以返回 Products 表中每个类别的记录数: `COUNT() GROUP BY`

eg.

SELECT COUNT(*) AS [Number of records], CategoryID
FROM Products
GROUP BY CategoryID;

3) SUM() 函数

返回总和

SELECT SUM(column_name)
FROM table_name
WHERE condition;

WHERE, AS, GROUP BY 同上

4) AVG() 函数

SELECT AVG(column_name)
FROM table_name
WHERE condition;

WHERE, AS, GROUP BY 同上

3.LIKE 运算符

有两个通配符通常与运算符结合使用: LIKE

  • 百分号表示零个、一个或多个字符%
  • 下划线符号表示一个字符_
    SELECT column1, column2, ...
    FROM table_name
    WHERE columnN LIKE pattern;

 _ 通配符表示单个字符。

它可以是任何字符或数字,但每个字符或数字代表一个字符,并且只有一个字符。_

eg.

返回以“L”开头的城市的所有客户,后跟一个通配符,然后是“nd”,然后是两个通配符:

SELECT * FROM Customers
WHERE city LIKE 'L_nd__';

% 通配符

通配符表示任意数量的字符,甚至零个字符。%

eg.从包含字母“L”的城市返回所有客户:

SELECT * FROM Customers
WHERE city LIKE '%L%';

若要返回以特定字母或短语开头的记录,请在字母或短语的末尾添加% eg.a%

结尾的话,在字母或者短语开头加% eg. %a

若要返回包含特定字母或短语的记录,请在字母或短语之前和之后添加% eg.%a%

4.通配符

通配符用于替换字符串中的一个或多个字符。

通配符与运算符一起使用。该运算符在子句中用于搜索列中的指定模式。

SymbolDescription
%表示零个或多个字符
_表示单个字符。
[]它代表方括号“*”中的任意一个字符。
^表示不在方括号(* [)内的任何字符。
-表示指定范围内的任意单个字符。
{} 代表任何转义字符

* 在 PostgreSQL 和 MySQL 数据库中不受支持。

** 仅在 Oracle 数据库中受支持。

eg.返回所有以“b”、“s”或“p”开头的客户:

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

返回所有以 “a”、“b”、“c”、“d”、“e”或“f”:

SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';

如果未指定通配符,则短语必须具有完全匹配才能返回结果。

eg.

SELECT * FROM Customers
WHERE Country LIKE 'Spain';

eg.选择首字母不是“a”或“c”或“f”的所有记录

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

 

 

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值