函数

COUNT()/计数、MIN()/最小值、MAX()/最大值、AVG()/平均值、SUM()/和

子句

子句是语句的一部分包括WHERE、GROUP、ORDER、LIMIT

  • WHERE:条件

  • GROUP:合并(聚类,其实就是合并相同的)

  • ORDER:排序

  • LIMIT:限制(限制输出)

WHERE

  • WHERE name='blue'

  • WHERE age>18

  • WHERE age<=18

  • WHERE age>=18 AND score<60

  • WHERE cach>100 OR score>10000

删-DELETE

DELETE FROM 表 WHERE 条件; 删除表中指定的一条数据

DELETE FROM `user_table` WHERE ID='${res.query.id}'; 根据指定的id删除指定一条数据的所有字段

注意:没有办法只删除一个字段,只能是删除一行

改-UPDATE

UPDATE 表 SET 字段=值,字段=值,...WHERE 条件;

UPDATE `article_data` SET `n_like=n_like+1` WHERE ID=xxx; 根据指定的id更新指定数据的n_like字段

查-SELECT

SELECT * FROM 表 WHERE 条件;

SELECT * FROM `user_table` WHERE ID='${res.query.id}'; 根据指定的id查询指定数据的所有字段

注意:不加WHERE就是操作整张表,除了INSERT都可以用WHERE

GROUP

  • GROUP BY class

  • GROUP BY name

查-SELECT

SELECT * FROM 表 GROUP BY 字段;

SELECT * FROM student_table GROUP BY class; 表示以class为依据进行分组,只要是class相同的就一定会合并起来,相同的class只留一条数据,做了一个去重

SELECT class,COUNT(class) FROM student_table GROUP BY class; 只查询class字段,以class为依据进行分组,并对相同的class进行计数

SELECT class,AVG(score) FROM student_table GROUP BY class; 查询得到每个班级平均值

SELECT class,MAX(score),MIN(score) FROM student_table GROUP BY class; 查询得到每个班级最高最低分

SELECT name,SUM(price) FROM sales_table GROUP BY name;  查询得到每个人的消费总额

注意:GROUP单独用没有什么意义我们应该配合函数来用(COUNT/计数、MIN/最小值、MAX/最大值、AVG/平均值、SUM/和)

ORDER

  • ORDER BY age ASC

  • ORDER BY age DESC

  • ORDER BY SUM(price)

ASC-升序(从小到大)/DESC-降序(从大到小)

查-SELECT

SELECT * FROM 表 ORDER BY 字段 ASC;  单一条件排序

SELECT * FROM 表 ORDER BY 字段 ASC ,字段 DESC; 多条件排序

SELECT * FROM student_table ORDER BY price DESC; 查询表中数据并以price为准降序排列

SELECT * FROM 表 ORDER BY price ASC, sales DESC; 查询表中数据并以price为准升序排列,price相同以sales为准降序排列

SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) DESC;  查询得到每个人的消费总额按照降序排列

SELECT name,SUM(price) FROM sales_table GROUP BY name ORDER BY SUM(price) ASC;  查询得到每个人的消费总额按照升序排列

LIMIT

  • LIMIT 10; 前10条

  • LIMIT 5,8; 从5开始,要8个

查-SELECT

SELECT *  FROM 表 LIMIT 数字;

SELECT *  FROM student_table LIMIT 2; 查询表中的前两条数据

分页

方法一:所有数据给前端,前端来控制每页数据(数据量大不靠谱)

方法二:后台只给一丁点数据,后端来控制每页数据(实际上就是在数据库里就限制)

使用方法二如果想要做分页,每页20条数据:

  • 第1页 limit 0,20 0~19

  • 第2页 limit 20,20 20~39

  • 第3页 limit 40,20

  • 第n页 limit (n-1)*20,20

子句之间的顺序

子句之间是有顺序的:WHERE GROUP ORDER LIMIT

注释:没有的可以不写

实例:

SELECT class,COUNT(class) FROM student_table

WHERE score>60

GROUP BY class

ORDER BY COUNT(class) DESC

LIMIT 2;

