type
status
date
slug
summary
tags
category
icon
password

sql语句的增、删、改、查

  1. 从表中选取数据
从表中选取符合条件的数据
比较下面两者输出结果的不同:
星号(*)代表全部列的意思。SQL中可以随意使用换行符,不影响语句执行(但不可插入空行)。设定汉语别名时需要使用双引号(")括起来。在SELECT语句中使用DISTINCT可以删除重复行。注释是SQL语句中用来标识说明或者注意事项的部分。分为: 1行注释"-- " 和多行注释两种"/* */"。
  1. 算术运算符和比较运算符 SQL语句中可以使用的四则运算的主要运算符如下:
含义
运算符
加法
+
减法
-
乘法
*
除法
/
示例:
SQL常见比较运算符如下:
运算符
含义
=
和 ~ 相等
<>
和 ~ 不相等
>=
大于等于 ~
>
大于 ~
<=
小于等于 ~
<
小于 ~
SELECT子句中可以使用常数或者表达式。使用比较运算符时一定要注意不等号和等号的位置。字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。
  1. 逻辑运算符 NOT运算符
NOT sale_price >= 1000 与 sale_price < 1000 是等价的。虽然通过 NOT 运算符否定一个条件可以得到相反查询条件的结果,但是其可读性明显不如显式指定查询条件,因此,不可滥用该运算符
AND运算符和OR运算符
AND 相当于“并且”,类似数学中的取交集 OR 相当于“或者”,类似数学中的取并集
如果我要查询商品种类为办公用品”并且“登记日期是 2009 年 9 月 11 日或者 2009 年 9 月 20 日
以上查询结果是错误的--错误的原因是 AND 运算符优先于 OR 运算符 ,想要优先执行OR运算,可以使用括号
运算符优先级请参考下图
notion image

对表进行聚合查询

  1. 聚合函数
    1. SQL中用于汇总的函数叫做聚合函数。以下五个是最常用的聚合函数
      • SUM:计算表中某数值列中的合计值
      • AVG:计算表中某数值列中的平均值
      • MAX:计算表中任意列中数据的最大值,包括文本类型和数字类型
      • MIN:计算表中任意列中数据的最小值,包括文本类型和数字类型
      • COUNT:计算表中的记录条数(行数)
  1. 使用 DISTINCT 进行删除重复值的聚合运算
    1. 当对整表进行聚合运算时,表中可能存在多行相同的数据,比如商品类型(product_type 列)。
      在某些场景下,就不能直接使用聚合函数进行聚合运算了,必须搭配 DISTINCT 函数使用。
      比如:要计算总共有几种咖啡类型在售,该怎么计算呢?
      如前所述,DISTINCT 函数用于删除重复数据,应用 COUNT 聚合函数之前,加上 DISTINCT 关键字就可以实现需求。
      聚合函数应用法则
      • COUNT 聚合函数运算结果与参数有关,COUNT(*) / COUNT(1) 得到包含 NULL 值的所有行,COUNT(<列名>) 得到不包含 NULL 值的所有行。
      • 聚合函数不处理包含 NULL 值的行,但是 COUNT(*) 除外。
      • MAX / MIN 函数适用于文本类型和数字类型的列,而 SUM / AVG 函数仅适用于数字类型的列。
      • 在聚合函数的参数中使用 DISTINCT 关键字,可以得到删除重复值的聚合结果。
  1. 对表进行分组
    1. GROUP BY语句
      当你想将进行分组汇总时(即:将现有的数据按照某列来汇总统计),GROUP BY可以帮助你:
      GROUP BY的子句书写顺序有严格要求,不按要求会导致SQL无法正常执行,目前出现过的子句顺序为:
    2. SELECT ➡️ 2. FROM ➡️ 3. WHERE ➡️ 4. GROUP BY 其中前三项用于筛选数据,GROUP BY对筛选出的数据进行处理
    3. 在WHERE子句中使用GROUP BY
  1. 为聚合结果指定条件
    1. 用 HAVING 得到特定分组
      将表使用 GROUP BY 分组后,怎样才能只取出其中两组?这里 WHERE 不可行,因为,WHERE子句只能指定记录(行)的条件,而不能用来指定组的条件(例如,“数据行数为 2 行”或者“平均值为 500”等)。
      值得注意的是:HAVING 子句必须与 GROUP BY 子句配合使用,且限定的是分组聚合结果,WHERE 子句是限定数据行(包括分组列),二者各司其职,不要混淆。
      HAVING特点:
  1. 对查询结果进行排序
    1. ORDER BY
      在某些场景下,需要得到一个排序之后的结果,比如运动员在奥运赛场的得分,组委会用得分倒序结果来判定金银铜牌到底花落谁家。而 SQL 语句执行结果默认随机排列,想要按照顺序排序,需使用 ORDER BY 子句。
      其中,参数 ASC 表示升序排列,DESC 表示降序排列,默认为升序,此时,参数 ASC 可以缺省。
      示例:按照销售价格倒序排列
      如果有多列排序需求,只需在 ORDER BY 子句中依次书写排序列 + 排序参数即可,详见如下代码:
      需要特别说明的是:由于 NULL 无法使用比较运算符进行比较,也就是说,无法与文本类型,数字类型,日期类型等进行比较,当排序列存在 NULL 值时,NULL 结果会展示在查询结果的开头或者末尾。
render部署aurora初始化服务器安装配置
Loading...
2021-2024 IMyself.

IMyself | 前端小萌新~