9.24 冯娜
学习日志
一、复杂查询
1、聚合查询/分组查询:
(1)聚合函数:
获取数量:select count(列) from 表名
求总和:select sum(列)from 表名
求平局数:select avg(列)from 表名
求最大、最小值:select max/min(列)from 表名
获取当前数据中的年份数量:select year(列)from 表名
获取当前数据中的月份数量:select mouth(列)from 表名
(2)分组查询:
group by
注意:分组查询只能查询聚合函数和分组条件。
2、子查询:就是把一个sql语句的查询结果作为另一个sql语句的查询条件。
案例:
select * from lfemp where salary>(select salary from lfemp where ename='tom');
3、多表查询(跨表查询)
(1)内连接:inner join...on...
(2)左外连接:left outer join...on...
(3)右外连接:right outer join...on...
(4)全连接:union合并相同的项
union all不合并相同的项
二、ES6中的promise
1、问题:实际开发中,有时需要多个异步任务必须按顺序执行。如果单纯顺序调用两个异步函数,是无法保证顺序执行的。异步函数谁也不等谁。
2、解决方案:回调函数
3、什么是promise:Promise是一个构造函数,它跟JS中的Date、Array等构造函数类似,都是使用new操作符实例化之后就可以通过传参和调用方法的形式来完成某些特定的功能。Promise是专门用来实现多个异步函数,必须先后顺序执行的技术。
4、为什么使用promise:避免回调地狱(callback hell)
5、什么时候使用promise:当有要求,下一个函数必须在前一个函数执行后,才能开始执行时,就使用promise。
6、使用步骤:第一步:将异步函数使用new Promise包裹,并返回该new Promise,同时与下一项任务相连;
第二步:在new Promise() 内的异步任务内部,设置前一项任务需要决定何时调用的函数,只要前一项任务内部调用了这个函数,就会通知下一项任务开始执行;
第三步:调用前一项任务,然后调用 .then() 连接下一项任务。
7、promise语法:Promise的参数中是一个函数;
使用new操作符来实例化Promise构造函数,与其他构造函数不同的是Promise接收一个函数作为参数。该函数又接收两个参数,分别是resolve和reject,resolve和reject也是函数(javascript内置的)且这两个函数都有各自不同的作用。
Promise的三个状态: pending(挂起/等待)、fulfilled(成功)、rejected(失败)。
8、6. ES7 async await:提示:async 的作用是申明一个异步函数,函数的返回值是promise 对象,async+wait 的结合 即异步等待,async和await 二者必须是结合着使用,await 是个运算符,用于组成表达式,await 表达式的运算结果取决于它等的东西。
近期评论