group by用法多个字段_select的用法

v2-a57fb69b72c47c17ed3233796bc76211_1440w.jpg?source=172ae18b

select的用法
--每个员工的所有信息
select * from emp;
--每个人的部门编号,姓名,薪水
select empno, ename, sal from emp;
--每个人的年薪
select ename, sal*12 from emp;
--计算2*3的值
select 2*3 from emp;
--计算2*3的值(dual)
select 2*3 from dual;
--得到当前时间
select sysdate from dual;
--可以给列起别名,比如求每个人的年薪
select ename, sal*12 annual_sal from emp;
--如果别名中有空格,需要用双引号
select ename, sal*12 "annual sal" from emp;
--如果没有内容,则为空
select ename, sal, comm from emp; /*null*/
--当空字段参与计算,则结果是null
--例如:计算每个人的全年的收入包括月薪和年终奖
select ename, sal * 12 + comm from emp;
--可以将多个字符串拼在一起。比如:求每个人的薪水,格式为smith-sal-123
select ename || ‘-‘ || sal || ‘-‘ || comm from emp;
--如果字符串中有单引号,需要用另外一个单引号转义,比如:这样一个字符串: he‘s friend
select ename || ‘he‘‘s friend‘ from emp;
--------------------------------------------------------
--distinct 关键词的用法
--求有哪些个部门
select deptno from emp;
select distinct deptno from emp;
--可以用来修饰多个字段
--求有哪些个部门和job的组合
select deptno , job from emp;
select distinct deptno , job from emp;
--------------------------------------------------------
where关键词的用法
--可以是数值类型的等值判断。比如:求10这个部门的所有员工
select * from emp where deptno = 10;
--可以是字符串类型的等值判断。比如:求叫KING的这个人的信息
select * from emp where ename = ‘KING‘;
--也可以是不等值判断。比如:求薪水小于2000的员工信息
select * from emp where sal > 2000;
--字符串也可以做不等值判断,比如:求所有ename大于‘CBA‘的员工信息。
select ename from emp where ename > ‘CBA‘;
--求部门不是10的部门
select * from emp where deptno <> 10;
--求薪水在800和1500之间的员工信息
select * from emp where sal between 800 and 1500;
--也可以写成
select * from emp where sal >= 800 and sal <= 1500;
/*这样写则不可以
--select * from emp where 800 <= sal <= 1500;
*/
--where...in..的用法。比如:求薪水是800或者1500或正2000的员工信息
select ename, empno, sal from emp where sal in (800, 1500, 2000);
--相当于写成这样
select ename, empno , sal from emp where sal = 800 or sal = 1500 or sal = 2000;
--再比如求姓名是KING,SMITH,AA的员工信息
select ename, empno , sal from emp where ename in (‘KING‘, ‘SMITH‘, ‘AA‘);
--求入职时间在20-2月-81之后的员工信息
select ename, hiredate from emp where hiredate > ‘20-2月-81‘;
--------------------------------------------------------
--and or not的用法
--求薪水大于1000或者部门在10这个部门的员工信息
select * from emp where sal > 1000 or deptno = 10;
--求薪水不是800或者不是1500或者不是3000的员工信息
select * from emp where sal <> 800 and sal <> 1500 and sal <> 3000;
--也可以这样来写
select * from emp where sal not in (800, 1500, 3000);
--------------------------------------------------------
--like的用法
--求名字中包含ALL这三个字符的员工信息
select ename from emp where ename like ‘%ALL%‘;
--求名字中的第二个字母是A的员工
select ename from emp where ename like ‘_A%‘;
--特殊字符需要转义。比如:求员工中包含特殊字符%的员工信息
select ename from emp where ename like ‘%%%‘ escape ‘‘;
--------------------------------------------------------
--null的用法
--求没有年终奖的员工
select ename from emp where comm is null;
--求有年终奖的员工
select ename from emp where comm is not null;
--------------------------------------------------------
--order by的用法
--员工信息按照姓名正序排列
select ename, sal from emp order by ename asc; --ascent
--员工信息按照倒叙排列
select ename, sal from emp order by ename desc; --descent
--也可以是多个字段组合排列。例如:员工信息按照部门正序排列,并且按照姓名倒叙排列
select ename, sal, deptno from emp order by deptno asc, ename desc;
--------------------------------------------------------
--function的用法
--把所有姓名变成小写
select lower(ename) from emp;
--把所有姓名变成大写
select upper(ename) from emp;
--求所有人名中包含‘a‘的员工信息不区分大小写
select ename from emp where lower(ename) like ‘%a%‘;
--截取子字符串,比如求Hello的一部分
select substr(‘Hello‘, 2) from dual;
--求Hello的一部分,并指明长度
select substr(‘Hello‘, 2, 3) from dual;
--求ascii码对应的字符
select chr(65) from dual;
--求字符对应的ascii码
select ascii(‘中‘) from dual;
--四舍五入
select round(23.652) from dual;
--四舍五入小数点后面多少位
select round(23.652, 1) from dual;
--四舍五入小数点前面多少位
select round(23.652, -1) from dual;
--------------------------------------------------------
--important!日期转换函数
--------------------------------------------------------
--将当前日期转换成1981-03-12 12:00:00这种形式的字符串
select to_char(sysdate, ‘YYYY-MM-DD HH24:MI:SS‘) from dual;
--将1981-03-12 12:00:00字符串转换成日期
select to_date(‘1981-03-12 12:00:00‘, ‘YYYY-MM-DD HH24:MI:SS‘) from dual;
--将每个人的薪水转换成固定格式的字符串
select to_char(sal, ‘L00,000.9999‘) from emp;
--将固定格式的字符串转换成数值
select to_number(‘$1,250.00‘, ‘$9,999.99‘) from dual;
--null当null参与计算时候,需要要nvl这个函数
select ename, sal*12+comm from emp;
select ename, sal*12+ nvl(comm, 0) from emp;
--------------------------------------------------------
--group function组函数
--求所有人的薪水的总和,平均值,最大值,最小值
select sum(sal) , avg(sal), max(sal) , min(sal) from emp;
--求总的行数
select count(*) from emp;
--求总的行树,(可以指定具体的字段)但如果字段有null值的时候需要小心使用
select count(comm) from emp;
--也可以过滤掉重复的行之后统计行数
select count(distinct deptno) from emp;
--可以指明按照哪个字段进行分组.比如;分部门统计最高薪水
select deptno, max(sal) from emp group by deptno;
--也可以按照多个字段来分组统计,比如:分部门和岗位,统计最高薪水和行数
select deptno, job , max(sal), count(*) from emp group by deptno, job;
--------------------------------------------------------
--重要:出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。
--------------------------------------------------------
--select ename, deptno, max(sal) from emp group by deptno;
--select ename, max(sal) from emp;
--求薪水最高的员工姓名
select max(sal) from emp;
select ename, sal from emp where sal = 5000;
select ename from emp where sal = (select max(sal) from emp);
--having从句的用法
--求平均薪水是2000以上的部门
select avg(sal), deptno from emp group by deptno having avg(sal) > 2000;
--------------------------------------------------------
--总结一下select语法
select
from
where
group by
having
order by
--------------------------------------------------------
-- 执行顺序very important!
-- 首先执行where语句将原有记录过滤;
-- 第二执行group by 进行分组;
-- 第三执行having过滤分组;
-- 然后将select 中的字段值选出来;
-- 最后执行order by 进行排序;
--------------------------------------------------------
/*
按照部门分组统计,求最高薪水,平均薪水
只有薪水是1200以上的才参与统计
并且分组结果中只包括平均薪水在1500以上的部门
而且按照平均薪水倒叙排列
*/
select max(sal),avg(sal), deptno
from emp
where sal > 1200
group by deptno
having avg(sal) > 1500
order by avg(sal) desc;
--------------------------------------------------------
/*
把雇员按部门分组,
求最高薪水, 部门号,
过滤掉名字中第二个字母是‘A‘的,
要求分组后的平均薪水>1500,
按照部门编号倒序排列
*/
select deptno, max(sal)
from emp
where ename not like ‘_A%‘
group by deptno
having avg(sal) > 1500
order by deptno desc;
/* very very important! */
select ename, deptno from emp;
select deptno, dname from dept;
----员工姓名以及员工所在部门的名字同时显示出来
select ename, dname from emp , dept;
select ename, dname from emp , dept where emp.deptno = dept.deptno;
--要求每位雇员的薪水等级
select ename, sal, grade from emp, salgrade where emp.sal >= salgrade.losal and emp.sal <= salgrade.hisal;
select ename, sal, grade from emp e, salgrade s where e.sal between s.losal and s.hisal;
--求工作职位是’PRESIDENT’的雇员姓名,部门名称和薪水等级时
select ename, dname, grade
from emp e, dept d, salgrade s
where e.deptno = d.deptno and e.sal between s.losal and s.hisal
and job = ‘PRESIDENT‘;
--求每位员工的姓名,及其上级经理的姓名
select empno, ename, mgr from emp;
select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机考试打字小作文,打字练习作文(通用5篇)

