函数

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;

转载于:https://www.cnblogs.com/kunmomo/p/11448063.html

SQL学习(三)之子句和函数相关推荐

  1. SQL学习笔记 where子句用法,like关键字 嵌套查询

    where子句 比较运算符: < , <= , > , >= , = , != , !< , !> .  text , ntext , image .型数据不可用. ...

  2. Kotlin学习三:高阶函数

    目录 一.高阶函数的基本概念 二.常见高阶函数 1.关于list映射 2.flatMap 3.综合1 4.综合2 三.尾递归优化 四.闭包 五.函数复合 六.科理化 七.偏函数 八.小案例 一.高阶函 ...

  3. SQL学习之SELECT子句顺序

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

  4. SQL学习(3)——表的复杂查询与函数操作

    SQL学习(3)--表的复杂查询 1.视图 1.1.创建视图 1.1.1.基于单表的视图 1.1.2.基于多表的视图 1.2.查询视图 1.3.修改视图 1.4.更新视图 1.5.删除视图 2.子查询 ...

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

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

  6. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)

    Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...

  7. SQL 2005新增的几个函数之学习

    sqlserver 2005新增函数学习(转载) 原文:SQL 2005新增的几个函数之学习 今天学习了sql server 2005新增的几个函数,分别是row_number(),rank,DENS ...

  8. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  9. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...

    天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...

  10. 学习SQL:使用日期和时间函数创建SQL Server报表

    In the previous two articles of this series, we've discussed how to create a report and how to use b ...

最新文章

  1. html在线热点工具,Heatmap.js 强大的 HTML5 画布 WEB 网页在线热点图插件 - 资源分享...
  2. poj1002(map的使用)
  3. libgdx 1.4.1公布
  4. mysql5.7.19设置_MySQL5.7.19安装配置
  5. java高效遍历匹配,使用cypher或遍历api仅匹配路径极端的单个节点
  6. OpenSSL 与 SSL 数字证书概念贴
  7. 一个类可以有一个接口,接口可以有一个Java类吗?
  8. sql server 群集_设计有效SQL Server群集索引
  9. 课堂随笔01--进制转换
  10. 2021软考资料汇总:历年真题/学习手册/学习计划/考试大纲等资料
  11. Kano模型思考:以QQ第一版为例,如何确定产品优先级
  12. 詹克团:《区块链:人类劳动组织的未来形式》
  13. 思岚A1激光雷达hector_mapping建图与定位
  14. 如何获取Mysql的根目录
  15. 东软始业教育结业考试
  16. 使用graphviz画树
  17. java 首字母大写方法
  18. Flyme应用中心应用认领
  19. ARMSYS6410开发板产品FAQ
  20. 一个人的朝圣深度感悟_朝圣之末找到更强大的WordWrap函数

热门文章

  1. 关于SQL Server的若干注意事项
  2. 线段树segment_tree go语言实现
  3. 使用fcntl编写set_fl()函数和clr_fl()函数
  4. 从SOURCE_BUFFER单元开始存放了20个字母A, 编程将这20个字母A的字符 串向下移10个单元.
  5. 修改mysql的max_allowed_packet值
  6. 用diff命令制作补丁
  7. 使用BIOS进行键盘输入和磁盘读写---汇编学习笔记
  8. 【存储技术大杂烩】谈谈FC-SAN、IP-SAN、DAS、NAS几种存储技术
  9. 动静分离和前后端分离
  10. Docker搭建Nacos1.3+Seata1.4+MySQL8分布式事务(服务端)