上节回顾:
1、select 基本语法
select * (字段名,字段名...) from 表名;
2、字符串的拼接
|| ' ' || name name
3、非空函数NVL()
NVL(可能会有空值的字段名,值)
4、去除重复行
distinct
5、起别名
空格 + 字段
Oracle Day2
Order By 子句
Order By + 字段名,字段名,....
Order By + list列表值,list列表值,....
ASC 升序 默认
DESC 降序
请用两种方式:
查询员工表中所有员工名字及员工工资并按从小到大的顺序排列
select first_name , salary from s_emp order by salary;
select first_name , salary from s_emp order by 2;
查询员工表中所有员工名字及员工工资并按从大到小的顺序排列
select first_name , salary from s_emp order by salary desc;
select first_name , salary from s_emp order by 2 desc;
查询员工表中所有员工名字及员工工资并按名字从大到小的顺序排列
select first_name , salary from s_emp order by first_name desc;
select first_name , salary from s_emp order by 1 desc;
查询员工表中所有员工名字及员工工资并按工资从小到大,名字从大到小的顺序排列
select first_name , salary from s_emp order by salary ,first_name desc;
select salary , first_name from s_emp order by 1,2 desc;
where 子句
比较运算符
= > >= < <=
不等于 != <> ^=
查询员工表中编号为41的员工(标题为Stock Clerk)
select * from s_emp where id =41;
select * from s_emp where id >41;
select * from s_emp where id <41;
select * from s_emp where id >=41;
select * from s_emp where id <=41;
select * from s_emp where id !=41;
select * from s_emp where id <>41;
select * from s_emp where id ^=41;
select * from s_emp where title = 'Stock Clerk';
SQL 运算符
BETWEEN ... AND... 查询*到*之间的记录
查询员工表中编号在12到24之间的记录
select * from s_emp where id between 12 and 24;
select * from s_emp where MANAGER_ID between 3 and 8;
IN(list) 查询指定个数的记录
查询员表中编号为1,3,8的记录
select * from s_emp where id in(1,3,8);
模糊查询
LIKE
通配符:% _
查询员工表中姓名包含a字母的员工信息
select * from s_emp where first_name like '%a%';
查询员工表中姓名第二个字母包含a字母的员工信息
select * from s_emp where first_name like '_a%';
IS NULL 是否为空值
查询员工表中提成为空的所有员工信息
select * from s_emp where commission_pct is null;
NOT BETWEEN
查询员工表中编号不在12到24之间的记录
select * from s_emp where id not between 12 and 24;
NOT IN
查询员表中编号不为1,3,8的记录
select * from s_emp where id not in(1,3,8);
NOT LIKE
查询员工表中姓名不包含a字母的员工信息
select * from s_emp where first_name not like '%a%';
IS NOT NULL
查询员工表中提成不为空的所有员工信息
select * from s_emp where commission_pct is not null;
逻辑运算符
AND
查询员工表中id为11并且工资为1400的记录
select * from s_emp where id =11 and salary =1400;
只要有一个条件不符合,查询不成功
OR
查询员工表中id为11或者工资为1400的记录
select * from s_emp where id =11 or salary =1400;
只要有一个条件符合,查询成功
NOT
查询员工表中id不为11的记录
select * from s_emp where not id =11;
逻辑运算符多个混合使用
SELECT * FROM s_emp WHERE salary >= 1000 AND dept_id = 44 OR dept_id = 42 ;
SELECT * FROM s_emp WHERE salary >= 1000 AND (dept_id = 44 OR dept_id = 42);
函数之间的转换
经常用到的一些单函数大致可分为几下几类
跟字符串相关
跟数字相关
跟日期相关
内置函数
组函数
dual 哑表 ====> 专门用来做测试
LOWER 转换为小写
select lower('ORACLE') from dual;
UPPER 转换为大写
select upper('oracle') from dual;
INITCAP 转换为首字母大写
select initcap('my oracle') from dual;
CONCAT 字符串连接 ||
查询员工表中员工的姓名(用两种方式实现)
select first_name || last_name "姓名" from s_emp;
select CONCAT(first_name,last_name) from s_emp;
SUBSTR(原字符串,起始值,返回子串的长度) 返回子串
"my oracle" "oracl"
select SUBSTR('my oracle',4,5) from dual;
LENGTH(字符串) 返回长度
查询员工表中所有姓名的长度
select first_name , length(first_name) from s_emp;
ROUND 四舍五入
select round(45.923, 2) from dual;
TRUNC 截取
select trunc(45.923, 2) from dual;
日期函数
查看系统日期
select sysdate from dual;
查询当前时间五天后的日期
select sysdate+5 from dual;
MONTHS_BETWEEN 两个日期中做计算
select months_between(sysdate,sysdate+30) from dual;
ADD_MONTHS 当前时间增加(按月增加)
select add_months(sysdate,1) from dual;
NEXT_DAY 当前时间的下一个时间
select next_day(sysdate,'星期四') from dual;
LAST_DAY 本月的最后一天
select last_day(sysdate) from dual;
嵌套
select last_day(add_months(sysdate+1,1)) from dual;
TO_CHAR 转换为字符串
select to_char(1234) from dual;
转换为固定格式
select to_char(123456,'fm$999,999,999') from dual;
TO_NUMBER 转换为数字
select to_number(1234) from dual;
TO_DATE 转换为日期
04-3月 -90
select to_date(‘04-3月 -90’) from dual;
日期表现形式:
yyyy 2008 四位年
year 英文表示
mm 2位月份
month 英文表示
dy 缩写
day 英文表示
dd 06 数字表示
mi 分钟 30
ss 秒 两位数字表示
hh 小时 两位小时
rr 年 (新类型)
yy 年 (世纪年)
分享到:
相关推荐
数据迁移 oracle转mysql oracle数据迁移 mysql数据迁移 从Oracle迁移数据到MySql-工具oracle2mysqlcn 从Oracle迁移数据到MySql方法大全文章地址: http://www.bywei.cn/post/111.html
oracle2sql
Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 5. Oracle Index 的三个问题...
ORACLE11G官方文档,全是高清带目录的PDF版。 包含 Oracle 2days DBA,Oracle 2days 数据仓库,Oracle 2days安全指南,Oracle 2days开发指南。。。。。等14本。 希望能给大家带来便利。
oracle Sql语句二 oracle Sql语句二
oracle2-单表操作
Oracle数据库的第一个版本是Oracle 2,后来不断发展和改进,出现了Oracle 6、Oracle 7、Oracle 8、Oracle 9i等版本。 Oracle 9i是当前最流行的Oracle数据库版本之一,具有高性能、可靠性强、安全性高等特点。 ...
2、本软件安装后,可使用自带的SQL Plus连接Oracle服务器,支持EXP、IMP命令。用户可以配合PLSQL Developer使用,为减小软件体积,没有对PL/SQL Developer打包,请用户自行下载。 3、本软件包含了OraOledb.Oracle.1...
cx_Oracle是Python数据库API规范的实现,用于访问Oracle数据库。目前,该模块经过对Oracle客户端版本11.2、12.1和12.2以及Python版本2.7、3.4、3.5和3.6的测试。cx_Oracle遵循开源的BSD许可证,这表示用户可以自由地...
2. **Oracle函数大全**:Oracle数据库支持大量的内置函数,包括数学函数、字符串函数、日期时间函数、转换函数等,这些函数在编写SQL查询、PL/SQL程序时非常有用。例如,`TO_DATE()`用于将字符串转换为日期,`UPPER...
首先,Oracle.ManagedDataAccess是Oracle公司提供的一个纯.NET框架的客户端驱动,它允许开发者在不安装Oracle客户端的情况下,直接与Oracle数据库进行交互。这个库包含了所有必要的组件,使得C#程序可以方便地执行...
Dbmover for Mysql to Oracle 是高效的将Mysql导入到Oracle数据库的工具。 使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 ...
oracle与db2的区别, 首先,我们需要理解 Oracle 使用的架构,并理解它与 DB2 的不同之处。
1. **classes12.jar**:这是Oracle早期版本提供的JDBC驱动包,主要用于支持Java 2平台标准版(J2SE)1.4及以下版本。它包含了Oracle数据库连接所需的类和接口,但随着Java版本的更新,这个包逐渐被新的JDBC驱动版本...
2、设置环境变量env ORACLE_BASE=/u01/app ORACLE_HOME=$ORACLE_BASE/oracle ORACLE_SID=hsj PATH=$ORACLE_HOEM/bin:$PATH; LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export ORACLE_BASE ...
离线注册机 Crack -Data.Compare.For.Oracle.Keygen.exe -Schema.Compare.For.Oracle.Keygen.exe -Schema.Doc.For.Oracle.Keygen.exe 安装包 DeploymentSuiteforOracle.exe ...-Schema Doc for Oracle 2
该模块遵循Python数据库API规范,并且适用于Oracle 11.2和12.1版本,同时兼容Python 2.x和3.x版本。cx_Oracle模块通过使用Oracle客户端库来实现与Oracle数据库的交互。它被分发在一个开源许可证,即Python软件基金会...