打字练习作文(通用5篇)导语&#xff1a;随着计算机在人们的生活中普及&#xff0c;敲键盘打字的速度就变成了人们努力的方向。下面是小编为大家整理的打字练习作文(通用5篇)&#xff0c;欢迎阅读&#xff0c;希望大家能够喜欢。打字练习作文 篇1今天过得有些无聊&#xff0c;爸…

eclipse创建pojo_使用Eclipse Hibernate插件逐步为POJO域Java类和hbm自动生成代码

eclipse创建pojo概述&#xff1a; 在本教程中&#xff0c;我们将使用Eclipse Hibernate工具自动生成域对象和相应的hbm xml文件。 如果您正在处理大型或中型项目&#xff0c;并且开始时有超过5个以上的表&#xff0c;那么您可能会发现此插件是自动生成映射域对象java文件和相应…

c语言中x的n次方怎么表示_线性代数的本质及其在AI中的应用

线性代数是 AI 专家必须掌握的知识&#xff0c;这已不再是个秘密。如果不掌握应用数学这个领域&#xff0c;你永远就只能是「门外汉」。当然&#xff0c;学习线性代数道阻且长。数学&#xff0c;尤其是线性代数常与枯燥、复杂和毫无意义的事物联系起来。不过你还可以另辟蹊径。…

