MySQL 聚合函数、运算符操作、约束

4、聚合函数

1、分类
  avg(字段名) : 求该字段平均值
  sum(字段名) : 求和
  max(字段名) : 最大值
  min(字段名) : 最小值
  count(字段名) : 统计该字段记录的个数
2、示例
  1、攻击力最强值是多少
    select max(gongji) from MOSHOU.sanguo;
  2、统计id 、name 两个字段分别有几条记录
    select count(id),count(name) from sanguo;
    ## 空值 NULL 不会被统计,""会被统计

  3、计算蜀国英雄的总攻击力
    select sum(gongji) from MOSHOU.sanguo
    where country="蜀国";
  4、统计蜀国英雄中攻击值大于200的英雄的数量
    select count(*) from MOSHOU.sanguo
    where gongji>200 and country="蜀国";

4、运算符操作
  1、数值比较/字符比较
    1、数值比较 := != > >= < <=
    2、字符比较 := !=
    3、练习
      1、查找攻击力高于150的英雄的名字和攻击值
        select name,gongji from sanguo where gongji>150;
      2、将赵云的攻击力设置为360,防御力设置为68
        update sanguo set gongji=360,fangyu=68
        where name="赵云";

5、查询表记录时做数学运算
  1、运算符
    + - * / % 
  2、示例
    1、查询时所有英雄攻击力翻倍
      select id,name,gongji*2 as gj from sanguo;
2、逻辑比较
    1、and (两个或多个条件同时成立)
    2、or (任意一个条件成立即可)
    3、练习
      1、找出攻击值高于200的蜀国英雄的名字、攻击力
        select name as n,gongji as g from sanguo
        where gongji>200 and country="蜀国";
      2、将吴国英雄中攻击值为110的英雄的攻击值改为100,防御力改为60
        update sanguo set gongji=100,fangyu=60
        where country="吴国" and gongji=110;
      3、查找蜀国和魏国的英雄信息
        select * from sanguo 
        where country="蜀国" or country="魏国";
3、范围内比较
1、between 值1 and 值2
    2、where 字段名 in(值1,值2,...)
    3、where 字段名 not in(值1,值2,...)
    4、练习
1、查找攻击值100-200的蜀国英雄信息
        select * from sanguo
        where gongji between 100 and 200 and
        country="蜀国";
      2、找到蜀国和吴国以外的国家的女英雄信息
        select * from sanguo
        where country not in("蜀国","吴国") 
        and sex="女";
      3、找到id为1、3或5的蜀国英雄 和 貂蝉的信息
        select * from sanguo
        where 
        (id in(1,3,5) and country="蜀国") or name="貂蝉";
      4、匹配空、非空
        1、空 :where name is null
        2、非空:where name is not null
        3、示例
          1、姓名为NULL值的蜀国女英雄信息
            select * from sanguo
            where
            name is null and country="蜀国" and sex="女";
          2、姓名为 "" 的英雄信息
            select * from sanguo where name="";
        4、注意
          1、NULL :空值,只能用 is 或者 is not 去匹配
          2、"" :空字符串,用 = 或者 != 去匹配
        5、模糊比较
          1、where 字段名 like 表达式
          2、表达式 
            1、_ : 匹配单个字符
            2、% : 匹配0到多个字符
          3、示例
          select name from sanguo where name like "_%_";
          select name from sanguo where name like "%";
          ## NULL不会被统计,只能用is、is not去匹配
          select name from sanguo where name like "___";
          select name from sanguo where name like "赵%";

2、约束
  1、作用 :保证数据的完整性、一致性、有效性
  2、约束分类
    1、默认约束(default)
      1、插入记录,不给该字段赋值,则使用默认值
    2、非空约束(not NULL)
      1、不允许该字段的值有NULL记录
      sex enum("M","F","S") not null defalut "S"

原文地址:https://www.cnblogs.com/LXP-Never/p/9404567.html

时间: 2024-08-24 22:20:15

