数据库
首页 > 数据库> > oracle

oracle

作者:互联网

oracle基础

关系图

image

SQL包含四种程序设计语言类别的语句:

基础知识

数据类型

运算符

函数

基本设置

在Oracle中调用dos命令: host dos命令;

连接命令

文件操作命令

显示和设置环境变量

修改写错的SQL

追加命令 a命令(append):在上一次的sql后追加语句,追加完毕回车 /

基本设定

伪表

DDL

操作数据库

操作表

约束6个

DML

添加数据

删除数据(不是删除表)

修改数据

DQL

基本select查询

多表查询

分页SQL

TCL事务

事务流程

DCL

用户管理

权限管理

image

- 权限

	- 系统权限

		- 用户对数据库的相关权限
		- 140多个系统权限

	- 对象权限

		- 用户对其他用户的数据对象操作的权限
		- Oracle拥有25个对象权限

- 角色(一组权限)

	- 预定义角色
	- 自定义角色

口令管理

数据库设计

三大范式

如果查询的数据包含null,使用范围查询in和Not in时需要注意:

in

on

(判断是否是Null: is null , is not null)

复制表:批量增加 -->创建表myemp, 批量增加数据

create table myemp as select empno,ename,job from emp;

如何增加海量数据:

a. SQL Loader工具 b.数据泵 c.外部表

序列

可以实现自动增长

序列的两个属性:

语法

示例:

裂缝

修改序列

删除序列

删除重复数据

准备重复数据

insert into mystudent values(2,'ls',24);
insert into mystudent values(2,'ls',24);

insert into mystudent values(3,'ww',55);

尝试1:distinct

尝试2:伪列(rownum,rowid)

视图

从表中抽取出的逻辑上相关的数据集合(字段、列)

员工编号、年薪、部门名称

select empno,sal*12,dname from emp e,dept d where e.deptno = d.deptno ;

select * from emp ;

创建视图

create  view myempview
as 
select empno 编号,sal*12 年薪,dname 部门名称 from emp e,dept d
where e.deptno = d.deptno ;

小结:

对视图的增删改

create view baseview
as 
select empno,ename,job from emp
with read only;//设置只读
create view empdeptno20
as
select * from emp where deptno=20
with check option;

视图分类

视图不建议用于DML。但如果非要用DML,则必须满意以下条件:

DQL:查询语句

DML:增删改语句

DDL:数据库定义语言,create table/view/sequence

索引(index)

并不是所有情况都适合建立索引:

Oracle中的索引类型: B树索引(默认)、位图索引(矩阵索引)

创建索引

如果要观察是否使用了索引:查看SQL执行计划

删除索引 drop index myindex;

同义词

在scott用户中查询hr用户中的 employees表:

私有同义词:谁创建谁使用。

公有同义词:无论谁创建,任何人都可以使用。

create synonym hremp  for hr.employees;
--需要先授权:sys账户中grant create synonym to scott;

删除同义词 drop synonym hremp ;

撤销权限:

存储过程

语法

create procedure myPro
as
  pnum number:=10;
begin
  dbms_output.put_line('hello');
  dbms_output.put_line('world'||pnum);
end;

调用:

有参:存储过程中,参数 in/out

存储函数

最大区别:

语法

小节

查询某个部门的 所有员工信息。

输入参数:deptno
输出参数:所有员工信息 -- List -- 返回一个光标

存储过程 /存储函数 不能直接返回光标。 -- package
小结:要返回光标,必须先建包package。
包:包头+包体
其中 包头,相当于 接口; 包体,相当于实现类。

创建包头:右键程序包-->新建
创建包体:右键包头-->创建主体

可以在包中 建立存储过程。

标签:--,emp,oracle,deptno,null,where,select
来源: https://www.cnblogs.com/jiyuchen1/p/16362789.html