第二部分 SQL

这篇博客详细介绍了SQL中的DQL,包括SELECT语句的关键字如AS、DISTINCT、ORDER BY,WHERE和HAVING子句的条件查询,以及聚合函数COUNT、MAX、MIN、SUM和AVG的应用。同时强调了GROUP BY子句在分组查询中的重要性。
摘要由CSDN通过智能技术生成

分类

  1. DDL(Data definition language) 定义对象:库表列等。

  2. DML(Data manipulation language) 增删改:数据/记录

  3. DCL(Data control language) 访问权限和安全级别

  4. DQL(Data query language) 查select

1. DQL

  1. SELECT FROM + 字段1,字段2(表达式、常量、函数等)
  2. WHERE + 表名
  3. GROUP BY (对结果分组)
  4. HAVING (分组后的行条件)
  5. ORDER BY (对结果分组)
  6. LIMIT (结果限定)

1. select 可加的关键字

取别名:AS
拼接两个columns:concat(str1,str2)
去重:distinct
查看表的结构:Desc xx;show columns from xx表;
判断是否为空:select if null(判断的值,替换的值)

2.where条件查询

在where句子中可以使用如下运算符和关键字

  • =、!=、<>、<、<=、>、>=;
  • AND、OR、NOT (&&、||、!)
  • BETWEEN…AND、IN(set)、IS NULL
  • 模糊查询
    • like / not like : _ 一个字符;% 0~多个字符
      e.g. where name like 'e’;
      e.g. where name like '%e
      _ _ _ ’ ;
    • between and:是否在指定的区间范围,两个区间值不能调换顺序
    • 两个区间值包含: >=左区间 and <=右区间
    • in / not in:是否属于(x,x,x)之间
    • is null / is not null
      1. = 只判断普通的内容
      2. is null 可判断null
      3. <=>安全等于,即能判断普通内容,又能判断null

3. ORDER BY 可多个

  1. 按单个字段进行升序:asc(不写默认升序) 降序:Desc
  2. 按多个字段排序
  3. 按表达式排序
  4. 按别名排序
  5. 按函数排序

常见函数

MySQL数据库提供了很多函数包括:
1. 数学函数;
2. 字符串函数;
3. 日期和时间函数;
4. 条件判断函数;流程控制函数;

5. 系统信息函数;
6. 加密函数;
7. 格式化函数;

1)、数学函数

ABS(x)返回x的绝对值
CEIL(x)返回大于x的最小整数值(ceil(-1.09)//-1 ceil(1.09)//2 ceil(0.09)//1)向上取整
FLOOR(x)返回大于x的最大整数值(FLOOR(-1.09)//-2 FLOOR(1.09)//1 FLOOR(0.09)//0)
MOD(x,y)返回x/y的模 (取余 mod(-10,3)// -1)
RAND(x)返回0~1的随机值
ROUND(x,y)返回参数x的四舍五入的有y位的小数的值(round(-1.87567)//2 round(1.87567,2)//1.88)
TRUNCATE(x,y)返回数字x截断为y位小数的结果(不四舍五入 Truncate(1.87567,2)// 1.8))
SQRT(x)返回x的平方根
POW(x,y)返回x的y次方

2)、字符串函数
在这里插入图片描述
3. 日期时间函数
在这里插入图片描述

分组(聚合)函数:多个值进行运算,返回一个值

聚合函数是用来做纵向运算的函数:
COUNT():统计指定列不为NULL的记录行数;(非null个数,自带not null)
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

  1. COUNT
    e.g. count (*);//全部的行数
    e.g. count (distinct xx);//不重复

  2. SUM和AVG
    sum()

  3. MAX和MIN
    e.g. 查询最高工资和最低工资:

4. having

放在后面的where:分组前的筛选
放在group by之后:分组后的筛选
只能放在having后:分组函数做条件(e.g. count(*)>75)

能写where 就不写having

5. 分组查询需要group by子句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值