oracle数据库基础学习(三)

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

Oracle数据库对象

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

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

角色:

3种标准角色select*fromdba_sys_privs wheregrantee ='CONNECT'
  Oracle为了兼容以前的版本,提供了三种标准的角色(role)connectresourcedba
  1. connect role(连接角色)

grant connect to smith;

2. resource role(资源角色)

grant connect,resourceto smith;

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

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

创建角色

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

create role命令的实例:

这条命令创建了一个名为studentrole

create role student;

student角色授权:

grant create session to student;

student角色给用户授权:

grant student to sunny;

删除角色

drop role student;

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


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


primary key,

unique

default

check

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

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

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

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

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

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

总结:

添加约束【主键、唯一、checkforeign key

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

primary key() |

unique() |

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

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

添加约束【非空、缺省】

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

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

语法:create sequence 序列名

startwith 起始值

Increment by 步长

maxvalue最大值

minvalue最小值

Cycle nocycle

Cache 缓存>1的数字

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

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

as

负责的select语句

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

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

1、如何添加主键约束

主键约束不允许为空

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

altertableclassadd primary key(classid)

--删除创建的主键约束

drop constraintsys_c0011740

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

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-行级约束

3、default-行级约束

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

modifyclassname notnull--删除非空约束

default用法和非空约束是一样

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

studentstusex default --删除default约束

????

--添加default的行级约束

student(

stuid stuname stusex charstuReg datesysdate--date timestamp

)

4check约束

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

alter table student add check(stusex in ('',''))

--删除check约束

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

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

Constraint ck_stusex check(stusex in('','')

注意:

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

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

5、外键约束

写起来有点麻烦

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

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

???

--创建表添加行级约束

references class(classid)

--创建表级约束

??????

原文链接:https://www.f2er.com/oracle/213379.html

猜你在找的Oracle相关文章