主关键字约束(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的恢复管理子系统实现的)。
SQL语句常⽤约束类型常⽤五类约束: not null:⾮空约束,指定某列不为空 unique:唯⼀约束,指定某列和⼏列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复、唯⼀ foreign key:外键,指定该列记录属于主表中的⼀条记录,参照另⼀条数据 check:检查,指定⼀个表达式,⽤于检验指定数据 注意: MySQL不⽀持check约束,但可以使⽤check约束,⽽没有任何效果;根据约束数据列限制,约束可分为: 单列约束:每个约束只约束⼀列 多列约束:每个约束约束多列数据1、not null ⾮空约束⽤于确保当前列的值不为空值,⾮空约束只能出现在表对象的列上。
*Null类型特征:所有的类型的值都可以是null,包括int、float等数据类型空字符串””是不等于null,0也不等于nullcreate table temp(id int not null,name varchar(255) not null default ‘abc’,sex char null)上⾯的table加上了⾮空约束,也可以⽤alter来修改或增加⾮空约束增加⾮空约束 alter table temp modify sex varchar(2) not null;取消⾮空约束 alter table temp modify sex varchar(2) null;取消⾮空约束,增加默认值 alter table temp modify sex varchar(2) default ‘abc’;2、unique 唯⼀约束是指定table的列或列组合不能重复,保证数据的唯⼀性。
虽然唯⼀约束不允许出现重复的值,但是可以为多个null,同⼀个表可以有多个唯⼀约束,多个列组合的约束。
在创建唯⼀约束的时候,如果不给唯⼀约束名称,就默认和列名相同。
MySQL会给唯⼀约束的列上默认创建⼀个唯⼀索引;create table temp (id int not null,name varchar(25),password varchar(16),constraint uk_name_pwd unique(name, password));unique(name, password)表⽰⽤户名和密码组合不能重复 添加唯⼀约束 alter table temp add unique(name, password); 修改唯⼀性约束 alter table temp modify name varchar(25) unique; 删除约束 alter table temp drop index name;3、primary key 主键约束相当于唯⼀约束+⾮空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。
mysql简答题精简版1、请简述什么是数据库管理系统,什么是数据库系统?以及它们的主要功能有哪些?2、请简述什么是模式、外模式和内模式?3、请简述c/s结构与b/s结构的区别。
4、简述事务的属性。
5.请解释存储过程、存储函数和触发器的异同。
6.MySQL中的表维护语句是什么?7、什么是数据模型?数据库管理系统所采用的主要数据模型有哪些?模型化和数据之间的工具。
层次模型、网状模型、关系模型。
8、简述索引的概念和作用,以及索引的分类。
① 快速读取数据② 确保数据记录的唯一性③ 实现表之间的引用完整性④ 使用逐序分组检索时,索引可以减少排序和分组时间。
9.尝试解释数据完整性的含义和分类。
含义:存储在数据库中的数据的准确性和一致性。
分类:实体完整性、参照完整性、用户自定义完整性10.当多个用户同时访问数据库时,锁定的作用是什么?防止用户读取正在由其他用户更改的数据吗,并且可以防止多个用户同时更改相同的数据,确保事务完整性和数据库一致性。
11、简述mysql提供的隔离级别。
序列化、可重复阅读、提交阅读和未提交阅读12。
简要描述关系数据库的设计步骤。
概念结构设计、逻辑结构设计、数据库物理设计13、简述索引的弊端。
① 索引时,它以文件的形式存储,索引文件会占用磁盘空间。
如果有大量索引,索引文件可能会避开数据文件,更快地达到最大文件大小。
②在更新表中索引列上的数据时,对索引也需要更新的,这可能需要重新组织一个索引,假若表中的索引很多,那是浪费时间的。
也就是说,降低了添加、删除、修改和其他写入操作的效率。
表中索引越多,更新表的时间越长14、简述mysql为保证数据安全所提供的方法。
① 添加和删除用户② 授予和撤销权限③ 权限的转移和限制④ 使用界面模式操作用户和权限。
15、请说明存储过程、存储函数、触发器的异同。
触发器是一种特殊类型的存储过程。
当使用以下一个或多个数据修改操作修改指定表中的数据时,触发器将生效:更新、插入或删除。
主键(PrimaryKey)约束和唯一性(UNIQUE)约束有什么
区别?
相同:它们都属于实体完整性约束.
不同点:
(1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。
(2) 可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。
但是,唯一性约束所在的列并不是表的主键列。
(3) 唯一性约束强制在指定的列上创建一个唯一性索引。
在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。
(4)建立主键的目的是让外键来引用.
(5)一个表最多只有一个主键,但可以有很多唯一键。
北京语言大学网络教育学院《数据库应用(SQL Server)》模拟试卷一注意:1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废.请监考老师负责监督。
2。
请各位考生注意考试纪律,考试作弊全部成绩以零分计算。
3.本试卷满分100分,答题时间为90分钟.4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分.一、判断题(本大题共5小题,每小题2分,共10分),正确的填T,错误的填F,请将答案填在答题卷相应题号处。
1、对于一个已存在的表,对其进行增加列、删除列、更改列的名称和数据类型等操作都能进行。
( )2、一个表不能有主键值相同的两行.( )3、在设计存储过程时,可以为参数提供一个默认值,其一般格式是:CREATE PROCEDURE 存储过程名( 参数1=默认值1,参数2=默认值2,… ) AS SQL语句。
( )4、凡是能通过ODBC或OLEDB接口访问的数据库,也可通过ADO 。
NET来访问.( )5、DataSet是核心的ADO 。
NET数据库访问组件,主要是用来支持ADO 。
NET的不连贯连接及分布数据处理。
()二、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。
6、DBMS提供哪种语言来定义数据库的三级模式?( )。
[A] DBL[B] DCL[C] DDL[D] DML7、SQL Server是()。
[A]数据库[B] 数据库系统[C] 数据库管理系统[D]数据库应用系统8、在数据库系统中,如果数据库的物理结构发生了变化,那么用户的应用程序()。
[A]必须改变[B] 自动改变[C]可以不变[D]必须作废9、以下有关“关系的性质”的说法错误的是().[A]不同的列可出自同一个域[B] 行的次序不能任意交换[C]关系中不允许有两个完全相同的元组[D] 不允许某个属性又是一个二维关系10、关系代数中选择运算是对关系进行的().[A] 垂直分割[B]水平分割[C] 结合[D] 先垂直分割后水平分割11、如果A→B,A→C,则A→BC。
第5章数据完整性【学习目标】Microsoft SQL Server 2005系统提供了一系列保证数据完整性的方法和机制,例如约束、默认值和规则等。
其中约束技术是应用最为广泛的保证数据完整性的方法。
本章将主要介绍有关数据库完整性的技术与方法。
本章学习要点:◆数据完整性的基本概念与类型◆约束的概念与类型◆默认值的概念与类型◆规则的概念与类型【学习导航】数据完整性是指数据库系统中数据在逻辑上的一致性和准确性,是保证数据库中数据质量的一种重要手段,是数据库设计好坏的一项重要指标,同时也是现代数据库系统的一个重要特征。
我们都有在网上注册帐户的经历,在注册信息的时候,我们经常会遇到用户名已经存在、密码少于规定的长度、电子邮件必填、出生日期有效、身份证号码是否正确等一系列的限制,实际上这些限制就是保证数据完整性的一些手段,主要的目的就是为了保证用户所填写的内容正确、有效。
本章主要内容见图5-1所示的学习导航。
图5-1 本章学习导航5.1 概述当对数据库进行一系列的操作后,如添加、修改、删除后,数据可能会出现被破坏或相关数据不一致的情况,那么如何防止和解决这些问题的出现呢?这不仅仅需要管理人员和操纵人员的认真和负责,更需要建立一个保障机制,要么防止这些问题发生,要么发生这些问题时可以及时地发现。
数据完整性就是解决这些问题的一种机制。
数据完整性就是指存储在数据库中的数据的一致性和准确性。
在评价数据库的设计时,数据完整性是数据库设计好坏的一项重要指标。
根据数据完整性机制所作用的数据对象和范围不同,数据完整性可以分为实体完整性、域完整性、参照完整性和用户定义完整性4种。
1.实体完整性实体完整性,也可以称为行完整性。
实体是指表中的记录,一个实体就是表中的一条记录。
实体完整性要求在表中不能存在完全相同的记录,而且要求每条记录都要具有一个唯一的标识符,这种标识符一般称为主键值。
这样就可以保证数据所代表的任何事物都不存在重复、可以区分。
列级约束与表级约束在SQL Server中有5种约束:主键约束(primary key constraint)唯一性约束(unique constraint)检查约束(check constraint)缺省约束(default constraint)外部键约束(foreign key constraint)在SQL SERVER中,(1)对于基本表的约束分为列约束和表约束约束是限制用户输入到表中的数据的值的范围,一般分为列级约束与表级约束。
列级约束有六种:主键Primary key、外键foreign key 、唯一unique、检查checck 、默认default 、非空/空值not null/ null表级约束有四种:主键、外键、唯一、检查列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用’,’分隔,定义表约束时必须指出要约束的那些列的名称。
完整性约束的基本语法格式为:[ CONSTRAINT <约束名> ] <约束类型>约束名:约束不指定名称时,系统会给定一个名称。
(2)列级约束与表级约束的区别如果完整性约束涉及到该表的多个属性列,必须定义在表级上,否则既可以定义在列级也可以定义在表级。
简而言之:列级约束:列级约束是行定义的一部分,只能应用于一列上。
表级约束:表级约束是独立于列的定义,可以应用在一个表中的多列上。
(3)列级约束与表级约束在SQL中的用法(即如何在SQL中定义约束)在创建表时定义约束:CREATE TABLE table_name({<column_definition> -------列级约束定义|column_name AS computed_column_expression -------计算列定义|<teble_constraint> ------表级约束定义}[,….n])一个约束定义为列级约束还是表级约束???根据实际需要和设计者思路确定。