最新要闻
- 焦点日报:又拓新业务 比亚迪全新皮卡谍照曝光:DM混动没跑了
- 热点!不掉绒、无静电!史努比牛奶绒床品四件套大促:券后99元
- 天天快讯:一箭十四星 捷龙三号运载火箭首飞发射成功:海陆两用
- 焦点快播:QQ等级全球第一咋做到的?本人回应让网友羡慕:小时候家里开网吧
- 官方“挖墙脚”?网易《逆水寒》宣布推出“网易魔兽老兵服”
- word文档怎么做思维导图?word文档怎么做小抄?
- 宏碁4750g怎么进入bios?宏碁4750G需要哪些驱动?
- 电视机顶盒怎么破解?电视机顶盒哪个牌子好用?
- 诺基亚710上市价格是多少?诺基亚710手机现在能用吗?
- 天然气热值是多少大卡?天然气热值换算表
- 焦点报道:直播间疯狂刷礼物可能是在洗钱:网络水军用千部手机给主播打赏 最多刷10亿元
- 国产操作系统deepin推送20.8版本:wine应用开启速度获得提升
- 联想PC小新桌面助手上线:实用性堪比手机控制中心
- 无叶无根无枝条的花你见过没?曾消失30年:开败后就变黑
- 世界今亮点!《原神》《幻塔》都败了!《MARVEL SNAP》摘得TGA 2022年度最佳手游
- 【全球播资讯】RTX 3050加持 联想轻薄旗舰本小新Pro 16史低价:5799元
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
观点:MYSQL 1 DAY
【资料图】
目录- MySQL
- 1、sql、DB、DBMS分别是什么,他们之间的关系?
- 2、什么是表?
- 3、学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分类呢?
- 4、导入数据(后期大家练习的时候使用这个演示的数据)
- 5、bjpowernode.sql,这个文件以sql结尾,这样的文件被称为“sql脚本”。什么是sql脚本呢?
- 6、删除数据库:drop database bjpowernode;
- 7、查看表结构:
- 9、常用命令?
- 10、查看创建表的语句:
- 11、简单的查询语句(DQL)
- 12、条件查询。
- 14、分组函数?
- 15、单行处理函数
- 16、group by 和 having
MySQL
1、sql、DB、DBMS分别是什么,他们之间的关系?
DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)DBMS: DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 Sybase SqlServer...)SQL: 结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品。SQL属于高级语言。只要能看懂英语单词的,写出来的sql语句,可以读懂什么意思。SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql。(sql语句的编译由DBMS完成。)DBMS负责执行sql语句,通过执行sql语句来操作DB当中的数据。DBMS -(执行)-> SQL -(操作)-> DB
2、什么是表?
表:table表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。一个表包括行和列:行:被称为数据/记录(data)列:被称为字段(column)学号(int)姓名(varchar)年龄(int)------------------------------------110张三20120李四21每一个字段应该包括哪些属性?字段名、数据类型、相关的约束。
3、学习MySQL主要还是学习通用的SQL语句,那么SQL语句包括增删改查,SQL语句怎么分类呢?
DQL(数据查询语言): 查询语句,凡是select语句都是DQL。DML(数据操作语言):insert delete update,对表当中的数据进行增删改。DDL(数据定义语言):create drop alter,对表结构的增删改。TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是Transaction)DCL(数据控制语言): grant授权、revoke撤销权限等。
4、导入数据(后期大家练习的时候使用这个演示的数据)
第一步:登录mysql数据库管理系统dos命令窗口:mysql -uroot -p(password)第二步:查看有哪些数据库show databases; (这个不是SQL语句,属于MySQL的命令。)+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test |+--------------------+第三步:创建属于我们自己的数据库create database bjpowernode; (这个不是SQL语句,属于MySQL的命令。)第四步:使用bjpowernode数据use bjpowernode; (这个不是SQL语句,属于MySQL的命令。)第五步:查看当前使用的数据库中有哪些表?show tables; (这个不是SQL语句,属于MySQL的命令。)第六步:初始化数据mysql> source D:\course\05-MySQL\resources\bjpowernode.sql注意:数据初始化完成之后,有三张表:+-----------------------+| Tables_in_bjpowernode |+-----------------------+| dept || emp || salgrade |+-----------------------+
5、bjpowernode.sql,这个文件以sql结尾,这样的文件被称为“sql脚本”。什么是sql脚本呢?
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。注意:直接使用source命令可以执行sql脚本。sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化。
6、删除数据库:drop database bjpowernode;
7、查看表结构:
+-----------------------+| Tables_in_bjpowernode |+-----------------------+| dept | (部门表)| emp | (员工表)| salgrade | (工资等级表)+-----------------------+mysql> desc dept;+--------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+--------+-------------+------+-----+---------+-------+| DEPTNO | int(2) | NO | PRI | NULL | |部门编号| DNAME | varchar(14) | YES | | NULL | |部门名称| LOC | varchar(13) | YES | | NULL | |部门位置+--------+-------------+------+-----+---------+-------+mysql> desc emp;+----------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| EMPNO | int(4) | NO | PRI | NULL | |员工编号| ENAME | varchar(10) | YES | | NULL | |员工姓名| JOB | varchar(9) | YES | | NULL | |工作岗位| MGR | int(4) | YES | | NULL | |上级领导编号| HIREDATE | date | YES | | NULL | |入职日期| SAL | double(7,2) | YES | | NULL | |月薪| COMM | double(7,2) | YES | | NULL | |补助/津贴| DEPTNO | int(2) | YES | | NULL | |部门编号+----------+-------------+------+-----+---------+-------+mysql> desc salgrade;+-------+---------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------+------+-----+---------+-------+| GRADE | int(11) | YES | | NULL | |等级| LOSAL | int(11) | YES | | NULL | |最低薪资| HISAL | int(11) | YES | | NULL | |最高薪资+-------+---------+------+-----+---------+-------+
8、表中的数据?
mysql> select * from emp;+-------+--------+-----------+------+------------+---------+---------+--------+| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |+-------+--------+-----------+------+------------+---------+---------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 || 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 || 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20 || 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30 || 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30 || 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450.00 | NULL | 10 || 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20 || 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL | 10 || 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30 || 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 || 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |+-------+--------+-----------+------+------------+---------+---------+--------+mysql> select * from dept;+--------+------------+----------+| DEPTNO | DNAME | LOC |+--------+------------+----------+| 10 | ACCOUNTING | NEW YORK || 20 | RESEARCH | DALLAS || 30 | SALES | CHICAGO || 40 | OPERATIONS | BOSTON |+--------+------------+----------+mysql> select * from salgrade;+-------+-------+-------+| GRADE | LOSAL | HISAL |+-------+-------+-------+| 1 | 700 | 1200 || 2 | 1201 | 1400 || 3 | 1401 | 2000 | | 4 | 2001 | 3000 || 5 | 3001 | 9999 |+-------+-------+-------+
9、常用命令?
mysql> select database(); 查看当前使用的是哪个数据库+-------------+| database() |+-------------+| bjpowernode |+-------------+mysql> select version(); 查看mysql的版本号。+-----------+| version() |+-----------+| 5.5.36 |+-----------+\c 命令,结束一条语句。exit 命令,退出mysql。
10、查看创建表的语句:
show create table emp;
11、简单的查询语句(DQL)
语法格式:select 字段名1,字段名2,字段名3,.... from 表名;提示:1、任何一条sql语句以“;”结尾。2、sql语句不区分大小写。查询员工的年薪?(字段可以参与数学运算。)select ename,sal * 12 from emp;+--------+----------+| ename | sal * 12 |+--------+----------+| SMITH | 9600.00 || ALLEN | 19200.00 || WARD | 15000.00 || JONES | 35700.00 || MARTIN | 15000.00 || BLAKE | 34200.00 || CLARK | 29400.00 || SCOTT | 36000.00 || KING | 60000.00 || TURNER | 18000.00 || ADAMS | 13200.00 || JAMES | 11400.00 || FORD | 36000.00 || MILLER | 15600.00 |+--------+----------+给查询结果的列重命名?select ename,sal * 12 as yearsal from emp;别名中有中文?select ename,sal * 12 as 年薪 from emp; // 错误select ename,sal * 12 as "年薪" from emp;+--------+----------+| ename | 年薪 |+--------+----------+| SMITH | 9600.00 || ALLEN | 19200.00 || WARD | 15000.00 || JONES | 35700.00 || MARTIN | 15000.00 || BLAKE | 34200.00 || CLARK | 29400.00 || SCOTT | 36000.00 || KING | 60000.00 || TURNER | 18000.00 || ADAMS | 13200.00 || JAMES | 11400.00 || FORD | 36000.00 || MILLER | 15600.00 |+--------+----------+注意:标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,尽量别用。as关键字可以省略?mysql> select empno,ename,sal * 12 yearsal from emp;+-------+--------+----------+| empno | ename | yearsal |+-------+--------+----------+| 7369 | SMITH | 9600.00 || 7499 | ALLEN | 19200.00 || 7521 | WARD | 15000.00 || 7566 | JONES | 35700.00 || 7654 | MARTIN | 15000.00 || 7698 | BLAKE | 34200.00 || 7782 | CLARK | 29400.00 || 7788 | SCOTT | 36000.00 || 7839 | KING | 60000.00 || 7844 | TURNER | 18000.00 || 7876 | ADAMS | 13200.00 || 7900 | JAMES | 11400.00 || 7902 | FORD | 36000.00 || 7934 | MILLER | 15600.00 |+-------+--------+----------+查询所有字段?select * from emp; // 实际开发中不建议使用*,效率较低。
12、条件查询。
语法格式:select 字段,字段...from表名where条件;执行顺序:先from,然后where,最后select查询工资等于5000的员工姓名?select ename from emp where sal = 5000;+-------+| ename |+-------+| KING |+-------+查询SMITH的工资?select sal from emp where ename = "SMITH"; // 字符串使用单引号括起来。+--------+| sal |+--------+| 800.00 |+--------+找出工资高于3000的员工?select ename,sal from emp where sal > 3000;select ename,sal from emp where sal >= 3000;select ename,sal from emp where sal < 3000;select ename,sal from emp where sal <= 3000;找出工资不等于3000的?select ename,sal from emp where sal <> 3000;select ename,sal from emp where sal != 3000;找出工资在1100和3000之间的员工,包括1100和3000?select ename,sal from emp where sal >= 1100 and sal <= 3000;select ename,sal from emp where sal between 1100 and 3000; // between...and...是闭区间 [1100 ~ 3000]select ename,sal from emp where sal between 3000 and 1100; // 查询不到任何数据between and在使用的时候必须左小右大。between and除了可以使用在数字方面之外,还可以使用在字符串方面。select ename from emp where ename between "A" and "C";+-------+| ename |+-------+| ALLEN || BLAKE || ADAMS |+-------+select ename from emp where ename between "A" and "D"; // 左闭右开。找出哪些人津贴为NULL?在数据库当中NULL不是一个值,代表什么也没有,为空。空不是一个值,不能用等号衡量。必须使用 is null或者is not nullselect ename,sal,comm from emp where comm is null;+--------+---------+------+| ename | sal | comm |+--------+---------+------+| SMITH | 800.00 | NULL || JONES | 2975.00 | NULL || BLAKE | 2850.00 | NULL || CLARK | 2450.00 | NULL || SCOTT | 3000.00 | NULL || KING | 5000.00 | NULL || ADAMS | 1100.00 | NULL || JAMES | 950.00 | NULL || FORD | 3000.00 | NULL || MILLER | 1300.00 | NULL |+--------+---------+------+select ename,sal,comm from emp where comm = null;Empty set (0.00 sec)找出哪些人津贴不为NULL?select ename,sal,comm from emp where comm is not null;+--------+---------+---------+| ename | sal | comm |+--------+---------+---------+| ALLEN | 1600.00 | 300.00 || WARD | 1250.00 | 500.00 || MARTIN | 1250.00 | 1400.00 || TURNER | 1500.00 | 0.00 |+--------+---------+---------+找出哪些人没有津贴?select ename,sal,comm from emp where comm is null or comm = 0;+--------+---------+------+| ename | sal | comm |+--------+---------+------+| SMITH | 800.00 | NULL || JONES | 2975.00 | NULL || BLAKE | 2850.00 | NULL || CLARK | 2450.00 | NULL || SCOTT | 3000.00 | NULL || KING | 5000.00 | NULL || TURNER | 1500.00 | 0.00 || ADAMS | 1100.00 | NULL || JAMES | 950.00 | NULL || FORD | 3000.00 | NULL || MILLER | 1300.00 | NULL |+--------+---------+------+找出工作岗位是MANAGER和SALESMAN的员工?select ename,job from emp where job = "MANAGER" or job = "SALESMAN";+--------+----------+| ename | job |+--------+----------+| ALLEN | SALESMAN || WARD | SALESMAN || JONES | MANAGER || MARTIN | SALESMAN || BLAKE | MANAGER || CLARK | MANAGER || TURNER | SALESMAN |+--------+----------+and和or联合起来用:找出薪资大于1000的并且部门编号是20或30部门的员工。select ename,sal,deptno from emp where sal > 1000 and deptno = 20 or deptno = 30; // 错误的select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno = 30); // 正确的。注意:当运算符的优先级不确定的时候加小括号。in等同于or:找出工作岗位是MANAGER和SALESMAN的员工?select ename,job from emp where job = "SALESMAN" or job = "MANAGER";select ename,job from emp where job in("SALESMAN", "MANAGER");select ename,job from emp where sal in(800, 5000); // in后面的值不是区间,是具体的值。+-------+-----------+| ename | job |+-------+-----------+| SMITH | CLERK || KING | PRESIDENT |+-------+-----------+not in: 不在这几个值当中。select ename,job from emp where sal not in(800, 5000);模糊查询like ? 找出名字当中含有O的?(在模糊查询当中,必须掌握两个特殊的符号,一个是%,一个是_)%代表任意多个字符,_代表任意1个字符。select ename from emp where ename like "%O%";+-------+| ename |+-------+| JONES || SCOTT || FORD |+-------+找出名字中第二个字母是A的?select ename from emp where ename like "_A%";+--------+| ename |+--------+| WARD || MARTIN || JAMES |+--------+找出名字中有下划线的?mysql> select * from t_user;+------+----------+| id | name |+------+----------+| 1 | zhangsan || 2 | lisi || 3 | WANG_WU |+------+----------+select name from t_user where name like "%_%";+----------+| name |+----------+| zhangsan || lisi || WANG_WU |+----------+select name from t_user where name like "%\_%";+---------+| name |+---------+| WANG_WU |+---------+找出名字中最后一个字母是T的?select ename from emp where ename like "%T";+-------+| ename |+-------+| SCOTT | +-------+
13、排序(升序、降序)
按照工资升序,找出员工名和薪资? select ename,sal from emp order by sal;+--------+---------+| ename | sal |+--------+---------+| SMITH | 800.00 || JAMES | 950.00 || ADAMS | 1100.00 || WARD | 1250.00 || MARTIN | 1250.00 || MILLER | 1300.00 || TURNER | 1500.00 || ALLEN | 1600.00 || CLARK | 2450.00 || BLAKE | 2850.00 || JONES | 2975.00 || FORD | 3000.00 || SCOTT | 3000.00 || KING | 5000.00 |+--------+---------+注意:默认是升序。怎么指定升序或者降序呢?asc表示升序,desc表示降序。 select ename , sal from emp order by sal; // 升序 select ename , sal from emp order by sal asc; // 升序 select ename , sal from emp order by sal desc; // 降序。按照工资的降序排列,当工资相同的时候再按照名字的升序排列。 select ename,sal from emp order by sal desc; select ename,sal from emp order by sal desc , ename asc; 注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。找出工作岗位是SALESMAN的员工,并且要求按照薪资的降序排列。 select ename,job,sal from emp where job = "SALESMAN" order by sal desc;+--------+----------+---------+| ename | job | sal |+--------+----------+---------+| ALLEN | SALESMAN | 1600.00 || TURNER | SALESMAN | 1500.00 || WARD | SALESMAN | 1250.00 || MARTIN | SALESMAN | 1250.00 |+--------+----------+---------+ select 字段 from 表名 where 条件 order by .... order by是最后执行的。
14、分组函数?
count 计数sum 求和avg 平均值max 最大值min 最小值记住:所有的分组函数都是对“某一组”数据进行操作的。找出工资总和?select sum(sal) from emp;找出最高工资?select max(sal) from emp;找出最低工资?select min(sal) from emp;找出平均工资?select avg(sal) from emp;找出总人数?select count(*) from emp;select count(ename) from emp;分组函数一共5个。分组函数还有另一个名字:多行处理函数。多行处理函数的特点:输入多行,最终输出的结果是1行。分组函数自动忽略NULL。select count(comm) from emp;+-------------+| count(comm) |+-------------+| 4 |+-------------+select sum(comm) from emp;+-----------+| sum(comm) |+-----------+| 2200.00 |+-----------+select sum(comm) from emp where comm is not null; // 不需要额外添加这个过滤条件。sum函数自动忽略NULL。找出工资高于平均工资的员工?select avg(sal) from emp; // 平均工资+-------------+| avg(sal) |+-------------+| 2073.214286 |+-------------+select ename,sal from emp where sal > avg(sal); //ERROR 1111 (HY000): Invalid use of group function思考以上的错误信息:无效的使用了分组函数?原因:SQL语句当中有一个语法规则,分组函数不可直接使用在where子句当中。why????怎么解释?因为group by是在where执行之后才会执行的。select5..from1..where2..group by3..having4..order by6..count(*)和count(具体的某个字段),他们有什么区别?count(*):不是统计某个字段中数据的个数,而是统计总记录条数。(和某个字段无关)count(comm): 表示统计comm字段中不为NULL的数据总数量。分组函数也能组合起来用:select count(*),sum(sal),avg(sal),max(sal),min(sal) from emp;+----------+----------+-------------+----------+----------+| count(*) | sum(sal) | avg(sal) | max(sal) | min(sal) |+----------+----------+-------------+----------+----------+| 14 | 29025.00 | 2073.214286 | 5000.00 | 800.00 |+----------+----------+-------------+----------+----------+找出工资高于平均工资的员工?第一步:找出平均工资select avg(sal) from emp;+-------------+| avg(sal) |+-------------+| 2073.214286 |+-------------+第二步:找出高于平均工资的员工select ename,sal from emp where sal > 2073.214286;+-------+---------+| ename | sal |+-------+---------+| JONES | 2975.00 || BLAKE | 2850.00 || CLARK | 2450.00 || SCOTT | 3000.00 || KING | 5000.00 || FORD | 3000.00 |+-------+---------+select ename,sal from emp where sal > (select avg(sal) from emp);
15、单行处理函数
什么是单行处理函数?输入一行,输出一行。计算每个员工的年薪?select ename,(sal+comm)*12 as yearsal from emp;重点:所有数据库都是这样规定的,只要有NULL参与的运算结果一定是NULL。使用ifnull函数:select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;ifnull() 空处理函数?ifnull(可能为NULL的数据,被当做什么处理) : 属于单行处理函数。select ename,ifnull(comm,0) as comm from emp;+--------+---------+| ename | comm |+--------+---------+| SMITH | 0.00 || ALLEN | 300.00 || WARD | 500.00 || JONES | 0.00 || MARTIN | 1400.00 || BLAKE | 0.00 || CLARK | 0.00 || SCOTT | 0.00 || KING | 0.00 || TURNER | 0.00 || ADAMS | 0.00 || JAMES | 0.00 || FORD | 0.00 || MILLER | 0.00 |+--------+---------+
16、group by 和 having
group by : 按照某个字段或者某些字段进行分组。having : having是对分组之后的数据进行再次过滤。案例:找出每个工作岗位的最高薪资。select max(sal),job from emp group by job;+----------+-----------+| max(sal) | job |+----------+-----------+| 3000.00 | ANALYST || 1300.00 | CLERK || 2975.00 | MANAGER || 5000.00 | PRESIDENT || 1600.00 | SALESMAN |+----------+-----------+注意:分组函数一般都会和group by联合使用,这也是为什么它被称为分组函数的原因。并且任何一个分组函数(count sum avg max min)都是在group by语句执行结束之后才会执行的。当一条sql语句没有group by的话,整张表的数据会自成一组。select ename,max(sal),job from emp group by job;以上在mysql当中,查询结果是有的,但是结果没有意义,在Oracle数据库当中会报错。语法错误。Oracle的语法规则比MySQL语法规则严谨。记住一个规则:当一条语句中有group by的话,select后面只能跟分组函数和参与分组的字段。每个工作岗位的平均薪资?select job,avg(sal) from emp group by job;+-----------+-------------+| job | avg(sal) |+-----------+-------------+| ANALYST | 3000.000000 || CLERK | 1037.500000 || MANAGER | 2758.333333 || PRESIDENT | 5000.000000 || SALESMAN | 1400.000000 |+-----------+-------------+多个字段能不能联合起来一块分组?案例:找出每个部门不同工作岗位的最高薪资。select deptno,job,max(sal)fromempgroup bydeptno,job;找出每个部门的最高薪资,要求显示薪资大于2900的数据。第一步:找出每个部门的最高薪资select max(sal),deptno from emp group by deptno;+----------+--------+| max(sal) | deptno |+----------+--------+| 5000.00 | 10 || 3000.00 | 20 || 2850.00 | 30 |+----------+--------+第二步:找出薪资大于2900select max(sal),deptno from emp group by deptno having max(sal) > 2900; // 这种方式效率低。+----------+--------+| max(sal) | deptno |+----------+--------+| 5000.00 | 10 || 3000.00 | 20 |+----------+--------+select max(sal),deptno from emp where sal > 2900 group by deptno; // 效率较高,建议能够使用where过滤的尽量使用where。+----------+--------+| max(sal) | deptno |+----------+--------+| 5000.00 | 10 || 3000.00 | 20 |+----------+--------+找出每个部门的平均薪资,要求显示薪资大于2000的数据。第一步:找出每个部门的平均薪资select deptno,avg(sal) from emp group by deptno;+--------+-------------+| deptno | avg(sal) |+--------+-------------+| 10 | 2916.666667 || 20 | 2175.000000 || 30 | 1566.666667 |+--------+-------------+第二步:要求显示薪资大于2000的数据select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000;+--------+-------------+| deptno | avg(sal) |+--------+-------------+| 10 | 2916.666667 || 20 | 2175.000000 |+--------+-------------+where后面不能使用分组函数:select deptno,avg(sal) from emp where avg(sal) > 2000 group by deptno;// 错误了。这种情况只能使用having过滤。
17、总结一个完整的DQL语句怎么写?
select..from..where..group by..having..order by..
-
今日聚焦!SSM整合(spring-springmvc-mybatis)之CRUD
概述:加入功能:CRUD、分页、返回json、国际化配置了访问静态文件;配置了REST风格的代码;一、目录结...
来源: 观点:MYSQL 1 DAY
世界微速讯:智能PDU,网络远程管理电源能耗提升配电效率
当前滚动:“云办公”如何用任务协同工具搞定项目和团队管理?
今日聚焦!SSM整合(spring-springmvc-mybatis)之CRUD
焦点日报:又拓新业务 比亚迪全新皮卡谍照曝光:DM混动没跑了
热点!不掉绒、无静电!史努比牛奶绒床品四件套大促:券后99元
天天快讯:一箭十四星 捷龙三号运载火箭首飞发射成功:海陆两用
焦点快播:QQ等级全球第一咋做到的?本人回应让网友羡慕:小时候家里开网吧
官方“挖墙脚”?网易《逆水寒》宣布推出“网易魔兽老兵服”
资讯:vscode使用chatGPT
全球滚动:我与 ChatGPT 讨论了面向对象语言 中,关于动态调用的问题
快播:第三方登录组件-JustAuth
【环球报资讯】BI智慧仓储,带你体验数字化仓储物流管理
环球今亮点!把ipa文件上传到App Store教程步骤
每日热讯!易基因:简化甲基化测序(RRBS)在植物生态表观基因组学中的机遇和局限|深度综述
当前聚焦:记.net framework php接口 返回数据格式问题 请求接口远程服务器返回错误: (500) 内部服务器错误
ChatGPT 大白话 SmartIDE
Zabbix与乐维监控对比分析(三)——对象管理篇
全球报道:专访|开源之夏最佳质量奖 Apache RocketMQ Committer 黄章衡
世界热消息:.net6制作让同事不能上网的arp欺骗工具
每日热门:如何利用 A/B 实验提升产品用户留存? 看字节实战案例给你答案!
chatGPT辣么火,你却不会注册
每日速讯:2022最新上传ipa到appstore的步骤说明
怎么在电脑上查看iPhone定位?iphone定位不准怎么校正?
怎么验证windows是不是正版?验证windows正版的方法有哪些?
光大银行信用卡额度一般是多少?光大银行信用卡怎么查询进度?
银行卡号泄露有危险吗?银行卡号泄露挂失有用吗?
空调怎么省电?空调省电的正确用法有哪些?
word文档怎么做思维导图?word文档怎么做小抄?
宏碁4750g怎么进入bios?宏碁4750G需要哪些驱动?
电视机顶盒怎么破解?电视机顶盒哪个牌子好用?
诺基亚710上市价格是多少?诺基亚710手机现在能用吗?
天然气热值是多少大卡?天然气热值换算表
环球热议:行为管理(锐捷业务软件篇)
焦点报道:直播间疯狂刷礼物可能是在洗钱:网络水军用千部手机给主播打赏 最多刷10亿元
国产操作系统deepin推送20.8版本:wine应用开启速度获得提升
联想PC小新桌面助手上线:实用性堪比手机控制中心
无叶无根无枝条的花你见过没?曾消失30年:开败后就变黑
世界今亮点!《原神》《幻塔》都败了!《MARVEL SNAP》摘得TGA 2022年度最佳手游
【全球速看料】BI智慧仓储行业应用方案,让你的仓储物流不再复杂
【全球播资讯】RTX 3050加持 联想轻薄旗舰本小新Pro 16史低价:5799元
【聚看点】特斯拉左转失控 车主称刹车和方向盘突然变硬:官方售后回应尴尬
观热点:海外经销商顶不住:RTX 4080英国又降价 轻松降近900元还会继续
焦点播报:首批车主反馈良好!恒驰汽车回应停工停产传闻:恒驰5按计划交付
即时焦点:谷歌Chrome浏览器新模式上线:最多可减少30%内存占用
每日消息!2岁就给爹打工 马斯克给儿子发了一张工牌
世界球精选!《仙剑奇侠传七》更新2.0版本:体积直接减半 内存、显存占用更低
振奋!全球首架C919今日交付中国东方航空:大家啥时候能坐上国产大飞机?
真实感渲染:变换(二维与三维)
老年人到底要不要打新冠疫苗?怎么打?一文说清
世界实时:对称加密
信息:CSS相对定位3大应用场景5个实战应用案例详解
今日最新!FreeSWITCH学习笔记:系统架构
Redis主从复制,哨兵模式和集群模式
漏洞预警:宝塔面板疑似出现高危漏洞
看不上油改电 要不来看看电改油?3000公里不用充电
友商旗舰陆续发布 产品经理:小米13毫无压力
焦点热文:支付宝可以绑境外银行卡了:4步搞定 直接扫码
世界快消息!SpringBoot中统一日志管理
MAUI新生3.5-深入理解XAML:行为Behavior
动态焦点:人工智能ChatGPT被玩坏了
世界百事通!卖不动车后 特斯拉上海工厂最新现状:闲下来了
天天速看:激光投影成了香饽饽!第三季度市场出货量17.5万台
苹果感受下!宋紫薇道出环保真谛:都用一套充电器才是真环保
直播两大奇观上演:火星冲日巧遇火星伴月 下次这么亮得等2033年
年薪90万 却起诉公司太无聊:每天上班只能摸鱼
全球今热点:JIT 即时编译 (史上最全)
喜大普奔!欧盟要求统一使用Type-C时间确定:苹果iPhone必须要换USB-C
被批沉闷 影迷吐槽矫情!《阿凡达2》首映后好评率超95% 首选必看IMAX 3D版
热点!卢伟冰:电竞手机注定要消亡
既是口罩又能降噪听歌!戴森发布空气净化耳机Dyson Zone:中国网友狂吐槽
天天快报!镜头可伸缩!传音发布Tecno Phantom X2系列新机
SK海力士研发全球最快内存:超越DDR5-4800 80%!
环球短讯!小米13多次被偷跑 法务“好心”提醒:可判3-10年
12代i7售价过万!传音推出Tecno MegaBook S1笔记本
看点:印度推首款黄金ATM机 插卡取金币的机子你用过吗?
【全球时快讯】俩孩童遇电梯迫降从16楼坠至1楼:万幸平安无事
排面!小刀电动车成芜湖官方指定用车:渔政、城管都在用
Model-Agnostic Meta-Learning (MAML) 理解
当前焦点!用HTML CSS 实现简洁美观的时间线(历史年表)
世界快资讯丨Win7/8.1再见了!前两大浏览器Chrome和Edge最新版均已放弃支持
环球关注:纯洁的曲线之美:索泰发布RTX 40 AMP月白显卡
环球即时:绿源、松果牌部分电动自行车召回 原因均是后尾灯反光
记录--微信小程序获取用户信息(附代码、流程图)
天天快看:13 Javac将源码编译为字节码的过程
每日精选:数据安全新战场,EasyMR为企业筑起“安全防线”
环球通讯!江淮大众退出历史!大众安徽首台预量产车下线:MEB纯电平台、对标Model Y
ThinkPad X1 Carbon 30周年纪念版开卖:18999元!只有300台
环球报道:可换京东100元充值卡:微软奖励积分计划国区上线
环球热消息:没钱买车了?乘联会公布11月零售销量:14年来首次“旺季”环比下滑
世界热点评!7399元大杀器?AMD RX 7900 XT显卡性能跑分首曝:不及期望
热讯:AI绘画,画你心中所想!【飞链云版图】,圆你心中所梦!
小米13 Pro旷野绿至尊套装公布:一整套全是绿的!
【天天时快讯】利润减少18亿!宗庆后承诺娃哈哈3万员工工资不降年终奖照发:网友直呼良心
焦点资讯:启动性能提升50%!Win11安卓子系统升级Android 13
每日看点!宁德时代拿下本田汽车超级大单 2030年前供货123GWh电池
全球速读:ChatGPT国产平替出现了:APP商店就能下载 还可给AI加人设
速看:【智能PDU】智慧网络远程电源开关管理系统
全球短讯!Python中12个常用模块的使用教程
你知道“智慧城市”是什么吗?