Oracle数据库查询基本数据

----------------------------------------------------------------
--找出EMP表
select * from EMP;
--选择在部门30中员工的所有信息
select * from emp where deptno = 30;
--列出职位为MARTIN的员工的编号,姓名
select empno,ename from emp where job = ‘MANAGER‘;
--找出奖金高于工资的员工
select * from emp where comm>sal;
--找出每个员工奖金和工资的总和
select sal+comm,ename from emp;
--找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK)
select * from emp where (deptno=10 and job=‘MANAGER‘) or (deptno=20 and job=‘CLERK‘);
--找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员
select * from emp where deptno=10 and job not in(‘MANAGER‘,‘CLERK‘) and sal>=2000;
--找出有奖金的员工的不同工作
select distinct job from emp where comm is not null and comm>0;
--找出没有奖金或者奖金低于500的员工
select * from emp where comm is null or comm<500;
--显示雇员姓名,根据其服务年限,将最老的雇员排在前面
select ename from emp order by hiredate;
select ename from emp order by hiredate desc; --desc 从高到低
---------------------------------------------------------------------
--upper 字母全部大写
select upper(ename) from emp;
select * from emp where ename=upper(‘smith‘);
--lower 字母全部小写
select lower(ename) from emp;
select * from emp;
--initcap 首字母大写
select initcap(ename) from emp;
--concat 合并多个数组
select concat (ename,job) from emp;
--substr 截取字符串长度
--substr(String,start,length)
--string 指定要截取的字符串
--start 必须,指定在字符串的何处开始 正数从指定位置开始 复位从尾数开始 零从第一个字符开始
--length 可选,指定要截取的字符串长度,默认时时结束之前的全部字符

select ename,
substr (ename,-3), --从倒数第三个位置开始,截取之后的字符
substr (ename,-3,2), --从倒数第三个位置开始,截取之后的两个长度的字符
substr (ename,length(‘ename‘)-3), --设定一个五个长度的字符‘ename‘ (5-3)从第二个位置开始截取
substr (ename,length(‘ename‘)-3,2), --设定一个五个长度的字符‘ename‘ (5-3)从第二个位置开始截取2个字符长度
substr (ename,length(ename)-3), --从下标零开始倒数第三个位置开始,截取之后的字符
substr (ename,length(ename)-3,2) --从下标从零开始倒数三个位置开始,截取之后的两个长度的字符
from emp;

--length 获取字符串长度
select length (ename) from emp;
--replace 替换字符 将A换成C
select replace (ename,‘A‘,‘C‘) from emp;
--instr 查找里面某一个数据的位置 ’字符’区分大小写
select instr (ename,‘S‘)from emp;
--lpad 左侧填充
select ename,
lpad (ename,5,‘*‘), --从左侧开始 用‘*‘将字符长度填充够5个长度
lpad (ename,5,‘网盘‘) --不能识别汉语
from emp;
--rpad 右侧填充
select rpad (ename,5,‘*‘) from emp; --从右侧开始 用‘*‘将字符长度填充够5个长度
--trim 过滤 过滤收尾空格
select trim (‘ loyer ‘) from emp;
--round 四舍五入
select round (sal,-1) from emp; --将倒数第一个位置的数值四舍五入
--trunc 将数字截尾取整
select trunc (sal) from emp;
--mod 取余
select mod (sal,300) from emp;
---------------------------------------------------------------------------
-- months_between 两个日期相差的月数 sysdate代表系统时间 hiredate入职时间
select hiredate from emp;
select hiredate, months_between (sysdate,hiredate) from emp;
--add_moths 向指定日期你中加上若干月数
select add_months (sysdate,1) from emp;
--next_day 指定周内里的一个日期 取值1-7
select next_day (sysdate,7) from emp;
--last_day 本月的最后一天
select last_day (sysdate) from emp;
--round日期四舍五入 24小时制 时间过半会进成第二天
select round (sysdate) from emp;
--trunc日期截断 精确到小时会自动去掉
select trunc (sysdate) from emp;
---------------------------------------------------------------------------
--to_char
select to_char(sysdate,‘yyyy‘) from emp;
select to_char(sysdate,‘yyyy-mm-dd‘) from dual;
select to_char(sal,‘L999,999,999‘) from emp;
select to_char(sysdate,‘D‘) from dual;
---------------------------------------------------------------------------
--找出每个月倒数第三天受雇的员工
select ename from emp where hiredate=last_day(hiredate)-3;
--找出 25 年前雇的员工
select ename from emp where hiredate<=add_months(sysdate,-25*12);
--所有员工名字前加上 Dear ,并且名字首字母大写
select ‘Dear‘ || initcap(ename) from emp;
--找出姓名为5个字母的员工
select ename from emp where length(ename) =5;
--找出姓名中不带 R 这个字母的员工
select ename from emp where ename not like ‘%R%‘;
--显示所有员工的姓名的第一个字
select substr (ename,1,1) from emp;
--显示所有员工,按名字降序排列,若相同,则按工资升序排序
select sal,ename from emp;
select ename from emp order by ename desc
--找到 2 月份受雇的员
select * from emp where to_char(hiredate,‘fmmm‘)=‘2‘;

