oracle数据库基础学习(三)

前端之家收集整理的这篇文章主要介绍了oracle数据库基础学习(三)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Oracle@H_502_2@的数据库对象

七大对象:用户、表、约束、序列、视图、同义词和索引

知识点一:用户 - User - @H_502_2@账户、管理员-@H_502_2@一切对象的宿主

@H_502_2@

角色:

3@H_502_2@种标准角色select*fromdba_sys_privs wheregrantee ='CONNECT'
  Oracle@H_502_2@为了兼容以前的版本,提供了三种标准的角色(role)@H_502_2@:connect@H_502_2@、resource@H_502_2@和dba@H_502_2@。
  1. connect role(@H_502_2@连接角色)

grant connect to smith;

2. resource role(@H_502_2@资源角色)

grant connect,resourceto smith;

3. dba role(@H_502_2@数据库管理员角色)
  dba role@H_502_2@拥有所有的系统权限----@H_502_2@包括无限制的空间限额和给其他用户授予各种权限的能力。system@H_502_2@由dba@H_502_2@用户拥有。

注意:撤消一个用户的所有权限,并不意味着从oracle@H_502_2@中删除了这个用户, 也不会破坏用户创建的任何表;@H_502_2@只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。

创建角色

除了前面讲到的三种系统角色----connect@H_502_2@、resource@H_502_2@和dba@H_502_2@,用户还可以在oracle@H_502_2@创建自己的role@H_502_2@。用户创建的role@H_502_2@可以由表或系统权限或两者的组合构成。为了创建role@H_502_2@,用户必须具有create role@H_502_2@系统权限。

create role@H_502_2@命令的实例:

这条命令创建了一个名为student@H_502_2@的role@H_502_2@:

create role student;

student@H_502_2@角色授权:

grant create session to student;

student@H_502_2@角色给用户授权:

grant student to sunny;

删除角色

drop role student;

注意:指定的role@H_502_2@连同与之相关的权限将从数据库中全部删除

@H_502_2@

知识点二:表 –table -- @H_502_2@ 维护使用sql@H_502_2@语句完成数据存储

@H_502_2@

primary key,

unique

default

check

知识点三:约束 –constraint –数据完整性和一致性

大体分类:实体完整性 -- @H_502_2@减少数据冗余 -- @H_502_2@主键约束(非空,唯一)

域完整性 -- @H_502_2@数据的准确性 -- check@H_502_2@约束(default@H_502_2@)

引用完整性 -- @H_502_2@数据的一致性 -- @H_502_2@外键约束

Oracle@H_502_2@约束对象5@H_502_2@大分类:主键(primary key@H_502_2@)、非空(not null@H_502_2@)、唯一性(unique@H_502_2@)、检查(check@H_502_2@)、外键(foreign key@H_502_2@)

创建约束的两种方式:create table@H_502_2@添加约束、alter table @H_502_2@添加约束

总结:

添加约束【主键、唯一、check@H_502_2@、foreign key@H_502_2@】

Alter table @H_502_2@表名 add [constraint @H_502_2@自定义约束名] select * from user_constraints; select * from user_cols_cons

primary key() |

unique() |

check() | @H_502_2@列名 between 0 and 100 | @H_502_2@列名 in(@H_502_2@‘男’,@H_502_2@’女’)

foreign key() references @H_502_2@ 主键表名(@H_502_2@主键列)

添加约束【非空、缺省】

Altert table @H_502_2@表名 modify (@H_502_2@列名 非空 | @H_502_2@缺省)

知识点四:序列(sequence@H_502_2@)来实现字段的自增长特性

语法:create sequence @H_502_2@序列名

startwith @H_502_2@起始值

Increment by @H_502_2@步长

maxvalue最大值

minvalue@H_502_2@最小值

Cycle @H_502_2@(nocycle@H_502_2@)

Cache @H_502_2@缓存>1@H_502_2@的数字

知识点五:视图view - @H_502_2@简化查询、提高安全性

语法 : create [or replace] view @H_502_2@视图名

as

负责的select@H_502_2@语句

使用:select * from @H_502_2@视图 where group by having order by

注意:有权限才能创建视图grant create view to@H_502_2@用户

1、如何添加主键约束

主键约束不允许为空

--@H_502_2@向已经创建的表中添加主键约束

altertableclassadd primary key(classid)

--@H_502_2@删除创建的主键约束

drop constraintsys_c0011740

--@H_502_2@向已经创建的表中添加自定义名称主键约束

add pk_classid primary key)

--创建表的时候添加主键约束(行级约束)

createtableclass(

classid number(2)primary key,

classname varchar210))

表的时候添加主键约束(表级约束)

),128)">constraint pk_classid primary key(classid)

not null

1、唯一约束unique

允许数据为空,而且可以多行数据为空

?????

2、非空null-@H_502_2@行级约束

3、default-@H_502_2@行级约束

--@H_502_2@向已经创建的表中添加非空约束

modifyclassname notnull--@H_502_2@删除非空约束

default用法和非空约束是一样

--@H_502_2@向已经创建的表中添加default约束

studentstusex default --@H_502_2@删除default@H_502_2@约束

????

--@H_502_2@添加default@H_502_2@的行级约束

student(

stuid stuname stusex charstuReg datesysdate--date timestamp

)

4@H_502_2@、check@H_502_2@约束

--@H_502_2@向已经创建的表中添加check@H_502_2@约束

alter table student add check(stusex in ('@H_502_2@男','@H_502_2@女'))

--@H_502_2@删除check@H_502_2@约束

--@H_502_2@创建表的过程中添加check@H_502_2@约束(行级约束)

--@H_502_2@创建表的过程中添加check@H_502_2@约束(表级约束)

Constraint ck_stusex check(stusex in('@H_502_2@男','@H_502_2@女')

注意:

Constraint notnull_classname check(classname is not null);@H_502_2@对的

onstraint default_stusex check(stusex is default );@H_502_2@不对的

5@H_502_2@、外键约束

写起来有点麻烦

--@H_502_2@向已经创建的表中加入外键约束

student add foreign key)references --@H_502_2@删除外键约束

???

--@H_502_2@创建表添加行级约束

references class(classid)

--@H_502_2@创建表级约束

??????

猜你在找的Oracle相关文章