解码base64_linux C++ Base64编解码

Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时&#xff0c;系统之间的报文交互都需要使用Base64对明文进行转码&#xff0c;然后再进行签名或加密&#xff0c;之后再进行&#xff08;或再次Base64&#xff09;传输。那么&#xf…

java的for循环取出数据只是拿到最后一个_新兴大数据分析榆中百合

新兴大数据分析榆中百合大数据流程从流程角度上看&#xff0c;整个大数据处理可分成4个主要步骤。处理流程图分为三层(数据采集层&#xff0c;数据存储与计算处理层&#xff0c;数据可视化)&#xff1a;表2-1 系统环境系统版本Windows 10专业版(建议)LinuxCentOS 6.8 or CentO…

c++冒泡排序代码_【开源推荐】数据结构和算法必知必会的50个代码实现

最近GitHub上发现了个非常不错的项目&#xff0c;目前star 4000&#xff0c;项目主要讲数据结构和算法&#xff0c;有多种语言 50个代码实现。实现语言有c&#xff0c;c#&#xff0c;go&#xff0c;java&#xff0c;javascript&#xff0c;object-c&#xff0c;python&#xff…

android 抽屉_Android Studio之路,我们来了解一下Google官方Android开发工具

记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了&#xff0c;所有重构了一下思路&#xff0c;覆写了一篇Google主推-Android开发利器——Android Studio&#xff0c;这可能是最全的AS教程&#xff01;Android Studio,自Google2013年发布以来&#xff0c;就…

karaf osgi_在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

karaf osgi请查看我在Karaf的OSGi中构建普通CXF服务&#xff08;无Camel&#xff09;的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播&#xff08;并并行化&#xff09;传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终…

酒店wifi代理服务器没有响应,wn10连接酒店wifi的登录界面无法弹出如何处理

通常情况下&#xff0c;我们在连接酒店wifi后都会出现登录验证界面。不过&#xff0c;最近一位windows10系统用户在连接wifi后打开网页却遇到无法显示登陆界面情况&#xff0c;该怎么办呢&#xff1f;接下来&#xff0c;就随小编一起看看wn10连接酒店wifi的登录界面无法弹出问题…

python词云安装什么库_python词云安装什么库

python词云需要安装wordcloud库。 安装方法&#xff1a; 在cmd使用pip install wordcloud命令即可安装。 wordcloud库把词云当作一个WordCloud对象&#xff1a;wordcloud.WordCloud()代表一个文本对应的词云。 可以根据文本中词语出现的频率等参数绘制词云。 示例&#xff1a;f…

怎么wps解除合并单元格_wps表格怎么锁定单元格