MySQL 聚合函数、运算符操作、约束的相关文章

MySQL 聚合函数

MySQL 聚合函数常用的有五个 SUM COUNT AVG MIN/MAX AVG ([DISTINCT] expr) 返回expr 的平均值.DISTINCT 选项可用于返回expr的不同值的平均值. SELECT gender, AVG(age) FROM student GROUP BY gender; COUNT(expr) 返回SELECT语句检索到的行中非NULL值的数目. SELECT COUNT(*) FROM student; --返回检索行的数目,不论其是否包含 NULL值

MySQL 聚合函数(一)聚合(组合)函数概述

MySQL版本:5.7+ 本节介绍对值的集合进行操作的组合(聚合)函数.翻译自:Aggregate (GROUP BY) Function Descriptions 一.MySQL 5.7中的聚合函数 MySQL 5.7中的聚合函数如下: 除非另有说明,否则组合函数会忽略NULL值. 如果在不包含Group By子句的语句中使用组合函数,就等效于对所有行进行分组.(个人理解是,结果总是只有一行.)关于这点的更多信息,后面的小节“MySQL处理Group By的方式”会讲到. 聚合函数中,方差和标

MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4030506.html 联系方式:[email protected] [正文] 一.navicat的引入:(第三方可视化的客户端,方便MySQL数据库的管理和维护) NavicatTM是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开

MySQL 聚合函数(三)MySQL对GROUP BY的处理

原文来自MySQL 5.7 官方手册:12.20.3 MySQL Handling of GROUP BY SQL-92和更早版本不允许SELECT列表,HAVING条件或ORDER BY列表引用未在GROUP BY子句中命名的非聚合列的查询.即以下查询是被禁止的: SELECT o.custid, c.name, MAX(o.payment) FROM orders AS o, customers AS c WHERE o.custid = c.custid GROUP BY o.custid

mysql聚合函数 时间格式化 关联查询

1.时间格式化:SELECT DATE_FORMAT(a.START_TIME, '%Y-%m-%d' ) datime,DATE_FORMAT(a.START_TIME, '%Y-%m' ) motime FROM AGENT_STATUS a; 2.聚合函数:SELECT datime,motime,SUM(CASE WHEN STATUS = '102' THEN 1 ELSE 0 END) jtcount,SUM(CASE WHEN STATUS = '102' THEN DURATIO

MySQL 聚合函数与LIMIT

在做一个投票项目,有一功能要求查出得票数前10名的票数底线. 这里用了以下SQL: SELECT MIN(score) FROM vote_candidate WHERE score > 0 GROUP BY score ORDER BY score DESC LIMIT 10 写完后心有疑问,到底是MIN()先执行,还是LIMIT先奏效? 按以往的认识,LIMIT的优先级是排在WHERE.GROUP BY.ORDER BY之后的,是对最后返回的结果集进行限制,推测它是在聚合函数之后执行,那这个

mysql聚合函数操作

1.mysql对中文进行排序 注:是用convert函数用gb2312编码转换 SELECT * FROM 表名 ORDER BY CONVERT(字段名 USING gb2312 ) ASC;

MySQL 聚合函数(四)检测功能依赖

源自MySQL 5.7 官方手册:12.20.4 Detection of Functional Dependence 本节提供了MySQL检测功能依赖的方式的几个示例.这些示例使用此表示法: {X} -> {Y} 将其理解为:“X唯一确定Y”,这也意味着Y在功能上依赖于X. 这里示例的几种检测功能依赖的方式为: Functional Dependencies Derived from Keys Functional Dependencies Derived from Multiple-Colu

mysql聚合函数

1.统计一下插入的数据总数 SELECT COUNT(giftCertificateId) AS number FROM gift_certificate WHERE giftCertificateNo LIKE 'boc%';SELECT giftCertificateId, COUNT(gc.`giftCertificateId`) AS 总共 FROM gift_certificate gc WHERE giftCertificateNo LIKE '%boc%';