-
2020-11-25 20:54:01
问题:利用emp表中的数据,完成如下查询需求:
(1)查询20号部门的所有员工信息。
select * from emp where deptno=20;
(2)查询津贴(comm)高于月薪(sal)的员工信息。
select * from emp where comm>sal;
(3)查询津贴高于月薪的20%的员工信息。
select * from emp where comm>sal*0.2;
(4)查询10号部门中职位为Manager和20号部门中职位为Clerk的员工的信息。
select * from emp where deptno=10 and job='manager' or deptno=10 and job='clerk';
(5)查询所有职位不是Manager和Clerk,且月薪大于或等于2000的员工详细信息。
select * from emp where job not in('manager','clerk') and sal>=2000;
(6)查询没有津贴或津贴低于100的员工信息。
select * from emp where comm<100 or comm is null;
(7)查询员工工龄大于或等于10年的员工信息。【四种方法】
select * from emp e WHERE e.HIREDATE<=DATE_SUB(SYSDATE(),INTERVAL 10 YEAR); select * from emp WHERE datediff(curdate(), HIREDATE)/365>=10; select * from emp where datediff(now(),'2020-9-14')>=10; select * from emp where hiredate<='1990-1-1';
(8)查询员工信息,要求以全部字母大写的方式显示所有员工的姓名。
select upper(ename) from emp;
(9)查询在2月份入职的所有员工信息。
select * from emp where extract(month from hiredate)=2;
(10)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月份相同则按入职的年份排序。
select ename,extract(year from hiredate),extract(month from hiredate) from emp order by extract(month from hiredate);
(11)统计各个职位的人数与平均月薪。
select job ,count(*),avg(sal) from emp group by job;
(12)统计每个部门中各个职位的人数与平均月薪。
select ename ,job,count(*),avg(sal) from emp group by job;
(13)部门平均月薪最高的部门编号(提示:使用部门编号分组后,按照平均月薪降序排序,之后只显示第一条记录)。
select empno,ename,avg(sal) from emp group by empno order by avg(sal) desc limit 1;
悄悄地发别被发现了,只是为了做测试抄答案方便更多相关内容 -
【EXCEL技巧】制作一个信息查询表(仅可查看自己)
2021-08-03 01:11:07说明:笔者想制作一个类似分数查询网站一样,通过输入自己独一无二的“编号代码”,系统会自动生成对应的数据。奈何编程水平不够,Python也是刚学不久,听说查找数据检索数据很快,matlab也是,但是也要做一个可视化...说明:笔者想制作一个类似分数查询网站一样,通过输入自己独一无二的“编号代码”,系统会自动生成对应的数据。奈何编程水平不够,Python也是刚学不久,听说查找数据检索数据很快,matlab也是,但是也要做一个可视化的GUI界面,并且以文件的形式传到别人那里可以用,然后放弃了。
然后EXCEL楼主就玩得比较熟悉了(和大佬就不比了),以前做数模比赛的时候用到了它的大数据筛选、处理等功能,感觉就是鼠标点点的事情,虽然会用到一些函数。然后就花了点时间去搞了一下,效果如下:
教程如下:
1、创建一个excel表格文件,在sheet1上是查询系统,新建一个工作表,把数据放进去(到时候会隐藏掉),数据准备通过独一无二的密码查询,最后显示对应的信息
2、在目标工作表上绘制好查询系统的样式(笔者审美不好hhh)
3、接下来就是数据检索并输出了(这里先随便初始化一个密码,为了验证对不对),这里用到的有VLOOKUP这个函数。
选中要输出数据的格子(先从姓名开始),菜单栏找到“公式”,点击插入函数,找到VLOOKUP
确定后,回弹出VLOOKUP函数参数框
第一个参数是要匹配的地方,选中要匹配信息的格子
第二个参数是查询数据的区域,点击后,再鼠标跳转到刚刚新建的数据的工作表,选中所有数据(注意密码那一栏和要输出数据那一列必须选上)
第三个参数是2中选中的区域中目标所在的列数,比如,第一个要查找的是姓名,所在的列为第2列。第四个参数默认为0
4、后面的学号、语文、数学、英语同理
5、后面换密码检验一下对不对
6、隐藏工作表
毕竟数据是秘密,当然自己只能查自己的。
所以右键工作表,点击“隐藏“
然后防止别人又取消隐藏,找到菜单栏的”审阅“,点击保护工作簿
选择加密,这样别人就不能取消隐藏了
7、设置指定格子可编辑,其他格子不可编辑(防止查阅者不小心改了表格导致错误)
这里只设置密码那一格可以编辑,其他均不可编辑:
选中密码格子,右键,设置单元格格式,点击保护,把锁定的勾选取消掉,确定
找到菜单栏的”审阅“,点击保护工作表(不要和上一个搞混了)
选定锁定单元格的勾选取消掉,设置密码,确认
8、最后就是完整效果啦
只有密码框是可以编辑的,使用者只能输入自己的密码查询信息,其他都不能动,除非破解了你的密码
一看时间,发现是凌晨1点多了,睡了睡了
-
数据库的实例化操作——员工信息的查询——简单表查询(二)
2021-04-01 14:07:09表信息查看 ——>表信息 简单查询 查询所有的职位 select distinct job from emp; 查询出来的job是所有人的职位,用distinct去重复 查询emp表中每个员工的姓名和年薪 select ename,(sal+ifnull(comm,0))*...员工信息的查询——简单表查询(二)
表信息查看
——>表信息
简单查询
- 查询所有的职位
select distinct job from emp;
查询出来的job是所有人的职位,用distinct去重复
- 查询emp表中每个员工的姓名和年薪
select ename,(sal+ifnull(comm,0))*12 as salary from emp;
限定查询
- 查询工资高于1500的所有员工的信息
select * from emp where sal>1500;
- 查询工资高于(等于)1500并且低于(等于)3000的所有员工信息
select * from emp where sal>=1500 and sal<=3000; 或select * from emp where sal between 1500 and 3000;
- 查询每个月可以获得奖金的员工信息
select * from emp where comm is not null and comm!=0;
- 查询工资高于1500,同时可以获得奖金的员工信息
select * from emp where sal>1500 and comm is not null and comm!=0;
- 查询在1981年入职的员工信息
select * from emp where hiredate between '1981-01-01' and '1981-12-31';
- 查询员工名字中带S的员工信息
select *from emp where ename like '%s%';
- 查询员工姓名以H结尾的长度为5个字符的员工信息(模糊查询)
select * from emp where ename like '____H'; (四个下划线)
- 查询员工编号在7369,7788,7900的员工信息
select * from emp where empno in(7369,7788,7900);
- 查询出20部门的员工信息,查询出的信息按照工资由高到低排序,如果工资相同,按照入职日期由早到晚排序
select * from emp where deptno=20 order by sal desc,hiredate;
#order by 排序 desc倒序 asc正序,一般默认正序,可不写。
基本语法
SELECT DISTINCT 字段1,字段2... FROM 表名
WHERE 条件
GROUP BY field
HAVING 筛选
ORDER BY field
LIMIT 限制条数
- from:找到表
- where:拿着where指定的约束条件,去文件/表中取出一条条记录
- group by:将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组
- select:执行select
- distinct:去重
- having:将分组的结果进行having过滤
- order by:将结果按条件排序:order by
- limit:限制结果的显示条数
基础表的查询一般比较简单,多加练习就可以掌握,建议根据博主的文首链接点进去在自己的MySQL上建表练习!!!!
喜欢的可以收藏学习!!!!
下一篇讲解比较麻烦的多表查询,戳这儿——>多表查询
-
python查询员工信息表
2016-08-28 11:04:20python查询员工信息表基本要求:
用户可以模糊查询员工信息
显示匹配了多少条,匹配字符需要高亮显示
代码:
假定员工信息存放在 information.txt文件中,如下:#!/usr/env python #coding:utf-8 import time def BreakFlag(): #用于设置标志位 while True: Break_Flag=raw_input('\t\t\t是否继续?(y/n):') if Break_Flag=='y' or Break_Flag=='n': return Break_Flag else: print '''\t\t输入错误,请重新输入!''' Info_File=open(r'information.txt','r') #只读方式打开员工信息表文件 Employee_Info=Info_File.readlines() #生成一个员工信息列表,列表中元素为员工信息字符串 Info_File.close() #关闭员工信息表文件 Break_Flag='' print '''\n\t\t\t\t\033[34;1m您好,欢迎来到员工信息查询系统!\033[0m\n''' while Break_Flag!='n': while True: Search_Info=raw_input('''\n\t\t\t请输入您需要查询的信息:''') if len(Search_Info)>2: #判断输入字符长度,小于3个字符,则需要重新输入 break else: print '''\n\t\t\t\033[31;1m您输入信息太少,请重新输入!\033[0m\n''' count_number=0 Search_Info_List=[] for i in Employee_Info: if i.count(Search_Info)>0: #将搜索到的字符串进行替换,并追加到Search_Info_List列表中 Search_Info_List.append(i.replace(Search_Info,'''\033[42;31;1m%s\033[0m''' % Search_Info)) count_number+=1 #一条记录匹配成功 #count_number+=i.count(Search_Info)#统计每次搜寻到的字符串的个数,并进行累加 if count_number>0: #若搜寻到字符串,将统计到的字符串总个数和包含字符串的列表进行屏幕打印 print '''\n\t\t\t共查询到:\033[31;1m %s \033[0m条信息!\n''' % count_number for i in Search_Info_List: print i else: print '''\n\t\t\t\033[31;1m没有您查找的信息!\033[0m\n''' Break_Flag=BreakFlag() for i in range(3): print '''\n\t\t\t\033[31;5m谢谢使用员工信息查询系统,%s秒后,退出系统\033[0m''' % (3-i) time.sleep(1) exit('\n\t\t\t\t您已经退出员工查询系统!') #import sys #sys.exit('\n\t\t\t\t您已经退出员工查询系统!')
song@ubuntu:~$ more information.txt
name:marry age:23 sex:man job:IT
name:song dada age:23 sex:man job:HR
name:zhang sanfeng age:23 sex:man job:IT
name:zhang wuji age:23 sex:man job:accountant
name:ling huchong age:23 sex:man job:IT
name:xiaoping age:23 sex:man job:manager
name:li yuanfang age:23 sex:man job:IT
name:feng feng age:23 sex:man job:boss
运行程序,示例如下:
友情链接:
1》 python中sys.exit() os._exit() exit() quit()的简单使用
-
mysql 员工表部门表查询
2021-04-02 10:04:52查询员工平均工资在2500至7000的部门 select dept_id,avg(salary) from employees where salary between 2500 and 7000 group by dept_id having count(*) > 1; 查询名字叫张三的员工的记录 查询名字叫... -
数据库(员工信息表)
2022-03-27 04:02:09员工信息(员工编号、员工姓名、员工性别、员工的email、员工的电话、员工的工资、员工的职位,员工所在部门。部门信息(部门编号、部门名称、部门所在地)。工作职位表(职位编号、职位名称、职位描述)。 1.要求:... -
员工部门表综合查询60题
2017-09-06 22:57:44(12) 查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select upper(SUBSTRING(ename,1,1))+lower(substring(ename,2,(len(ename)-1))) from emp (13) 查询员工名正好为6个字符的员工的信息。 ... -
mysql查询进阶——员工表与部门表连接查询
2020-09-17 23:50:22如下是员工表与部门表的表内容。 查询月薪最高的员工姓名和月薪(子查询) select ename, sal from tb_emp where sal = ( select max(sal) from tb_emp ); -- 如果月薪最高的员工有多个,则结果不正确。 -- ... -
多表查询,数据库事务(附:部门员工多表查询案例)
2018-09-05 16:29:23多表查询 、数据库事务 –&gt; 面试重点(概念,三个步骤,四个特征) 一 多表查询 —-&gt; 难点 1、笛卡尔积 A.语法: SELECT * FROM 表名称1,表名称2; B.查询出来的数据条目数: a.... -
查询所有的员工信息 和对应的部门信息
2022-02-22 16:36:53查询所有的员工信息 和对应的部门信息 -
MySQL 员工信息查询
2019-09-20 16:38:12-- 需求:查询出工资高于500或者岗位为MANAGER的员工,同时还要满足他们的姓名的首字母为大写的J的数据. SELECT * FROM emp WHERE (SAL >= 500 or JOB='MANAGER') and ENAME like 'J%'; -- 需求:按照工资的从... -
mysql三表联合查询(员工表,部门表,工资表)
2019-01-07 17:07:52部门 员工 工资三表联查有关问题 ,面试常见 列出薪金比关羽高的所有员工。 列出所有员工的姓名及其直接上级的姓名。 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。 列出部门名称和这些部门的员工... -
SQL员工信息表题目及答案
2020-09-02 10:18:15员工信息表 tb_info CREATE TABLE scott.tb_info( dept char(2) , --部门 staff_name varchar2(10) , --工号 sex char(1) , sal number(18,2) ); insert into scott.tb_info(dept,staff_name,sex,sal... -
查询员工所有信息,包括部门和其职位
2020-11-09 11:42:25员工表: 职位表: 部门表: SELECT e.empId,e.empName, d.depId,d.depName,d.msMaxNum, e.postId,p.postName FROM emp e INNER JOIN dep d ON e.depId=d.depId INNER JOIN post p ON e.postId=p.postId ... -
员工部门表综合查询SQL
2017-10-11 17:39:04–员工:员工编号,员工名字,职务,管理编号,入职日期,薪资,奖金,部门编号; –创建部门表: CREATE TABLE dept( deptno INT PRIMARY KEY,dname VARCHAR(20),loc VARCHAR(20) ); --数据库的表... -
《oracle数据库》Top-N分析:查询员工表中,工资排名在10-20之间的员工信息。
2019-03-14 20:24:48例:查询员工表中,工资排名在10-20之间的员工信息。 首先需要查询出按工资倒序排序后的序号,使用以下查询语句查询的序号为工资倒序排序前的序号。 那么,就得先对员工表的工资进行倒序排序,再查询序号 ... -
创建员工信息表
2019-03-27 22:00:57--创建员工信息表 create table WORKMATES ( P_NO number(5) , P_COMPANY varchar2(128) default '华为' , P_EMPLOYEE_ID varchar2(10) not null , P_NAME varchar2(30) , P_SEX varchar2(3) default '-' check(p_... -
获取每个部门中当前员工薪水最高的相关信息
2021-02-06 22:41:222、限定条件为两张表的 dept_no 和 salary 相等,这样就可以找出当前每个部门所有薪水等于最大值的员工的相关信息了; 3、最后记得根据 currentsalary.dept_no 升序排列,输出与参考答案相同的记录表。 4、以下代码... -
MySQL 查询部门工资前三高的员工信息
2020-09-14 22:34:42要求:编写一个SQL,获取部门工资前三高的员工信息 员工表和部门表结构: CREATE TABLE `employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255), `salary` decimal(10,2), `department_id` ... -
MYSQL查询员工信息练习
2019-06-25 17:49:5201.查询每个雇员的编号、姓名、职位。 select empno,ename,job from emp; 02.查询出所有的职位,使用DISTINCT消除掉显示的重复行记录。 select DISTINCT job from emp; 03.计算每个雇员的编号、姓名、基本年薪。... -
员工部门表综合查询60题(带答案)
2018-11-22 15:59:22员工部门表综合查询60题(上) CREATE DATABASE oa; USE oa; CREATE TABLE dept( deptno INT PRIMARY KEY, dname VARCHAR(20), loc VARCHAR(20) ) DROP TABLE emp CREATE TABLE emp( empno INT PRIMARY KEY, ename... -
员工工资查询系统【源码】
2016-08-29 09:09:55希望免去割工资条的程序,需要为员工提供工资网上查询的中小学校、企事业单位、政府机关等。 2、功能简介: 教职工可以实时查询每个月的工资、奖金明细情况及系统公告通知。 财务管理人员后台EXCEL批量导入... -
MySQL版emp员工信息表
2018-09-21 19:34:13create table DEPT ( DEPTNO int(2) not null, DNAME varchar(14), LOC varchar(13) ); alter table DEPT add constraint PK_DEPT primary key (DEPTNO); ...create table EMP ... EMPNO int(4) not n... -
mysql创建部门表和员工表,并用sql语句进行查询
2019-06-14 09:50:45创建第一个表(部门表) CREATE TABLE IF NOT EXISTS bumenTable( bumenTableid INT(11) NOT NULL PRIMARY KEY COMMENT'部门编号(主键)', bumenTablename VARCHAR(50) COMMENT'部门名称', bumenTableaddress ... -
可以根据工号实现对该员工信息查询 3.可以现实查看所有员工信息 4.可以修改员工的薪水
2018-04-06 20:20:261.测试类 ... import java.util.Scanner; public class Test { public static void main(String[] args) { /*员工信息管理系统 ... 可以根据工号实现对该员工信息查询 可以现实查看所有员工... -
SQL语句练习—员工表
2021-11-21 17:17:39以下面三个表为例: create database jepsondb; /*新建数据库*/ grant all privileges on jepsondb.* to jepsonuser@'%' identified by '123456'; /*赋予所有权限给新建的用户jepsonuser,密码是123456*/ flush... -
mysql基础(三)——多表查询
2021-01-20 00:54:25创建表CREATE TABLEDEPT(DEPTNOint(2) PRIMARY KEY,DNAMEVARCHAR(14) ,LOCVARCHAR(13) ) ;INSERT INTO DEPT VALUES(10,‘ACCOUNTING‘,‘NEW YORK‘);INSERT INTO DEPT VALUES (20,‘RESEARCH‘,‘DALLAS‘);INSERT ... -
MySQL----多表查询
2022-04-05 16:57:41MySQL----多表查询 多表关系 表与表之间的联系: 一对多(多对一) 多对多 一对一 多表查询 多表查询的分类 数据准备 内连接 外连接 自连接 联合查询 子查询 标量子查询 列子查询 行子查询 表子查询 多表查询案例 -
oracle数据库员工表查询
2016-11-29 10:02:151、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。 select ename,sal from emp where job='CLERK' or job='MANAGER'; 2、请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。 ... -
员工信息查询
2017-09-10 12:38:35SQL查询员工入职时间