Oracle之Sql查询

------------------------1.简单的SQL查询--------------------------
select * from emp;
select empno,ename,job from emp;
select ‘编号是:‘|| empno || ‘ 名称是:‘|| ename from emp;
select distinct empno ,ename from emp;
select empno,ename,job,sal*100 income from emp;

------------------------2.限定查询--------------------------
select * from emp where sal>2000;
select * from emp where not(sal>2000);
select * from emp where mgr is not null;
select * from emp where sal between 0 and 1000;
select * from emp where sal in(800,900);
select * from emp where sal not in(800,900);
select * from emp where sal >1000;
select * from emp where sal <>100;
select * from emp where ename like ‘SCO%‘;

------------------------3.排序------------------------------
select * from emp order by sal asc;--升序
select * from emp order by sal desc,Hiredate asc;--按sal进行降序,如果sal相同则安排hiredate的早晚排序

------------------------4.单行函数------------------------------
--1.>字符函数:专门处理字符

--大小写转换
select * from emp where ename=upper(‘allen‘);
select lower(ename) from emp;
--首字母大写。
select empno,initcap(ename) from emp;
select initcap(‘hello,world‘) from dual;
--字符串截取
select substr(ename,1,2) from emp;--截取前两位
select substr(ename,0,2) from emp--0/1开始都一样
select substr(ename,length(ename)-2) from emp;--字符最后两位
--字符长度
select length(ename) from emp;
--字符替换
select replace(ename,‘S‘,‘5‘) from emp;

--2.>数值函数

--四舍五入
select round(9.536) from dual;--10
select round(9.536,2) from dual;--9.54

--截断小数点,直接截取,不做四舍五入
select trunc(9.536) from dual;--9
select trunc(9.536,2) from dual;--9.53

--取余
select mod(10,3) from dual;--1

---3>.日期函数
select sysdate from dual;
select sysdate-1 from dual;
select * from emp;
--查询10部入职的星期数
select empno,ename,round((sysdate-hiredate)/7)week from emp;
---3.1 MONTHS_BETWEEN() 求两个日期之间的月数。
select round(months_between(sysdate,hiredate)) from emp;

---3.2 ADD_MONTHS() 在指定日期,上加月数
select add_months(sysdate,1) from dual;

---3.3 NEXT_DAY() 下一个今天是什么日期
select next_day(sysdate,‘星期六‘) from dual;--从今天开始,找下一个星期六

---3.4 LAST_DAY() 求出给定日期的最后一天
select last_day(sysdate) from dual;--当前月最后一天

---4>.转换函数

--4.1 to_char转换字符
select empno,ename,to_char(hiredate,‘yyyy-mm-dd‘) d from emp;--2016-06-18
select empno,ename,to_char(hiredate,‘fmyyyy-mm-dd‘) d from emp;--2016-6-18,fm去掉年月日前的0;
select empno,ename,to_char(sal,‘999,90.00‘) from emp;--对数值格式化
select empno,ename,to_char(sal,‘$999,90.00‘) from emp;
select empno,ename,to_char(sal,‘L999,90.00‘) from emp;--对数值格式化,L表示,本地币种
--4.2 to_number 转换数值
select to_number(‘123‘) + to_number(‘123‘) from dual;--246
--4.3 to_date 转换日期
select to_date(‘2016-06-18‘,‘yyyy-mm-dd‘) d from dual;

---5>.通用函数
select ename,nvl(comm*2,0) from emp;--将空值变为指定内容(0).
select decode(3,1,‘aa‘,2,‘bb‘,3,‘cc‘) from dual;--cc 类似if.. elseif.. else
select empno 编号,ename 姓名,decode(job,‘CLERK,‘,‘业务员‘,‘SALESMAN‘,‘销售人员‘,‘ANALYST‘,‘分析员‘,‘MANAGER‘,‘经理‘,‘PRESIDENT‘,‘总裁‘)职位 from emp;

时间: 2024-10-10 18:22:10

Oracle之Sql查询的相关文章

oracle之sql查询二

此文章为http://huangsir007.blog.51cto.com/6159353/1854818该片的后续 关于数据库语言查询: SQL> show parameter nls_language; NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ nls_languag

ORACLE 常用SQL查询

一.ORACLE的启动和关闭 1 .在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su  -  oracle a.启动ORACLE系统 oracle > svrmgrl SVRMGR > connect internal SVRMGR > startup SVRMGR > quit b.关闭ORACLE系统 oracle > svrmgrl SVRMGR > connect internal SVRMGR > shutdown

Oracle执行SQL查询语句的步骤

sql语句的执行主要由用户进程与服务器进程来完成,其他的一些进程可能要辅助完成这一过程. 查询语句与其他的sql语句有所不同,如果一个查询语句执行成功,就要返回查询结果,而其他的sql语句只是返回执行成功或失败的信息. 查询语句的主要 SQL语句的执行主要由用户进程与服务器进程来完成,其他的一些进程可能要辅助完成这一些过程. 查询语句与其他的SQL语句有所不同,如果一个查询语句执行成功,就要返回查询结果,而其他的SQL语句只是返回执行成功或执行失败的信息. 查询语句的处理主要包括以下3个阶段:编

oracle的sql查询结果拼接

oracle数据库中,使用wm_concat(column)函数,可以进行字段合并 oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看. 如果相同GD01的数据拼接成一条怎么办呢? 下面是项目中的例子:我先没有用到这个函数时:(先把其他查询结果查询出来,再根据某个条件去查询CSS_FWRFY表把数据拼接

Oracle常用SQL查询

建表信息 1.表结构 Emp----员工信息表 Ename varchar2(30), --姓名 Empno number(5), --编号 Deptno number(5), --所在部门 Job varchar2(20), --工种(人员类别),如:manager 经理,clerk 办事员Hiredate Date --雇用日期 Hiredate Date, --雇佣日期 Comm number(6,2), --佣金 Sal number(6,2) --薪金 Dept-----部门表 Dna

oracle——pl/sql 查询中文乱码

1.查看服务器端编码select userenv('language') from dual;我实际查到的结果为:AMERICAN_AMERICA.AL32UTF82.执行语句 select * from V$NLS_PARAMETERS 查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样.如果不是,需要设置环境变量.否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码.3.设置环境变量计算机->属性->高级系统设置

Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐

风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入门:SQL语言DDL语句和对象管理,表/临时表/索引/约束/视图/同义词/序列/触发器/存储过程/包的创建管理:SQL语言DML语句,SQL语句INSERT/UPDATE/DELETE,PL/SQL创建,事务与锁:SQL语言Select查询语句,SQL查询限制排序,联接查询,SQL子查询:SQL语言

oracle新建用户执行sql查询语句出现错误ORA-00942:表或视图不存在

oracle创建新用户后客户端执行SQL查询后出现错误提示如下: 执行查询语句如下: select * from sm_sales_order; ORA-00942:表或视图不存在 创建新用户并指定表空间和临时表空间 CREATE USER xxx IDENTIFIED BY xxxx DEFAULT TABLESPACE LMS TEMPORARY TABLESPACE TEMP; 授予系统权限connect grant connect to xxx; 授予对象权限,只限查询 grant se

Oracle EBS-SQL (SYS-11):查询系统已打的PATCH.sql

select a.patch_name,         b.DRIVER_FILE_NAME,         c.language,         b.creation_datefrom apps.ad_applied_patches    a,        apps.ad_patch_drivers      b,        apps.ad_patch_driver_langs c where a.applied_patch_id = b.applied_patch_id