首页 > 代码库 > orace学习操作(2)

orace学习操作(2)

一、Oracle视图                                            

视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑。主要就是为了方便和数据安全;

实际当中的数据依然存在我们的实际表里面,只不过取数据的时候根据这个视图(子查询)从实际当中的表来查,把它当成一个表来用;

1.创建视图:

技术分享

给用户授予创建视图的权限:grant create table,create view to scott;

查看当前用户下有哪些视图:select view_name from user_views;

查看用户的角色; select * from user_role_privs;

查看角色对应的权限;SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=‘DBA‘;  

授予用户dba权限    grant dba to scott; 

 

3.使用视图:

技术分享

4.只读视图:

Create view 视图名称as 查询语句with read only ;

 

5.删除视图  drop view v_emp

 

二、oracle约束条件:                                      

1.非空约束、默认值约束:

技术分享

给约束起名字:stu_name_nn:
技术分享
 
2.唯一约束,unique:
技术分享
加了唯一约束后,就不能再email这个字段加重复的值了。
unique约束可以加null值,两个null值之间不认为是重复的;
//上面的都是字段级的约束,但是如果说要让名字和eamil的组合不能重复,怎么做?
 
---表级的约束:
技术分享

 3.主键约束:

主键逻辑意义上唯一标识整条记录。
主键的这个字段:不能为空、必须唯一;
技术分享
或者:
技术分享
 
4.外键约束:
班级表:
技术分享
 
stu表的class列,参考class表的ID字段:
 
技术分享

注意:

stu表的class这个字段存在外键约束class 的id
被参考字段必须是主键----class 的id必须为主键;主键非空、唯一

另外的写法:

技术分享

 

5.check 检查约束

技术分享

技术分享

下面这个check约束是name必须为大写:
技术分享
相当于这样的写法:

create table t_stu(
id number primary key,
name varchar2(20) check (name=upper(name))
)

check用的很少,一般在程序中已经进行验证了。。
 
 

三、                                            

 

orace学习操作(2)