主关键字约束(Primarykeyconstraint)惟一性约束(Unique
- 格式:ppt
- 大小:318.00 KB
- 文档页数:38
oracle primary用法概述及解释说明1. 引言1.1 概述在关系型数据库中,Primary Key(主键)是一种重要的数据库约束,用于唯一标识一个表中的每一行数据。
它是数据库设计中非常重要的概念之一,对于保障数据完整性和提高查询效率都具有很大作用。
本文将详细介绍Oracle数据库中Primary Key的用法及其相关解释说明。
1.2 文章结构本文由以下几个部分组成。
首先是引言部分,对文章进行概述,并介绍文章的结构。
接下来是Oracle Primary用法部分, 介绍了Primary Key的基本定义、作用以及如何定义和使用Primary Key。
然后是Primary Key的特点和限制部分, 包括唯一性约束、非空约束以及自动递增特性等。
随后是如何选择和设计Primary Key部分, 讨论根据业务需求选择合适的Primary Key类型、设计复合主键时需要考虑的因素以及索引对Primary Key性能的影响等方面内容。
最后是结论部分,总结了Primary Key在数据库设计中的重要性与应用价值,并给出了正确使用Primary Key提高数据完整性和查询效率的建议,并展望了未来Database设计发展趋势。
1.3 目的本文旨在全面介绍Oracle Primary Key的用法,帮助读者深入了解Primary Key 的概念、作用和限制,以及如何正确选择和设计Primary Key。
通过本文的阅读,读者将能够更好地理解Primary Key在数据库设计中的重要性,并能够合理运用它来提高数据库的性能和数据完整性。
此外,本文还对未来Database设计发展趋势进行了展望,为读者提供思考与探索的方向。
2. Oracle Primary用法:2.1 什么是Primary KeyPrimary Key(主键)是数据库表中的一列或一组列,其具有唯一性和非空性的特点。
每个数据库表都应该有一个Primary Key,它用于唯一标识表中的每行数据。
1 数据的完整性约束是用来确保数据的准确性和一致性。
数据的完整性就是对数据的准确性和一致性的一种保证。
数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。
分为以下四类:1) 实体完整性:规定表的每一行在表中是惟一的实体。
2) 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3) 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4) 用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。
用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
2 完整性约束的类型:可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion)1) 与表有关的约束:是表中定义的一种约束。
可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。
2) 域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3) 断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
一、与表有关的约束:包括列约束(表约束+NOT NULL)和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 。
(1) not null(非空)约束:只用于定义列约束。
语法如下:Colunm_name datatype | domain not null实例:create table Employee(emp_id int not null, emp_name varchar(10) not null,address varchar(40) , )创建之后,如果往表Employee表中非空约束中插入空值,insert into Employee values(1,null,'neimeng')将会出错。
第10章索引与数据完整性第10章索引与数据完整性一、填空题1.数据完整性有4种类型,分别是:__域完整性_______、____实体完整性_____、____参照(引用)完整性_______、_用户定义完整性_____。
2.在SQL Server 2000中,一共有6种约束,分别是:___非空约束____、___缺省约束___、__检查约束____、___主建约束___,唯一约束,外建约束。
4.系统存储过程__ sp_bindrule ____用于将规则或者用户定义数据类型的绑定.。
5.SQL Server2000支持的3种用户自定义函数是____标量函数____、__内嵌表值函数_____、_多语句表值函数_____。
7.在SQL Server 2000中,一共有4种约束,分别是:_______、_______、_______、_______。
11.索引分为聚集索引和非聚集索引,在一张表上最多可以创建1个聚集索引_索引。
但是可以创建_249个非聚集索引。
12.建立和使用__约束_____的目的是为了保证数据的完整性。
14.系统存储过程___sp_helpindex____可以返回表的所有索引信息,系统存储过程__sp_rename_____可以用来更改索引的名称。
二、选择题1. 设属性A 是关系R 的主属性,则属性A 不能取空值(NULL),这是()。
A 实体完整性规则B 参照完整性规则C 用户定义完整性规则D 域完整性规则2.下面关于索引的描述不正确的是()。
A 索引是一个指向表中数据的指针。
B 索引是在元组上建立的一种数据库对象。
C 索引的建立和撤消对表中的数据毫无影响。
D 表被撤消时将同时撤消在其上建立的索引。
3.以下哪种情况应尽量创建索引()。
A 在where子句中出现频率较高的列。
B 具有很多NULL值的列。
C 记录较少的基本表。
D 需要更新频繁的基本表。
4.下面关于聚集索引和非聚集索引说法正确的是()。
SQLServer主键、外键、唯⼀等约束主键(primary key)约束、外键(foreign key)约束、唯⼀(unique)约束、检查(check)约束、默认值(default)约束实例Oracle 有如下类型的约束:NOT NULL(⾮空)、UNIQUE Key(唯⼀约束)、PRIMARY KEY(主键约束)、FOREIGN KEY(外键约束)、CHECK约束Oracle使⽤SYS_Cn格式命名约束.创建约束:在建表的同时创建、建表后创建约束的类型有如下⼏种:C (check constraint on a table)P (primary key)U (unique key)R (Referential AKA Foreign Key)V (with check option, on a view)O (with read only, on a view)1、创建约束CREATE TABLE students(student_id VARCHAR2(10) NOT NULL,student_name VARCHAR2(30) NOT NULL,college_major VARCHAR2(15) NOT NULL,status VARCHAR2(20) NOT NULL,state VARCHAR2(2),license_no VARCHAR2(30)) TABLESPACE student_data;2、创建主键:ALTER TABLE students ADD CONSTRAINT pk_students PRIMARY KEY (student_id)USING INDEX TABLESPACE student_index;Alter table table_name add constrants BID primary key (bookno);ALERT TABLE table_name MODIFY( column1 PRIMARY KEY);3、创建Unique约束:ALTER TABLE students ADD CONSTRAINT uk_students_license UNIQUE (state, license_no)USING INDEX TABLESPACE student_index;4、创建Check约束:定义每⼀记录都要满⾜的条件,条件表达式不允许有:CURRVAL, NEXTVAL, LEVEL, ROWNUM,SYSDATE, UID, USER, USERENV 函数:ALTER TABLE students ADD CONSTRAINT ck_students_st_lic CHECK ((state IS NULL AND license_no IS NULL) OR (state IS NOT NULL AND license_no is NOT NULL));添加check约束(check_1为约束名,dept_salary为字段名 ) alter table emp add constraint check_1 check(dept_salary>0); 5、创建外键约束:ALTER TABLE students ADD CONSTRAINT fk_students_state FOREIGN KEY (state) REFERENCES state_lookup (state);6. 创建不能为空约束 not nullalter table table_name modify(name not null);alter table table_name modify name1 varchar2(20) not null;实例1:⾸先创建学⽣信息表studentinfo和学⽣成绩表testinfo。
2022年齐齐哈尔大学软件工程专业《数据库原理》科目期末试卷B(有答案)一、填空题1、设某数据库中有商品表(商品号,商品名,商品类别,价格)。
现要创建一个视图,该视图包含全部商品类别及每类商品的平均价格。
请补全如下语句: CREATE VIEW V1(商品类别,平均价格)AS SELECT商品类别,_____FROM商品表GROUP BY商品类别;2、关系数据库中基于数学的两类运算是______________和______________。
3、在数据库系统封锁协议中,一级协议:“事务在修改数据A前必须先对其加X锁,直到事务结束才释放X锁”,该协议可以防止______;二级协议是在一级协议的基础上加上“事务T在读数据R之前必须先对其加S锁,读完后即可释放S锁”,该协议可以防止______;三级协议是在一级协议的基础上加上“事务T在读数据R之前必须先对其加S锁,直到事务结束后才释放S锁”,该协议可以防止______。
4、设有关系模式R(A,B,C)和S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A的值或者等于R中某个元组的主码值,或者______取空值,这是规则,它是通过______和______约束来实现的。
5、在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SEL ECT语句中使用______保留字。
6、若事务T对数据对象A加了S锁,则其他事务只能对数据A再加______,不能加______,直到事务T释放A上的锁。
7、在VB 6.0中,已经用Adobel连接到数据库,并已绑定到数据库中的某个关系表,现要通过此控件向表中插入数据,需要用到Adobel.Recordset的_____方法和Update方法,使用Adobel.Recordset的_____方法可以使当前行指针在结果集中向前移动一行。
8、已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是______________,系关系的外码是______________,学生关系的主码是______________,外码是______________。
数据库系统原理⎽(1)授权grant的一般格式为:grant<权限> on <对象类型> to <用户>其语义是将指定操作对象的指定操作权限授予指定的用户;不同对象类型允许的操作权限例如:把查询student权限授权给用户U1;Grant select on table student to U1;⎽(2)收回权限revoke格式:revoke <权限> on<对象类型> from <用户>例如:把用户U4修改学生学号的权限收回Revoke update(sno) on table student from u4;⎽超键(super key)、候选键(candidate key)和主键(primary key)的区别?超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键候选键(candidate key):不含有多余属性的超键称为候选键主键(primary key):用户选作元组标识的一个候选键程序主键比如一个小范围的所有人,没有重名的,考虑以下属性身份证姓名性别年龄身份证唯一,所以是一个超键姓名唯一,所以是一个超键(姓名,性别)唯一,所以是一个超键(姓名,性别,年龄)唯一,所以是一个超键--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的身份证唯一,而且没有多余属性,所以是一个候选键姓名唯一,而且没有多余属性,所以是一个候选键--这里可以看出,候选键是没有多余属性的超键考虑输入查询方便性,可以选择身份证为主键也可以考虑习惯选择姓名为主键--主键是选中的一个候选键封锁粒度与系统的并发度成反比。
试述事务的四个性质,并说明每一个性质由DBMS的哪个子系统实现?每一个性质对数据库系统有什么益处?答:原子性:一个事务对数据库的所有操作,是一个不可分割的工作单元,这些操作要么全部执行,要么什么也不做(由DBMS的事务管理子系统来实现);一致性:一个事务独立执行的结果,应(由DBMS的完整性子系统执行测试任务);隔离性(由DBMS的并发控制子系统实现);持久性(由DBMS的恢复管理子系统实现的)。