美文网首页
MySQL 中的查询模型

MySQL 中的查询模型

作者: djz0306 | 来源:发表于2019-06-29 11:57 被阅读0次

在 MySQL 中查询是使用最多的也是最复杂的操作之一,但是经常可能会写错或者结果与预期不一致的情况。所以查询的模型理解就相当重要了。

模型理解

  1. 把列看出变量,把 where 后面看成是 Python 或者 Java 等语言中 if(exp) 中的 exp 表达式

  2. 哪行可以被取出来,就看哪行能让 exp 表达式为真

  3. 把列看成变量,既然是变量就可以运算,术语上叫做广义投影。例如取出所有商品的 id 和名字,省的钱超过200,并计算出本店价比市场价节省的钱,计算出来的列可以不起名字也可以起个列别名:

    select goods_id, goods_name, (market_price - shop_price) as discount from goods where (market_price - shop_price) > 200;
    
MySQL中查询广义投影的计算.jpg

此处需要注意的是,where 后面不能直接用 discount ,要对结果进行筛选的话可以使用 having。where 进行判断是对表中的原数据进行判断,等把结果筛选出来以后才有 discount 所以 where 中直接用 discount 会出现 Unknown column 'discount' in 'where clause' 的报错

练习题

  1. 现有如下表和数组,把其中 num 值处于 [20,29] 的改为 20,把 num 值处于 [30,39] 之间的改为 30。num中的值为:3,12,15,25,23,29,34,37,32,45,48,52,表名为mian

    update mian num=floor(num/10)*10 where num between 20 and 39;
    

    结果如下:

MySQL 练习题1.jpg
  1. 把 goods 表中的商品名由“摩托罗拉xxxx”改为“联想”:

    update goods set goods_name = concat('联想',substring(goods_name,5)) where goods_name like '摩托罗拉%';
    

    使用 substring() 截取字符串,然后使用 concat() 拼接。结果如下:

    MySQL 练习题2.jpg

相关文章

  • MySQL 中的查询模型

    在 MySQL 中查询是使用最多的也是最复杂的操作之一,但是经常可能会写错或者结果与预期不一致的情况。所以查询的模...

  • MySQL查询模型

    (未完)

  • MySQL 查询模型

    缘起 从"燕十八"接触到 "MySQL 查询模型",对 SQL 语句的理解有醍醐灌顶之感.赠人玫瑰, 手有余香, ...

  • 2021-11-02 RD4 review SQL

    安装 服务mysql 可视化软件 navicat 关系模型 主键 外键 索引 查询数据 基本查询 条件查询 投影查...

  • MySQL学习——查询缓存

    MySQL查询缓存简介 MySQL查询缓存是MySQL将查询返回的完整结果保存在缓存中。当查询命中该缓存,MySQ...

  • Mysql 慢查询日志

    Mysql 慢查询日志 慢查询日志 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中...

  • Mysql对于information_schema库的一些用法

    1) 查询mysql每一个数据库的大小 2) 查询mysql单个库中每张表的的大小 3) 查询mysql单个库中单...

  • MySQL常用查询模型

    根据以往的MySQL使用经验总结了一些常用模型。 一、 “最”值问题 全局最值:使用聚合函数如max、min 组中...

  • Django 模型数据操作

    MySQL记录添加和查询的基本方法: Django 模型数据操作 python manage.py shell ...

  • golang对mysql的基本操作

    golang 操作mysql 导入数据库驱动 mysql连接配置 建立连接 数据模型 数据表结构 查询单行 注意:...

网友评论

      本文标题:MySQL 中的查询模型

      本文链接:https://www.haomeiwen.com/subject/chtpcctx.html