时间: 2024-10-16 16:10:55

Oracle数据库查询基本数据的相关文章

Oracle数据库查询分页SQL语句

Oracle数据库查询分页数据SQL语句: select * from (select a.*,rownum row_num from (select * from mytable t order by t.id desc) a ) b where b.row_num between 1 and 10

C#连接Oracle数据库查询数据

C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; using System.Collections.Generic; using System.ComponentModel using System.Data.OracleClient;;//这行和下一行都要先在引用中填加system.data.oracleclient using System.Da

oracle数据库查询常用语句

1.查询SCOTT表中有多少表,并显示表的一些描述select * from all_tables WHERE owner='SCOTT' ; 2.查询oracle数据库版本select * from v$version; select version from v$instance; select version FROM Product_component_version;

ESQL查询之简单的Oracle数据库查询测试

操作Oracle数据库跟前边例子中操作其他数据库一样,同样是非常轻松的,略有不同的是SQL语法上的微小区别 查询 <ESql module=test id=datas><![CDATA[ Select STTP,STNM,STCD,PHCD from ST_STBPRP_B where rownum<=30 ]]></ESql> 定制显示字段名 <tr> <for end=0 [email protected]{datas:getWidth}&g

脚本——loadrunner连接oracle数据库查询数据

import java.io.*; import java.sql.*; import lrapi.lr; public class Actions { int sum=0; public int init() throws Throwable { return 0; }//end of init public int action() throws Throwable { try{ //定义了数据库连接串 /*DSN=ORACL_LR;UID=FASP_150001;PWD=1;DBQ=192

Oracle数据库查询简析

一.环境准备 操作系统:CentOS6.8 数据库:Oracle 11.2.0.4(企业版) 客户端工具:Oracle SQL Developer 二.简单查询 简单查询:查询一张表的所有数据语法格式:SELECT [DISTINCT] * 字段 [别名][字段[别名]] FROM 表名称 [别名]; 范例:查询dept表全备记录SELECT * FROM dept;范例:查询出每个雇员编号.姓名.基本工资SELECT empno,ename,sal FROM emp; 范例:查询每个雇员职位S

oracle数据库查询当前数据占用量大小

今天让查看数据库中数据占用的空间大小,好做5年规划..... sql如下: select sum(bytes/1024/1024) M from dba_data_files --查询数据文件占用大小 select sum(bytes/1024/1024) M from dba_data_space --查询数据文件当前空闲大小

Oracle数据库查询用 where in 查询的项超过1000条的解决方案

众所周知,如果我们的用SQL查询语句时,如果用where in带的参数超过1000条的话,oracle是会报错的. 因为项目中遇到这样的问题,所以找到了接下来我要说的这个办法. 因为用的地方很多,所以我把这个封装成了一个方法. /// <summary> /// 获取查询条件超过1000个列表数据的SQL /// columnName In :list /// </summary> /// <param name="list">参数列表</pa

Oracle数据库查询语句

编写以下查询的SQL语句,以scott用户的emp表和dept表作为查询数据: 1.列出至少有一个员工的所有部门. SQL语句: select * from SCOTT.DEPT where deptno in (select distinct deptno from SCOTT.DEPT); 查询结果: 2.列出所有员工的姓名及其直接上级的姓名. SQL语句: select e.ename 员工姓名,m.ename 上级姓名 from scott.emp e,scott.emp m where