当前位置:首页 > 数据库 > 基本SQL语句练习

基本SQL语句练习

数据库2年前 (2020-02-08)

基本SQL语句练习


#选择部门30中的所有员工;
select ename from emp where deptno=30;

基本SQL语句练习


#列出所有办事员(CLERK)的姓名,编号和部门编号;
select ename,empno,deptno from emp where job='CLERK';

基本SQL语句练习


#找出奖金高于薪金的员工;
select ename from emp where comm>sal;

基本SQL语句练习


#找出奖金高于薪金的60%的员工;
select * from emp where comm>sal*0.6;

基本SQL语句练习


#找出部门10中的所有经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料;
select * from emp where (DEPTNO=10 AND JOB='MANAGER') or (DEPTNO=20 and JOB='CLERK');

基本SQL语句练习


#找出部门10中所有的经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料;
select * from emp 
where (DEPTNO=10 and JOB='MANAGER') 
or (DEPTNO=20 and JOB='CLERK') 
or (JOB not in ('MANAGER','CLERK') and SAL>=2000);

基本SQL语句练习


#找出收取奖金的员工的不同工作;
select distinct JOB from EMP where COMM is not null;

基本SQL语句练习


#找出不收取奖金或者收取的奖金低于100的员工;
select * from EMP where COMM is null or COMM<100;

基本SQL语句练习


#找出各月倒数第三天受雇的所有员工;
select * from EMP where LAST_DAY(HIREDATE)-2=HIREDATE;

基本SQL语句练习


#找出早于35年前受雇的员工;如果要求年份,最准确的是使用总月数/35
select * from EMP where MONTHS_BETWEEN(SYSDATE,HIREDATE)/12>35;

基本SQL语句练习


#以首字母大写的方式显示所有员工的姓名;
select INITCAP(ENAME) from EMP;

基本SQL语句练习


#显示正好为5个字符的员工的姓名;
select ENAME from EMP where LENGTH(ENAME)=5;

基本SQL语句练习


#显示不带有“R”的员工姓名;
select * from EMP where ENAME not like '%R%';

基本SQL语句练习


#显示所有员工姓名的前三个字符;
select SUBSTR(ENAME,0,3) from EMP;

基本SQL语句练习


#显示所有员工的姓名,用“a”替换所有的“A”;
select replace(ENAME,'A','a') from EMP;	

基本SQL语句练习


#显示员工的详细资料,按姓名排序;
select * from EMP order by ENAME;

基本SQL语句练习


#显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面;
select ENAME,HIREDATE from EMP order by HIREDATE;

基本SQL语句练习


#显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序;
select ENAME,JOB,SAL from EMP order by JOB DESC,SAL;

基本SQL语句练习


#显示所有员工姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面;
select ENAME,to_char(HIREDATE,'YYYY') YEAR,to_char(HIREDATE,'MM') MONTH from emp order by MONTH,YEAR;	

基本SQL语句练习


#显示在一个月为30天的情况所有员工的日薪金,忽略余数;
select ENAME,SAL,trunc(SAL/30) from EMP;

基本SQL语句练习


#找出(任何年份的)2月受聘的所有员工;
select * from emp where to_char(HIREDATE,'MM')=2;

基本SQL语句练习


#对于每个员工,显示其加入公司的天数;
select ENAME,SYSDATE-HIREDATE from EMP;

基本SQL语句练习


#显示姓名字段的任何位置包含“A”的所有员工的姓名;
select ENAME from EMP where ENAME like '%A%';

基本SQL语句练习


#以年月日的方式显示所有员工的服务年限;
第一步:求出每个雇员的雇佣年数:被雇佣的总月数/12=年数
select ENAME,HIREDATE,trunc(months_between(SYSDATE,HIREDATE)/12)YEAR from EMP;
第二步:求出月数,以上计算之中被忽略的小数点都是月份,所以直接取余即可。
select ENAME,HIREDATE,trunc(months_between(SYSDATE,HIREDATE)/12)YEAR,
                                       trunc(mod(months_between(SYSDATE,HIREDATE),12))MONTH from EMP;
第三步:求出天数,最准确的做法是在不超过30天的范围内计算;当前时间用sysdate取出,雇佣时期用hiredate取出,可是两者中间的差距太大,所以肯定的会有误差,那么就必须想办法将hiredate日期提升到与sysdate差距在30天的范围之内,
	使用两个函数;MONTHS_BETWEEN();求出两个日期间的月数。
			       ADD_MONTHS():在一个日期上加入指定的月之后的日期。
如果说hiredate+与今天相距的月数=一个新的日期,而且这个新的日期肯定和sysdate相距不超过30天。1987入职 +月数(month between(sys date,hiredate  )

select ENAME,HIREDATE,trunc(months_between(SYSDATE,HIREDATE)/12)YEAR,
                      trunc(mod(months_between(SYSDATE,HIREDATE),12))MONTH,
					  trunc(sysdate-add_months(HIREDATE,months_between(SYSDATE,HIREDATE)))DAY
					  from EMP;

基本SQL语句练习

本站所有文章均可随意转载,转载时请保留原文链接及作者。

本文链接:https://www.vos.cn/db/397.html

相关文章

解决ORA-01102: cannot mount database in EXCLUSIVE mode

解决ORA-01102: cannot mount database in EXCLUSIVE mode

startupdbca新建一个名为CDRTEST的库,startup后报ORA-01102: cannot mount database in EXCLUSIVE mode错误shutdown&nbs...

CentOS 7.6安装SQL Server 2019

CentOS 7.6安装SQL Server 2019

CentOS 7.6安装SQL Server 2019预览版安装SQL Servercurl -o /etc/yum.repos.d/mssql-server.repo ...

CentOS7.6 静默安装Oracle11gR2

CentOS7.6 静默安装Oracle11gR2

CentOS7.6系统环境默认无GUI,使用Oracle系统环境快速部署工具oracle-rdbms-server-11gR2-preinstall并使用响应文件命令行模式下进行Oracle 11gR...

CentOS7.7 Oracle19c RAC

CentOS7.7 Oracle19c RAC

Oracle版本策略为18c等同于12.2.0.2 19c则等同于12.2.0.3 ,19c将是12c的最终版本,2020年Oracle数据库将发布20c环境Virtualization:W...

Oracle11g ASM分区在线扩容

Oracle11g ASM分区在线扩容

DG_BIL_DATA这个DG存储空间不足,需要给DG加1个200G的LUN。ASM扩容步骤为 1.存储新建LUN或者扩容原LUN 2.系统扫盘绑定LUN 3.ASM扩容对应DG存储操作SAN存储划分...

Zabbix4.2安装DBforbix3监控Oracle11gR2

Zabbix4.2安装DBforbix3监控Oracle11gR2

一定不要下载从官方github下载DBforbix3,官方版本问题很多,并且不支持Zabbix4.x只支持3.xZabbix Share网站中推荐了几款oracle监控模板,个人感觉DBforBIX版...