wps表格怎么锁定单元格呢&#xff1f;很多用户对此还不是很清楚&#xff0c;小编这里就给大家带来有关wps表格怎么锁定单元格的回答&#xff0c;希望能够对大家有所帮助。一、整个表格进行锁定1、同时按住CtrlA&#xff0c;选中整个单元格&#xff0c;如图2、选中以后&#xff…

挡土墙计算软件_广联达软件如何计算钢板止水带?

原创作者&#xff1a;张向荣1、什么是钢板止水带&#xff1f;混凝土结构中&#xff0c;地下室墙体施工中&#xff0c;如果底板和墙体分开浇筑&#xff0c;就需要留置施工缝。施工缝&#xff1a;施工缝并不是一种真实存在的“缝”&#xff0c;它只是因先浇筑混凝土超过初凝时间&…

网站图片多服务器选多大,网站上的图片一般多大合适

网站上的图片一般多大合适 内容精选换一换安装了SSL证书后&#xff0c;访问网站时&#xff0c;HTTPS比HTTP要多几次握手的时间&#xff0c;HTTPS协议握手阶段比较费时&#xff0c;同时还要进行RSA校验&#xff0c;因此使用了SSL证书后&#xff0c;相较于HTTP访问&#xff0c;访…

怎么在自己的网站上显示其它网站_自己做网站要怎么选域名?

域名是一种无形的资产注册一个好的域名能让你的网站更加容易取得成功&#xff0c;那么什么样的域名才是好域名呢?自己做网站域名要怎么选呢?1.好记的域名如果一个喜欢你网站的网友&#xff0c;电脑硬盘坏了丢失了收藏夹里所有的网址&#xff0c;或者在他人机器上上网&#xf…

微信朋友圈删除后服务器还有吗,删了的朋友圈还可以找回来吗

演示工具&#xff1a;手机型号&#xff1a;iphone12系统版本&#xff1a;ios14软件版本&#xff1a;微信7.0.20删除的朋友圈动态不能找回来。删除是从网络服务器上面把此信息删除了&#xff0c;是无法找回的&#xff0c;而已删除掉以后&#xff0c;好友那边此条动态也是同步删除…

mysql drop_mysql恢复drop掉的表

手贱drop了几个表&#xff0c;以为能从昨天的备份中恢复&#xff0c;结果发现最近两个月的备份都是空文件&#xff0c;因为备份脚本在两个月前改错了&#xff01;难道就这样丢失两个月的数据&#xff1f;镇定镇定——先看看mysql的配置文件cat /etc/my.cnf发现如下字样说明有救…

修改网站首页批处理_几个神奇的批处理,万事不求人!

文字 | 配图 | 排版 |©老Y网站&#xff1a;www.youquhome.cn小白可能会问啥事批处理&#xff1f;批处理(Batch)&#xff0c;也称为批处理脚本。是对某对象进行批量的处理&#xff0c;通常被认为是一种简化的脚本语言&#xff0c;它应用于DOS和Windows系统中。批处理文件的…

全境封锁服务器维护 2018,全境封锁全域事件2018年8月活动什么时候开始_全域事件怎么玩...

本文给大家带来全境封锁全域事件2018年8月活动时间介绍&#xff0c;全境封锁全域事件三进击即将到来&#xff0c;想要刷面具的不要错过哦。全域事件三&#xff1a;进击重新回归了!开始时间&#xff1a;8 月 27 日周一结束时间&#xff1a;9 月 2 日周日参加这一次的全域事件将会…

linux下部署mysql数据库连接_Linux远程部署MySQL数据库详细步骤

Linux远程部署MySQL数据库&#xff0c;供大家参考&#xff0c;具体内容如下1.0 安装 yum install lrzsz -y 命令(导入外界压缩包插件(已下载无视即可))1.1 将mysql压缩包拷贝到 /usr/local 文件目录下进行解压&#xff1a;1.2 将导入的Mysql压缩包进行解压,输入&#xff1a;tar…

nginx 电子书_Nginx最详细的反向代理配置步骤,拿去不谢

点击“蓝字”关注我们#今日份技术干货#使用Nginx实现Web反向代理功能&#xff0c;实现如下功能&#xff1a;◆后端Web服务器两台&#xff0c;可以使用httpd实现◆Nginx采用轮询的方式调用后端Web服务器◆两台Web服务器的权重要求设置为不同的值◆最大失败次数为1&#xff0c;失…