oracle学习笔记01

02.oracle体系结构

1、数据库
oracle数据库是数据的物理存储,包括数据文件ORA或DBF、控制文件、联机文件、参数文件。oracle数据库概念和其他数据库不一样,这里的数据库是一个操作系统只有一个库。
2、实例
一个oracle实例(oracle instance)有一系列的后台进程(background process)和内存结构(memory structure)组成,一个数据库可以有n个实例。
3、数据文件(dbf)
数据文件是数据库物理存储单位,数据库的数据是存在表空间中的,真正是在某一个或者多个数据文件中,而一个表空间可以由一个或多个数据文件组成。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个文件,只能删除其所属于的表空间才行。
4、表空间
表空间是oracle对物理数据库上相关数据文件的逻辑映射。一个数据库在逻辑上被划分成一个到若干个表空间,每个表空间包含了在逻辑上相关的一组结构。每个数据库至少有一个表空间(system表空间)。每个表空间由同一磁盘上的一个或多个数据文件组成,一个数据文件只能属于一个表空间。
表空间下分段、段下分区、区下分数据块。
逻辑结构:数据块、表空间、段、区、数据块
物理结构:数据文件、磁盘块
5、用户
用户是在表空间下建立的,用户登录后只能看到和操作自己的表。每建立一个应用需要创建一个用户。
一个实例包含多个表空间、一个表空间下有多个用户。orale之所以性能这么强大,归功于表空间的设计。我不管理数据文件存在哪个磁盘上了,都用表空间来管理。

08.创建表空间

create tablespace space1
datafile ‘I:\app\Administrator\oradata\orcl\tablespace1.dbf’
size 100m
autoextend on
next 10m

09.创建用户并赋权

create user GB
identified by 123456
default tablespace tablespace1;

grant dba to GB;

37.什么是视图

视图是一种数据库对象,是从一个或多个数据表中导出的虚表,视图所对应的数据并不真正存储在视图中,而存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。使用视图的优点,简化数据操作、着重于特定数据、提供了简单有效的安全机制、提供后向兼容性。

create view view_name as
select * from t_student where s_sex= 0

– 修改视图数据就会改变源表额数据
update view_name set s_name = ‘萧蔷’ where s_id = ‘12’

– 只读视图

– 物化视图

50.序列

create sequence seq_test;

select seq_test.nextval from dual;

select seq_test.currval from dual;

create sequence seq_test2
start with 1
increment by 10
maxvalue 10000
minvalue 1
cycle
cache 20

62.什么是PL/SQL

Produce Language SQL,在sql命令语言中增加了过程处理语句,分支、循环等,使sql语言具有过程处理能力。

基本语法结构
declare
begin
exception
end;

66.异常(意外)

预定义异常,自定义异常
NO_DATA_FOUND TOO_MANAY_ROWS等

exception
when 异常类型 then
异常逻辑处理

67.条件判断

if 条件 then
end if;
if 条件 then

else

end if;
if 条件 then
else if 条件 then

else

end if;

68.循环

1、无条件循环
loop
end loop;

-- 循环输出1-100
declare
	v_num number;
begin
	v_num:=1;
	loop
		dbms_output.put_line(v_num);
		v_num:=v_num+1;
		if v_num>100 then
			exit;
		end if;
	end loop;
end;

2、有条件循环

DECLARE
	v_num number;
BEGIN
	v_num:=1;
	while v_num<100
	loop
		dbms_output.put_line(v_num);
		v_num:=v_num+1;
	end loop;
END;

3、for循环

DECLARE
BEGIN
	for v_num in 1 .. 100
	loop
		dbms_output.put_line(v_num);
	end loop;
END;

69.游标语法

73.存储函数

create or replace function fn_getdatestr
(offset number)
  return varchar2
is
  v_date varchar2(30);
begin
  select TO_CHAR(sysdate+offset,'yyyymmdd') into v_name from dual;
  return v_date;
end;
select fn_getdatestr(-7) from dual;

74.存储过程

存储函数中有返回值,存储过程没有返回值,可以用过传出参数返回多个值。存储函数可以在select语句中直接使用,过程多数是被应用程序所调用。存储函数一般都是封装一个查询结果,而存储过程一般都封装一段事务代码。

1、创建不带传出参数的存储过程

create or REPLACE PROCEDURE pro_add_student
(s_name VARCHAR2, --姓名
stu_no number,
sex number,
age number
)
is

begin
	insert into t_student values(seq_student.nextval,s_name,stu_no,sex,age);
	commit;
end;

call pro_add_student('李敏',112,1,10);

79.触发器

可用于数据确认、实施复杂的安全性检查,做审计,跟踪表上所做的数据操作等,数据逇备份和同步。前置触发器和后置触发器。

create trigger or repalce trigger trigger_name
  before | after
  delete or insert or update of row_name
  on table_name
declare
  ...
begin
  PLSQL
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值