Oracle基础——简单查询练习(一)

容器客
• 阅读 1534

练习基于Oracle数据库中SCOTT用户下的emp表

  1. 查询scott用户下的所有表
select * from tabs;
  1. 查询雇员表中的全部信息
select * from emp;
  1. 查询雇员编号,姓名,工作,工资。
select empno,ename,job,sal from emp;
  1. 查询雇员编号,姓名,工作,工资,列表标题需中文显示。
SELECT empno "雇员编号",ename "雇员姓名" ,job "工作",sal "工资" from emp;
  1. 查询雇员工作种类。
select distinct job from emp;
  1. 查询所有雇员编号,姓名,工作.按以下格式显示:编号:7369-姓名:SMITH-工作:CLERK (返回一个列)
select  '编号:' || empno || '-姓名:' || ename || '-工作:' || job as 详情 from emp;
  1. 查询雇员编号,姓名,工作,年薪
select empno,ename,job,(sal + nvl(comm,0))*12 YearlySalary from emp;
  1. 查询工资大于1500的雇员所有信息
select * from emp where sal >1500;
  1. 查询可以得到奖金的雇员的名字与奖金
select ename,comm from emp where NVL(comm,0)>0;

select ename,comm from emp where DECODE(comm,null,0,comm) > 0;
  1. 查询工资大于1500或可以得到奖金的雇员
select ename from emp where sal > 1500 or nvl(comm,0) > 0;

select ename from emp where sal > 1500 or DECODE(comm,null,0,comm) > 0;
  1. 查询工资大于1500并且可以领取奖金的雇员
select ename from emp where sal > 1500 and nvl(comm,0) > 0;

select ename from emp where sal > 1500 and DECODE(comm,null,0,comm) > 0;
  1. 查询工资不大于1500或者不可以领取奖金的雇员
select ename from emp where sal <= 1500 or nvl(comm,0) = 0;
  1. 查询工资在1500到3000的所有雇员信息
select * from emp where sal >=1500 and sal <= 3000;
  1. 查询系统当前时间
select sysdate from dual;
  1. 查询在1981年雇用的员工信息
select * from emp where hiredate like '%81%';

select * from emp where to_char(hiredate,'YYYY') = '1981';

select * from emp where hiredate <= to_date('1981-12-31','YYYY-mm-dd') and hiredate >= to_date('1981-01-01','YYYY-mm-dd');

select * from emp where hiredate between to_date('1981-01-01','YYYY-mm-dd') and to_date('1981-12-31','YYYY-mm-dd');
  1. 查询雇员姓名中第三个字母为”A”的雇员信息
select * from emp where ename like '__A%';
  1. 查询雇员编号为7369的雇员信息
select  * from emp where empno = '7369';
  1. 查询雇员编号不为7369的雇员信息
select  * from emp where empno != '7369';

select  * from emp where empno <> '7369';
  1. 查询编号是7369,7900的雇员信息
select * from emp where empno in (7369,7900);
  1. 查询编号不是7369,7900的雇员信息
select * from emp where empno not in (7369,7900);
  1. 查询雇员信息,按工资由低到高排序
select * from emp order by sal;

select * from emp order by sal asc;
  1. 查询雇员信息,按工资由高到低排序
select * from emp order by sal desc;
  1. 请查询没有领导的员工名和职位
select ename,job from emp where mgr is null;
  1. 查询有领导的员工名和职位
select ename,job from emp where mgr is not null;
  1. 查询所有员工名、职位以及领导名
select e1.ename,e1.job,e2.ename from emp e1,emp e2 where e1.mgr = e2.empno(+);
  1. 查询部门30中的所有员工信息
select * from emp where deptno = 30;
  1. 列出所有办事员(CLERK)的姓名,编号和部门编号(按部门编号升序排列)
select ename,empno,deptno from emp where job = 'CLERK' order by deptno;
  1. 找出佣金高于薪金的员工
select * from emp where nvl(comm,0) > sal;
  1. 找出佣金低于薪金的40%的员工信息
select * from emp where nvl(comm,0) < sal*0.4;
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Wesley13 Wesley13
3年前
Oracle中如何查询一个表的所有字段名和数据类型
Oracle中如何查询一个表的所有字段名和数据类型查询语法selectA.COLUMN_NAME,A.DATA_TYPEfromuser_tab_columnsAwhereTABLE_NAME'表名'查询例子selectA.COLUMN_NAME,A.DATA_TYPEfromuser_tab_
Wesley13 Wesley13
3年前
Oracle——分页查询
查询员工表中,工资排名在1020之间的员工信息。select  from(    selectrownumrn,employee_id,salary      from(        selectemployee_id,salary,last_name        fromem
Wesley13 Wesley13
3年前
oracle查询表数据并重新插入到本表
oracle查询表数据并重新插入到本表CreateTime2018年5月17日10:30:10Author:Marydon1.情景描述查询表中数据SELECTFROMat_aut
Wesley13 Wesley13
3年前
ORACLE常用系统查询SQL
1  查询系统所有对象SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUSFROM DBA_OBJECTS WHERE OWNERUPPER('SCOTT')2  查看系统所有表SELECT
Wesley13 Wesley13
3年前
Oracle使用实例:创建只读用户
Oracle使用实例:创建只读用户原创L.Lawliet发布于2017080419:02:36阅读数12529收藏展开场景:数据库dbtest(服务名)下,创建reader只读用户访问查询scott普通用户下的表及数据   这里先只介绍使用命令操作的一种方法1\.管理员权限登陆sqlplus打开cmd,登陆方法
Wesley13 Wesley13
3年前
ThinkPHP 根据关联数据查询 hasWhere 的使用实例
很多时候,模型关联后需要根据关联的模型做查询。场景:广告表(ad),广告类型表(ad\_type),现在需要筛选出广告类型表中id字段为1且广告表中status为1的列表先看关联的设置部分 publicfunctionadType(){return$thisbelongsTo('A
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这