复习
复杂查询 1.SQL语句中复杂查询分为 —— 聚合查询/分组查询 示例:查询出所有员工的数量 SELECT COUNT() FROM emp; #推荐写法 SELECT COUNT(ename) FROM emp; SELECT COUNT(eid) FROM emp; SELECT COUNT(deptId) FROM emp; 函数: FUNCTION,具有特定的功能,需要接收若干个数据,最终到处特定的计算结果。—— 饺子机 MySQL中提供了5个聚合函数 COUNT(…)/SUM(…)/AVG(…)/MAX(…)/MIN(…) 练习:查询出10号部门员工的数量 SELECT COUNT(ename) FROM emp WHERE deptId=10; 练习:查询出10号部门所有工资的总和 SELECT SUM(salary) FROM emp WHERE deptId=10; 练习:查询出所有男员工的平均工资 SELECT SUM(salary)/COUNT() FROM emp WHERE sex=1; SELECT AVG(salary) FROM emp WHERE sex=1; 练习:查询出1990年出生的员工工资最大值和最小值 SELECT MAX(salary),MIN(salary) FROM emp WHERE birthday>=‘1990-1-1’ AND birthday<=‘1990-12-31’; 分组查询 练习:查询出每个部门的员工数量 SELECT deptId,COUNT() FROM emp GROUP BY deptId; 注意:分组查询中SELECT后面只能跟分组条件,或者其它列的聚合函数; 练习:查询出每个部门的平均工资,最大工资,最小工资 SELECT deptId,AVG(salary),MAX(salary),MIN(salary) FROM emp GROUP BY deptId; 练习:查询出男员工和女员工的人数是多少 SELECT sex,COUNT() FROM emp GROUP BY sex; 2.复杂查询 —— 子查询 示例:查询出工资比tom高的员工的所有信息 步骤1:先查询出tom的工资是多少 —— 6000 SELECT salary FROM emp WHERE ename=‘tom’; 步骤2:再查询出工资比6000高的员工信息 SELECT * FROM emp WHERE salary>6000; 综合: SELECT * FROM emp WHERE salary>(SELECT salary FROM emp WHERE ename=‘tom’); 练习:查询出“研发部”所有的员工信息 步骤1:查询出“研发部”的部门编号 ——10 SELECT did FROM dept WHERE dname=‘研发部’; 步骤2:查询出10号部门所有的员工信息 SELECT * FROM emp WHERE deptId=10; 总和: SELECT * FROM emp WHERE deptId=(SELECT did FROM dept WHERE dname=‘研发部’); 3.复杂查询 —— 多表查询/跨表查询 示例:查询出所有的员工姓名及其所在部门的名称 SELECT ename,dname FROM emp,dept WHERE deptId=did ; 笛卡尔积 注意:为了防止出现笛卡尔积,在多表查询的时候,需要添加查询条件 问题:无法查询出没有部门的员工,无法查询出没有员工的部门。
SQL99中的多表查询 (1)内连接 INNER JOIN … ON —— 和之前的作用一样 SELECT ename,dname FROM emp INNER JOIN dept ON deptId=did; (2)左外连接 LEFT OUTER JOIN … ON —— 显示左侧所有的记录 SELECT ename,dname FROM emp LEFT OUTER JOIN dept ON deptId=did; (3)右外连接 RIGHT OUTER JOIN…ON 显示右侧所有的记录 SELECT ename,dname FROM emp RIGHT OUTER JOIN dept ON deptId=did; 说明:outer关键字可以省略的。 (4)全连接 FULL JOIN MySQL不支持全支持
UNION / UNION ALL union all 两组数据出现了相同项不合并。 union 两组数据出现了相同项进行合并。
(SELECT ename,dname FROM emp LEFT JOIN dept ON deptId=did) UNION ALL (SELECT ename,dname FROM emp RIGHT JOIN dept ON deptId=did);
(SELECT ename,dname FROM emp LEFT JOIN dept ON deptId=did) UNION (SELECT ename,dname FROM emp RIGHT JOIN dept ON deptId=did);
学习一门编程语言路线图 (1)了解语言的背景,历史,特点,应用领域,现状 (2)搭建开发环境,编写 hello world (3)声明变量和常量 (4)数据类型 (5)运算符 (6)逻辑结构 (7)通用小程序 (8)函数和对象 (9)第三方的类库,插件,组件,框架 (10)开发项目
JS的执行环境 (1)运行在客户端,使用浏览器所自带的JavaScript解释器。本身由于浏览器过多,存在兼容性问题。 (2)运行在服务器端,使用NodeJS解释器,基于谷歌的V8引擎。在服务器端不存在兼容性。 2.Nodejs下载 https://nodejs.org 下载 8.11.3 LTS 查看nodejs是否安装成功 node -v 显示所安装的nodeJS版本号 运行方式 node c:/xampp/…/01.js 练习: 创建02.js,打印个人的姓名,使用nodejs运行,查看结果。 3.语法规范 (1)区分大小写 (2)每一行结束,可以不加英文的分号结束,习惯上加上分号。 (3)分为单行注释( //… ),和多行注释( /…/ ) 4.变量 变量是用于存储信息的容器 (1)变量的声明 var x = 1; var是声明变量的关键字; x是变量的名称 x=1表示把1赋值给变量x 说明:如果声明了一个变量,没有赋值,默认是undefined。 (2)变量的命名规范 可以放字母、数字、下划线(_)、美元符号($) 不能以数字开头 不能使用关键字和保留字作为变量名
保留字(class、int、float) 变量名称习惯上有明确的语义,例如用户名 userName,密码userPwd,命名分为驼峰命名法和下划线命名法。 练习: 使用变量来存储员工的信息,声明员工的编号,姓名,性别,生日,工资,并初始化具体的信息。 5.常量 常量就是不能改变的值。 使用 const关键字来声明 习惯上常量名称使用大写 const PI=3.14; 6.数据类型 MySQL:数值/日期时间/字符串 JS分为原始类型和引用类型 (1)原始类型 分为数值型、字符串型、布尔型、未定义型(undefined)、null 数值型又分为整数和浮点数 1)整数型 分为八进制(以0开头->010),十进制,十六进制(以0X开头->0XF) 2)浮点型 使用小数点记录的数据,还可以使用指数记录的数据 例如:1.2 3.4 1.888e3 练习: 查看整数20,32,54的八进制,十六进制分别是多少 使用小数点和指数来表示圆周率 3.1415926 课后练习: 计算圆的周长和面积: 把半径值5使用变量存储,把圆周率使用常量存储。 最后打印周长和面积。
