oracle基础知识一
来源:互联网 发布:php微信支付回调接口 编辑:程序博客网 时间:2024/05/29 06:38
1:查看oracle的版本
select * from v$version
2: 查看oracle当前的ssid
select instance_name from v$instance;
3:查看当前的用户
show user
4:分屏显示
set pause on/set pause off
5:列出每个员工的名字、月薪
select first_name, last_name, salary from s_emp
6:select后面还可以写一个算数表达式,对取出的结果做计算
如列出每个员工的名字、年薪
select last_name, salary*12 from s_emp;co
7:给字段名起别名:
select first_name, salary*12 annual_salary from s_emp;
annual_salary是别名,与字段名之间没有逗号
8:如果处理得字段是字符型的,可以做字符串拼接,用||两个竖线:
select first_name || last_name "Employee" from s_emp;
将员工的姓和名字进行拼接,并起别名是Employee
select first_name||' '||last_name "Employee" from s_emp;
单引号表示字符串
select first_name||'_'||last_name "Employee" from s_emp; 输出为a' b
如何表达单引号,用两个'
9:当字段值是NULL(空值在算术表达示中如何处理:有空结果就为空,把空值当无穷大处理,并不当成0处理)时,一般使用NVL函数进行处理
NVL函数:当字段取值不是NULL,取本身;为NULL时,用后面的值替换,注意严格的类型匹配
显示每个人每个月的工资注意有提成的人
select first_name ,salary+(salary*commission_pct/100) from s_emp;
出现问题没有提成的人工资工资变为0 了 肯定不行
求一下总收入,年薪+提成,提成是年薪*提成/100
select first_name, salary*12*(1+NVL(commission_pct,0)/100)
"Salary" from s_emp;
10:使用distinct,排除重复,同时排序。
distinct是保证联合不重复,一直到from有效。
select distinct name ,id from s_dept;
查询一个公司有哪些部门
select distinct dept_id, title from s_emp;
一个部门可以有很多职位,不同部门可以有相同职位,
但部门和职位的组合不会重复
设置输出显示字符串长度:
column first_name for a10;
column salary for $00999,999;
11:where子句:条件表达式,实现选择操作
select ... from ... where ... order by ... 先选择过滤,再排序,
因为没有必要为不需要的数据排序
where子句:where 字段名 比较运算符 值
数字(NUMBER)类型的直接写,VARCHAR2需要单引号,where子句要求类型完全匹配
找出42部门的所有员工
select first_name from s_emp where dept_id = 42;
查找Ben一个月的工资,注意后面的名字大小写敏感。
select first_name, salary from s_emp where first_name='Ben';l
查找工资大于1500
select * from s_emp where salary > 1500
比较运算符:
= > >= < <= 不等于!=
BETWEEN ... AND ... 在...之间,表示一个闭区间
IN(value1, value2, ....) 跟一个集合列表,相当于一个集合,一般把出现频度高的放前,减少比较次数。 where id IN(1,3) 和 where id=any(1,3)相同
LIKE .... 通配,还可以加转义,用escape,"\"为转义符
LIKE 'M%' M开头的 LIKE '_a%' 第二个字符是a的
% 0或多个字符
_ 任意一个字符
IS NULL(是否为空)
... AND ... 表示两个条件同时满足
... OR ... 表示条件只要满足其一就可以
NOT ... 则是与以上的条件产生反效果
例如:
找出工资在1500到2500之间的员工
select first_name, salary from s_emp where
salary between 1500 and 2500;
找出41、42、43部门的员工信息情况
select first_name, salary from s_emp where
dept_id IN(41,42,43);
找出first_name中包含enr字符的员工,并查询他的first_name 和last_name
select first_name,last_name
from s_emp
where first_name like '%enr%'
当前用户下所有表名都是以'S_'开始的表
select table_name from user_tables where table_name
like 'S_%';
上面那样写是错误的,因为_代表任意一个字符
select table_name from user_tables where table_name
like 'S\_%' escape '\';
哪些人没有提成:
select first_name, commission_pct from s_emp where
commission_pct IS NOT NULL;
部门号是42部门,工资大于1000的员工
select first_name, salary, dept_id from s_emp where
dept_id=42 and salary>1000;
注意:括号改变优先级。
12:Order by子句
默认的select显示是按照表中的存储顺序,如果对显示有要求,需要排序则需要使用Order By
select ... from ... order by ... 后面是排序原则。
order by ... desc 按照降序
order by ... 或者 order by ... asc 按照升序
后面可以跟字段名,也可以跟别名、位置(select后面字段出现的位置),多个排序条件。
如果有空值,升序在最后,降序在最前
select first_name, salary from s_emp order by desc;
select salary S from s_emp order by S;
select first_name, salary from s_emp order by 2;
select first_name, dept_id, salary from s_emp order by dept_id, salary DESC;
- oracle 基础知识 一
- oracle基础知识一
- Oracle基础知识(一)
- oracle学习一 基础知识
- oracle 基础知识 一
- oracle基础知识一
- oracle学习笔记(一)基础知识
- 温故而知新:Oracle基础知识复习(一)
- oracle备忘录(一)---基础知识
- Oracle 基础知识
- oracle 基础知识
- Oracle 基础知识
- Oracle 基础知识
- oracle基础知识
- Oracle基础知识
- Oracle基础知识
- Oracle基础知识
- ORACLE 基础知识
- 你为什么薪水那么低
- Oracle 正则表达式
- malloc用法错误示例
- samba共享文件
- libjingle编译报找不到头文件的解决办法
- oracle基础知识一
- 运维人员需要懂得的基本操作
- 查询数据库创建时间、版本、语言、还原模式信息
- 帧中继实验
- db2数据库存储过程入门1
- 相似度计算常用方法综述
- jquery+zTree+colorbox 实现弹出框内组织结构树
- ExtJs4 笔记(14) layout 布局
- NYOJ - 104 最大和【DP】