一篇让Java程序猿随时可以翻看的Oracle总结
前言:Oracle学习也有十几天了,但是呢,接下来还要学习许多其他的东西,并不能提步不前,所以在此总结了以下Oracle中常用的命令和语句,没有语法都是实例,以便以后工作的时候随时翻看,毕竟是自己的东西,一看就懂。
有关的语句和操作基本都是按照实战中的顺序来总结的,比如创建用户,建表,序列初始化,插入数据的顺序呢。
这篇文章的基表是大家最为熟知的Scott用户下的emp员工表,dept部门表以及salgrade薪水等级表,一切的语句都是围绕它写的。
下面来看一下Oracle中常用的操作都有哪些吧!
一.用户的有关操作。
-
创建用户
1 |
|
-
给用户分配权限
1 2 3 |
|
-
撤销用户权限
1 2 3 |
|
-
删除用户
1 |
|
-
修改用户密码
1 2 3 4 5 6 7 |
|
-
设置用户是否锁定
1 2 |
|
二.表空间的有关操作。
-
创建表空间
1 2 3 4 |
|
-
扩展表空间
1 2 |
|
-
为ORACLE对象指定表空间
1 2 |
<code--<创建表、索引也可以指定表空间;一旦指定,表空间无法修改。 |
-
删除表空间
1 |
|
三.DDL的有关操作。
-
表table
1 2 3 4 5 6 7 8 9 10 11 |
<code--<创建员工表
|
1 2 3 4 5 6 |
<code--<创建部门表
|
1 2 3 4 5 6 |
<code--<创建工资等级表
|
-
视图view
1 2 3 4 5 6 7 8 |
<code--<为emp表的empno,ename,sal和dept表的dname和salgrade表的grade创建一个视图
|
-
序列sequence
1 2 3 4 5 6 7 8 9 10 |
<code--<为员工表的EMPNO创建一个序列
|
-
同义词synonym
1 2 3 4 |
<code--<为视图emp_dept_salgrade创建同义词
|
-
触发器trigger
1 2 3 4 5 6 7 |
<code--<为员工表的empno创建一个自动插入的触发器
|
-
存储过程procedure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<code--<创建一个可以控制行数的乘法表的过程。
<code--<调用这个乘法过程
|
-
存储函数function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<code--<创建一个求1!+2!+..+20!的值的存储函数
|
-
事务rollback、commit、savepoint
三.常用的结构查询。
-
查询用户和用户的信息
1 2 |
|
-
查询用户所拥有的角色
1 2 |
|
-
查询用户的权限
1 |
|
-
查看表中列的字符长度和字节长度
1 |
|
-
查询表的相关信息
1 2 |
|
-
查询表中列的相关信息
1 2 |
|
-
对表进行重命名
1 |
|
-
给表添加备注
1 |
|
-
给表中列添加备注
1 |
|
-
查看表和视图的备注信息
1 |
|
-
查看表和视图中列的备注信息
1 |
|
-
查看表的结构
1 |
|
-
截断表
1 |
|
-
使用连接运算符
1 2 |
|
-
查看表的约束信息
1 |
|
-
查看列的约束信息
1 |
|
-
查看序列的信息
1 |
|
-
查看索引的信息
1 |
|
-
查看视图的信息
1 |
|
-
查看同义词
1 |
|
-
查看触发器
1 |
|
-
查看存储过程
1 |
|
四.DML的有关操作。
-
插入数据insert
1 2 3 4 5 6 7 8 9 10 |
<code--<dept--
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<code--<emp--
|
1 2 3 4 5 6 7 |
<code--<salgrade--
|
-
更新数据update
1 |
|
-
删除数据delete
1 |
|
-
查询数据select
查询数据是DML语句中最关键的部分,也是最难的部分,在这里有许多围绕scott用户的实例,都是稍微复杂一点的查询,简单的就没必要写了。
1.最常用。
1 2 3 |
|
2.内部连接。
2-1.查询每个员工所在的部门,使用where连接.
1 |
|
2-2.inner join on连接.
1 |
|
2-3.inner join using连接.
1 |
|
3.外部连接。
3-1.左外连接:例如:查询出部门的员工的情况(显示所有部门).
1 |
|
3-2.右外连接用(+).
1 |
|
3-3.右外连接:例如:查询出所有的员工的部门情况(显示了所有员工).
1 |
|
3-4.右外连接用(+).
1 |
|
4.自连接。
4-1.查询出员工及他的上级。
1 2 3 |
|
5.子查询。
5-1.查询工资高于平均工资的员工信息.
1 |
|
5-2.使用ANY查询任意满足工资低于最低档工资的员工信息.
1 |
|
5-3.查询所有员工所属部门.
1 |
|
5-4.查询满足大于每个部门的最低工资的员工信息.
1 |
|
5-5.查询出每个部门中,高出本部门平均工资的员工的雇员号和姓名.
1 2 |
|
5-6.查询不在部门10的员工信息:注意子查询中的1,由于只关心子查询是否返回TRUE值,使用1可以提高查询的效率.
5-6.1.EXISTS子查询效率高于IN子查询.
1 |
|
5-6.2.in的效率低,但比较好理解.
1 |
|
5-7.查询emp表中可以管理别的员工的员工.
1 |
|
5-8.删除中部门重复行.
1 |
|
5-9.查找emp表第6-10条记录.
1 2 |
|