SQL学习(三)之子句和函数的更多相关文章

  1. SQL学习(三) 复杂查询

    我们本节考察的数据库如下所示: 3.1 创建出满足下述三个条件的视图(视图名称为 ViewPractice5_1).使用 product(商品)表作为参照表,假设表中包含初始状态的 8 行数据. 条件 ...

  2. 【SQL学习笔记】排名开窗函数,聚合开窗函数(Over by)

    处理一些分组后,该组按照某列排序后 ,取其中某条完整数据的问题. 或 按照其中不同列分组后的聚合 比如 sum,avg之类. MSDN上语法: Ranking Window Functions < ...

  3. SQL学习之SELECT子句顺序

    下面来总计下之前的随笔中所说过的所有的SELECT子句的顺序. 子句 说明 是否必须使用 SELECT                  要返回的列或者表达式                      ...

  4. React 学习(三) ---- state 和 事件处理函数

    在上两节中,我们讲述了props, 组件使用props进行渲染,但是这是一次性的, props渲染完成之后就不做任何事情了,但是现实中却不是这样的,当我们点击购物车上的加减按钮时,数量会自动加1或减1 ...

  5. python学习 (三十) python的函数

     1: 函数参数默认值 def method1(p1 = , p2 = ): // 函数有两个参数,并且都有默认值 return p1 + p2 print(method1()) print(meth ...

  6. python学习三十五天函数递归的用法

    python函数递归就是自己调用自己,无限循环,但是python限制了调用的次数1000次,就会终止,递归用在栏目分类,采集程序比较多,下面简单说函数递归用法和实例 1,函数递归用法 def func ...

  7. python学习三十四天函数高阶函数定义及用法

    python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def tes ...

  8. SQL学习(时间,存储过程,触发器)

    SQL学习 几个操作时间的函数 --datapart 获取时间中的年月日时分秒等部分 select DATEPART(year,current_timestamp); select DATEPART( ...

  9. Sql Server 三个很有用的函数

    好久没有写有关SqlServer 数据库方面技术的文章了,正好今天遇到了一个问题,我就把这个当做一个练习记录下来.今天遇到一个麻烦事,详情如下:公司买了一个系统,在这个系统里面有一个“充值卡”的功能, ...

  10. SQL夯实基础(三):聚合函数详解

    一.GROUP BY  Having 聊聚合函数,首先肯定要弄清楚group by 和having 的用法. SELECT id, COUNT(course) as numcourse, AVG(sc ...

随机推荐

  1. Go 结构体与初始化

    Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型. 结构体是复合类型,当需要定义类型,它由一系列属性组成,每个属性都有自己的类型和值的时候,就应该使用结构体,它把数据聚集在 ...

  2. TCP输出 之 tcp_transmit_skb

    概述 tcp_transmit_skb的作用是复制或者拷贝skb,构造skb中的tcp首部,并将调用网络层的发送函数发送skb:在发送前,首先需要克隆或者复制skb,因为在成功发送到网络设备之后,sk ...

  3. SRS之SrsRtmpConn::service_cycle详解

    1. SrsRtmpConn::service_cycle 当服务器在 conn 线程的开始调用 connect_app 函数接收并解析客户端发送的 connect 消息后,调用该 service_c ...

  4. SpringSecurity——默认过滤器链

    介绍Spring Security默认的过滤器链,介绍顺序按照过滤器在过滤器链中的顺序排序 1.WebAsyncManagerIntegrationFilter 将Security上下文与Spring ...

  5. python3 http.server 本地服务支持跨域

    创建start.py,代码如下: #!/usr/bin/env python try: # Python 3 from http.server import HTTPServer, SimpleHTT ...

  6. JavaScript日常学习1

    您会经常看到 document.getElementById("id"). 这个方法是 HTML DOM 中定义的. DOM (Document Object Model)(文档对 ...

  7. OpenStack 的单元测试

    目录 文章目录 目录 前言 单元测试能提高生产率 Python 单元测试工具清单 unittest Test Discover Test Fixture Test Suite Assert(断言) m ...

  8. 在mac下安装fiddler

    说明:学习fiddler好久了,一直以来也没形成文档,之前学的一些知识也快忘得差不多了:正好利用假期,把之前学的知识都捡起来,捋一遍,形成文档,供以后使用的时候参考和借鉴 一:下载Mono 因为fid ...

  9. charles工具页面介绍

    charles的主页面介绍 手机连上代理之后,每在手机上进行操作我们便会在charles上接收到请求.此时的charles页面将会变成如下密密麻麻的内容,故这节课我们来讲解一下Charles的主页面 ...

  10. 安装IE11必备更新

    https://support.microsoft.com/zh-cn/help/2847882