数据库实验报告完整性约束
数据库中的数据完整性与约束
数据库中的数据完整性与约束数据完整性是数据库设计和管理中的重要概念,它确保数据库中存储的数据准确、一致、可靠。
为了保证数据的完整性,数据库引入了各种约束,限制数据的输入和操作,以避免对数据库造成不一致或错误的影响。
一、实体完整性实体完整性是指数据库中的实体必须具有唯一性。
在数据库中,每个记录都代表一个实体,通过定义主键来确保每个实体都能唯一标识。
主键是一个或多个字段的组合,它们的值在整个表中必须唯一。
通过主键约束,确保了每个实体在数据库中的唯一性。
二、域完整性域完整性是指数据库中的每个字段都必须满足一定的约束条件。
常见的域完整性包括数据类型、长度、格式等方面的限制。
例如,在一个存储用户信息的表中,手机号字段的数据类型必须是数字,长度必须是11位,以保证数据的有效性。
三、参照完整性参照完整性是指两个表之间的引用关系必须满足一定的约束条件。
在关系型数据库中,通过外键约束可以实现参照完整性。
外键是一种引用另一个表中主键的字段,用于建立表之间的关联关系。
通过外键约束,确保了数据在引用表和被引用表之间的一致性。
四、用户定义的完整性用户定义的完整性是指根据业务需求,用户对数据库添加的约束。
例如,用户可以定义检查约束来限制某个字段的取值范围,确保数据的合法性。
用户还可以定义触发器来在插入、更新、删除数据时执行一些特定操作,从而保证数据的一致性。
综上所述,数据库中的数据完整性与约束是确保数据准确性和一致性的重要手段。
通过实体完整性、域完整性、参照完整性和用户定义的完整性等约束,可以有效地保证数据库中存储的数据的有效性和可靠性。
数据库管理员和开发人员在设计和管理数据库时,应合理利用这些约束,以确保数据的完整性。
数据库完整性实验总结(必备6篇)
数据库完整性实验总结第1篇时间流水,短短的两周就流逝了,回想在这两周的实训生活,我从单一,片面的学习进入了全面,系统的学习,学好它更是一项大任务。
而对于如何学好它,光靠理论知识是远远不够的,_同志曾经就说过“实践是检验真理的唯一标准”!正如大师傅炒菜,知道炒菜的程序,主料、调料一清二楚,不真正掌勺,永远也成不了“大厨”。
而学校给我们提供了这样一个机会,让我们自己_掌勺_,使我们从实践中,加深了对数据库的理解。
经过这次的实训,我们对数据库有了更深的了解,从书面的明白到实践的理解,接触到了自己以前没有接触到的东西,并让我加深了数据库知识的学习和理解,也使我进一步了解数据库,这次实训可以为我们以后真正的实际数据库系统设计提供很好的借鉴。
更使我明白遇到什么挫折,不气馁,不放弃,勇于探索,才会让自己离成功越来越近!俗话说:知之为知之,不知为不知!不要不懂装懂,有什么不懂的要敢于向_知之者_请教!知识是慢慢积累而成的,我们学习不仅要学习理论知识,而实践也是非常重要的,只有当两者结合,才会获得收获!我们这次实习对我们的认识起到了很大的启发作用,使我们以后在接触数据库的过程中少走点弯路。
也使我们对人生和社会有了更清楚的认识,任何的成功都有艰辛和汗水铺出来的,没有那么多的意外收获。
我们要学的还有很多,要接触的还不知道有多少,以后的路还很漫长,我相信我会更加努力的,把握现在,为自己的未来而奋斗,展开双翅飞向美好的未来!在这里很感谢xxx老师给我们传授了这么多的知识和经验,让我们在毕业之际更好的填补自己的不足。
数据库完整性实验总结第2篇在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。
数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。
数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。
数据库完整性实验报告
数据库完整性实验报告数据库完整性实验报告引言数据库完整性是指数据库中数据的准确性、一致性和有效性。
在数据库中,完整性是非常重要的,它保证了数据的可靠性和可信度。
本实验报告旨在介绍数据库完整性的概念、重要性以及实验过程和结果。
一、数据库完整性的概念和重要性数据库完整性是指数据库中的数据应符合规定的约束条件,不应存在冲突、矛盾或不一致的情况。
它包括实体完整性、参照完整性和用户定义的完整性。
1. 实体完整性实体完整性是指数据库中的每个实体都必须具有唯一的标识符。
在关系型数据库中,实体完整性通常通过主键来实现。
主键是一个能唯一标识实体的属性或属性组合,它保证了每个实体的唯一性。
2. 参照完整性参照完整性是指数据库中的外键必须引用已存在的主键。
外键是一个表中的属性,它引用了另一个表的主键。
参照完整性保证了表与表之间的关联关系的正确性和一致性。
3. 用户定义的完整性用户定义的完整性是指用户自定义的约束条件必须满足。
例如,一个表中的某个属性必须满足某种条件,如非空、唯一等。
用户定义的完整性保证了特定业务需求的满足。
数据库完整性的重要性在于保护数据的可靠性和一致性。
它可以防止数据的错误、冲突和不一致,确保数据的准确性和可信度。
同时,数据库完整性也为数据库的安全性提供了基础,防止非法访问和恶意操作。
二、实验过程本实验使用MySQL数据库进行实验。
1. 创建数据库和表首先,创建一个名为"students"的数据库,并在其中创建一个名为"grades"的表。
表"grades"包含三个字段:学生ID、课程名称和成绩。
2. 添加完整性约束在表"grades"中,为学生ID字段添加主键约束,保证每个学生ID的唯一性。
同时,为课程名称字段添加非空约束,保证每个课程都有名称。
3. 添加参照完整性约束在表"grades"中,为学生ID字段添加外键约束,引用了另一个表"students"中的主键。
数据库的完整性实验报告
数据库的完整性实验报告数据库的完整性实验报告引言:数据库的完整性是指数据库中存储的数据必须满足预定的一致性要求,包括实体完整性、域完整性、参照完整性和用户定义的完整性。
本实验旨在通过设计一个简单的数据库,并通过实际操作验证其完整性。
一、实验目的本实验的目的是通过设计和操作数据库,了解数据库的完整性概念,并掌握如何保证数据的完整性。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统上进行实验。
三、实验步骤1. 创建数据库首先,我们需要创建一个数据库来存储我们的数据。
在MySQL中,可以使用以下命令创建一个新的数据库:```CREATE DATABASE integrity;```2. 创建数据表接下来,我们需要创建一个数据表来存储我们的数据。
假设我们要创建一个学生信息表,包括学生的学号、姓名和年龄。
可以使用以下命令创建该表:```USE integrity;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```3. 插入数据现在,我们可以向刚刚创建的数据表中插入一些数据。
例如,我们可以插入几个学生的信息:```INSERT INTO students (id, name, age) VALUES (1, '张三', 20);INSERT INTO students (id, name, age) VALUES (2, '李四', 22);INSERT INTO students (id, name, age) VALUES (3, '王五', 21);```4. 实体完整性实体完整性是指每个实体都必须具有一个唯一的标识符。
在我们的学生信息表中,学生的学号是唯一的标识符。
为了保证实体完整性,我们可以在创建表时使用PRIMARY KEY约束来定义学号为主键:```CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```这样,如果有重复的学号插入到表中,系统会报错并拒绝插入。
实验3_数据库完整性约束
实验3 数据库完整性约束实验目的:掌握六种完整性约束(primary key, foreign key, unique, Null, check, default )的定义、命名与删除实验准备:创建数据库ch5db,并在其中创建如下两张表student和course:create database ch5dbgouse ch5dbCREATE TABLE student(sno CHAR(9)PRIMARY KEY,/*列级完整性约束,设置sno属性为主码*/sname CHAR(20)UNIQUE,/*列级完整性约束,要求sname属性的值唯一*/ssex CHAR(2)DEFAULT'男'CHECK(ssex IN('男','女')),/*DEFAULT默认值约束,CHECK约束限制ssex属性的取值范围*/sage SMALLINT CHECK(sage>=15 AND sage<=45),/*检查约束的实现*/sdept CHAR(20))CREATE TABLE course(cno CHAR(4),cname CHAR(40),cpno CHAR(4),ccredit SMALLINT,PRIMARY KEY(cno),/*也可以在表级约束上设置主码*/)/*下列语句向student表插入记录*/INSERT INTO student VALUES('200215121','李勇','男',20,'CS')INSERT INTO student VALUES('200215122','刘晨','女',19,'CS')INSERT INTO student VALUES('200215123','王敏','女',18,'MA')INSERT INTO student VALUES('200215125','张立','男',19,'IS')/*下列语句向course表插入记录*/INSERT INTO course VALUES('1','数据库','5',4)INSERT INTO course VALUES('2','数学',null,2)INSERT INTO course VALUES('3','信息系统','1',4)INSERT INTO course VALUES('4','操作系统','6',3)INSERT INTO course VALUES('5','数据结构','7',4)INSERT INTO course VALUES('6','数据处理',null,2)INSERT INTO course VALUES('7','PASCAL语言','6',4)实验内容:一、创建SC表,并显式说明违约处理规则CREATE TABLE scc(sno CHAR(9),cno CHAR(4),grade SMALLINT CHECK((grade IS NULL)OR(grade BETWEEN 0 AND 100)),PRIMARY KEY(sno,cno),/*主码约束的实现*/ FOREIGN KEY(sno)REFERENCES student(sno) on delete cascadeon update cascade,FOREIGN KEY(cno)REFERENCES course(cno)on delete no actionon update cascade)INSERT INTO scc VALUES('200215121','1',92) INSERT INTO scc VALUES('200215121','2',85) INSERT INTO scc VALUES('200215121','3',88) INSERT INTO scc VALUES('200215122','2',90) INSERT INTO scc VALUES('200215122','3',80)输入如下命令进行测试,观察结果二、为约束起名创建表student_e10,并为相应的约束起名。
数据库实验报告完整性约束
大连海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。
(2)掌握完整性约束的运行检查机制。
(3)掌握参照完整性的级联删除和修改方法。
(4)掌握正确设计关系模式完整性约束的方法。
2实验内容2.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。
(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
(3)删除以上两个主键约束。
(4)利用ALTER TABLE语句定义上述两个主键。
2.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。
(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
(7)设计数据更新语句检查参照完整性约束是否起作用。
(8)删除上述完整性约束。
(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。
(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。
2.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。
3实验要求(1)深入复习教材第五章数据库完整性约束内容。
(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
数据库完整性实验报告
数据库完整性实验报告引言数据库完整性是数据库管理系统中的一个重要概念,用于确保数据库中数据的准确性、有效性和一致性。
本实验旨在通过设计和实现一系列完整性约束,来验证数据库完整性的实际应用。
实验目标本实验的目标是设计并实现以下几种完整性约束:1.实体完整性约束2.参照完整性约束3.用户自定义完整性约束实验环境本实验使用了以下工具和环境:•数据库管理系统:MySQL•编程语言:Python•集成开发环境:Jupyter Notebook实验步骤步骤一:数据库设计首先,我们需要设计一个符合实验需求的数据库。
我们选择一个简单的学生管理系统作为示例,包含以下两个实体:1.学生(Student):包含学生的学号、姓名和年龄。
2.课程(Course):包含课程的课程号、课程名和学分。
步骤二:实体完整性约束实体完整性约束用于保证每个实体在数据库中都有唯一的标识。
在本实验中,我们将为学生实体添加一个主键约束,保证每个学生的学号是唯一的。
CREATE TABLE Student (id INT PRIMARY KEY,name VARCHAR(50),age INT);步骤三:参照完整性约束参照完整性约束用于保证关系数据库中的引用一致性。
在本实验中,我们将为课程实体添加一个外键约束,引用学生实体的主键。
CREATE TABLE Course (id INT PRIMARY KEY,name VARCHAR(50),credits INT,student_id INT,FOREIGN KEY (student_id) REFERENCES Student(id));步骤四:用户自定义完整性约束用户自定义完整性约束是根据具体业务需求自定义的约束条件。
在本实验中,我们将为课程实体添加一个自定义约束,保证学分必须大于等于0。
ALTER TABLE CourseADD CONSTRAINT chk_credits CHECK (credits >=0);实验结果通过以上步骤,我们已经成功设计并实现了实体完整性约束、参照完整性约束和用户自定义完整性约束。
数据库实验6 -数据完整性约束(表约束)
实验六数据完整性约束姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:2022.5【实验目的与要求】1.熟练掌握实体完整性的实现。
2.熟练掌握参照完整性的实现。
3.熟练掌握域完整性的实现。
【实验内容与步骤】实验准备:(1)对于SalesDB数据库,若在产品表、销售表和客户表上已有约束,请先删除之;(2)删除掉表中重复的行。
6.1.实体完整性的实现(1) 对产品表,定义主键约束(用企业管理器实现)。
写出相应过程:(1)在对象资源管理器中的数据库节点下找到数据库SalesDB,找到表Product。
右击-修改(2)按住Ctrl键选中Price和Stocks,右键-设置主键-保存测试:试着对产品表插入一条与原表中数据行具有相同主键值的数据。
给出测试结果:(2)客户表(CUSTOMER),定义名为PK_Cstm的主键约束,设定客户号(Cno)为主键。
(用SQL语句实现,写出相应语句)。
给出相应的SQL语句:alter table Customeraddconstraint PK_Cstm primary key(Cno)给出测试结果:(3)对销售表,定义名为PK_Sales的主键约束,设定主键为(Pno,Cno)的组合(用SQL语句实现,写出相应语句)。
给出相应的SQL语句:alter table Salesaddconstraint PK_Sales primary key(Pno,Cno)给出测试结果:(1)利用企业管理器建立产品表(Product)与销售表(Sales)之间的参照关系,当对主表产品表进行更新和删除操作时,从表Sales采用NO ACTION方式,写出其过程。
给出相应的过程:测试:试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。
(2)利用SQL语句建立销售表(SALES)与客户表(CUSTOMER)之间的参照关系,设定外键约束名为FK_SC,使得当对主表客户表(CUSTOMER)进行更新和删除操作时,从表销售表(SALES)采用CASCADE(级联)方式处理,给出相应的SQL语句和测试结果。
数据库—数据完整性约束
数据库—数据完整性约束
⼀、概念
数据完整性:存储在数据库中的所有数据值均正确的状态。
完整性约束:防⽌不符合规范的数据进⼊数据库,在⽤户对数据进⾏插⼊、修改、删除等操作时,DBMS⾃动按照⼀定的约束条件对数据进⾏监测,使不符合规范的数据不能进⼊数据库,以确保数据库中存储的数据正确、有效、相容。
⼆、分类
1. 实体完整性(实体完整性是对主键的约束,简单来说就是主键不能重复也不能为空)。
2. 域完整性(域完整性是对数据表中字段属性的约束,即数据的有效性,包括字段的类型,值域,字段是否符合有效规则等。
)
3. 参照完整性(参照完整性是对外键的约束。
准确地说,参照完整性是指关系中的外键必须是另⼀个关系的主键有效值,或者是NULL。
参考完整性维护表间数据的有效性,完整性,通常通过建⽴外部键联系另⼀表的主键实现,还可以⽤触发器来维护参考完整性)
4. ⽤户定义的完整性。
约束是表级的强制规定,有以下五中:not null ⾮空,unique 主键,primary key 主关键字段,foreign key 外键,check 限制列中的值的范围。
数据库系统原理完整性约束
数据库系统原理完整性约束数据库系统原理实验报告实验名称:完整性约束指导教师:叶晓鸣刘国芳专业:计算机科学与技术班级:10级(1)班姓名:文科学号:100510107 完成日期: 2012-10-12 成绩:一、实验目的:1.认识完整性约束对数据库的重要性.2.掌握实体完整性的创建,修改,维护.3.掌握域完整性的创建,修改,维护.4.掌握参照完整性的创建,修改,维护.5.掌握用户定义的完整性的创建,修改,维护.二、实验内容及要求:内容:1.完整性约束(1) 交互式为数据库表S创建PRIMARY KEY约束.(2)交互式创建数据库表TEST_SC,并创建PRIMARY KEY约束.(3)用SQL为现有表T在TNO列上创建PRIMARY KEY约束.(4)用SQL创建数据库表TEST_TC,并以列约束形式创建PRIMARY KEY约束束(5) 用SQL创建数据库表TEST_TC,并以表约束形式创建PRIMARY KEY约束束(6)交互式为现有表TEST_TC中的CNO和TNO列创建”UNIQUE”约束(7)用SQL为现有表C中的CN列创建”UNIQUE”约束(8) 交互式为现有表TEST_SC增新列ID_SC,并创建此列属性为IDENTITY.(9) 用SQL为现有表TEST_TC增新列ID_TC, 并创建此列属性为IDENTITY.(10) 交互式删除现有表TEST_SC的主键PK_TEST_SC并取消ID_SC列的标识属性(11) 用SQL删除表C中CN列的UNIQUE约束UNIQUE_C.2. 域完整性约束(1)交互式为现有数据库表T创建DEFAULT和CHECK约束.(2)用SQL为现有数据库表S创建CHECK约束.(3)用SQL创建一数据库表TEST_S,包含DEFAULT和CHECK约束(4) ) 用SQL删除表T中列PROF和COMM之间的CHECK约束CHECK_T.(5)交互式删除表TEST_S中列SEX的DEFAULT约束及列AGE的CHECK约束.3. 参照完整性约束(1)交互式创建表S与表SC之间的参照关系.(2)用SQL创建表T与表TC之间的参照关系.(3)创建数据库jxsk1中5个表之间的关联关系图。
实验三 完整性约束
实验三完整性约束实验三完整性约束实验3完整性约束一、1.2.3.4.实验目的理解主键、唯一键、外键、检查、默认和标识列的含义。
掌握用企业管理器创建unique、foreignkey、check、default约束;掌握用sql创建unique、foreignkey、check、default约束;掌握用sql创建identity属性列。
二、实验要求1.执行下发的sql文件,创建test数据库2.完成实验内容中的每一个主题,完成SQL语句,并粘贴问题后可以成功执行的SQL 语言句3.分离测试数据库并将测试数据库文件打包到test zip中4.将test.zip和实验报告电子稿一起打包成“学号姓名.zip”上交三、实验内容(一)执行下发的sql文件,创建test数据库(二)建表时创建约束1.使用SQL_uTCTABLE创建一个新的表测试,并设置主键。
用sql创建新表test_tc,并以列约束形式创建primarykey约束。
test_tc表的结构定义如下:表名:Test_uTC包含以下列:教师号:tnochar(2)课号:cnochar(2)主键:(tno,cno)主键约束名称:PK_u;test_uutcsql语句:usetestcreatetabletest_uuTC(tnochar(2)、cnochar(2),constraintpk_test_tcprimarykey(tno,cno))(三)在现有表中创建和删除约束2.用企业管理器为现有表test_tc中的cno和tno列创建“unique约束”3.用sql为现有表c中的cn列创建“unique约束”sql语句:usetest可改变的addconstraintunique_cunique(cn)4.使用enterprise manager测试现有表uSC添加新列ID SC并将此列属性创建为Identity 5使用SQL TC添加新列ID TC测试现有表并将此列属性创建为Identity SQL语句:usetestaltertabletest_tc额外身份6.在企业管理器中删除现有表test_sc的主键pk_test_sc和取消id_sc列的标认知属性7.用sql删除表c中cn列的unique约束unique_csql语句:usetest可改变的dropunique_c8.使用enterprise manager为现有表t创建默认值并检查约束。
数据库原理实验报告-数据库的完整性
实验题目四、数据库的完整性一、实验目的1、掌握使用约束实现数据完整性的方法;2、掌握使用触发器实现数据完整性的方法;二、实验内容和要求1、设置主键约束、外键约束、唯一约束、非空约束、CHECK约束等;2、使用图形用户界面创建触发器、使用SQL语言创建触发器,实现完整性控制;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/XP或更高版本;2.数据库管理系统:SQL Server 2005或更高版本;四、实验方法、步骤及结果测试(一)、根据实验一中的基本表,使用约束创建数据完整性。
要求:1、删除teaching中的基本表。
按实验一中的各表的定义,重新创建student表、course1)创建各基本表的先后顺序有什么影响?2)在创建各表过程中,遇到了什么问题,是如何解决的?3、通过“ALERT TABLE”语句,完成下列操作:1)为student表的sname列添加唯一约束,并命名。
2)删除course表的非空约束。
3)为sc表的score列添加约束,取值范围为[0,100]。
4)定义域title_domain,取值为{助教,讲师,副教授,教师},检查SQL Server是否3、检查student表sname列的唯一约束插入新的数据记录对新建的唯一约束进行检查,写出相应的SQL语句,并将检查的执4、检查sc表score列的CHECK约束插入不在定义范围的数据记录检查约束。
写出相应的SQL语句,并将检查执行结果截(二)、通过图形用户界面的方式创建各类约束,定义数据的完整性1、删除sc表的外键约束。
在表设计器中,单击工具栏中的“表和索引属性”按钮,打开2、删除speciality的spname字段唯一约束。
然后在表设计器中,单击工具栏中的“表和3、在表设计器中,单击工具栏中的“表和索引属性”按钮,打开“属性”对话框,在“CHECK 约束”选项中,为teacher表中的title列设置检查约束,定义取值范围为{助教、讲师、副(三)、使用触发器实现数据的完整性1、在student表中创建触发器,实现student和sc表的级联删除。
第5章数据库完整性约束总结
第5章数据库完整性约束总结数据库完整性约束是指对数据库中数据的完整性进行约束和验证,从而保证数据的准确性和一致性。
在数据库设计和管理中,完整性约束是非常重要的一部分。
本文将总结数据库完整性约束的相关内容。
一、数据库完整性约束的概念数据库完整性是指对数据库中存储的数据进行约束,以保证数据的正确性和一致性。
完整性约束是通过规定一系列的规则和条件来限制数据的输入和修改,以保证数据的完整性。
常见的完整性约束有实体完整性、域完整性、参照完整性、用户定义完整性等。
1.实体完整性:是指每个表中的记录都有唯一的标识符,不允许重复记录的存在。
实体完整性可以通过设置主键来实现,主键是唯一标识一条记录的字段或字段组合。
2.域完整性:是指数据库中每个字段的取值必须满足指定的规则和约束。
数据类型、长度、有效性等都是域完整性的一部分。
3.参照完整性:是指在关系数据库中建立表之间的关系时,要求所有的外键引用必须是有效的,即引用的主键值必须存在。
参照完整性可以防止无效的外键引用和数据的不一致。
4.用户定义完整性:是指用户可以根据自己的需求定义一些完整性约束,例如检查一些字段值的范围、格式等。
二、实现数据库完整性约束的方法在数据库中,可以通过以下方法来实现完整性约束。
1.主键约束:主键是唯一标识一个实体的字段或字段组合,可以通过设置主键来实现实体完整性。
主键约束要求主键的值不能重复,可以通过唯一索引或者唯一约束来实现。
2.唯一约束:唯一约束是指一个字段的值不能重复,可通过唯一索引或者唯一约束来实现。
3.非空约束:非空约束是指一个字段的值不能为空,可以通过设置字段的默认值或者非空约束来实现。
4.外键约束:外键是指一个表中的字段引用了另一个表的主键,可以通过外键约束来实现参照完整性。
外键约束要求外键引用的主键值必须存在,可以通过设置级联删除或者设置为空来处理引用的主键删除或修改的情况。
5.检查约束:检查约束是指限制字段值的取值范围,可以通过设置字段的数据类型和长度来实现。
实验5-数据库的完整性
实验实现数据完整性一、实验目的(1)实现数据完整性的概念及实施数据完整性的重要性。
(2)掌握数据完整性的分类。
(3)掌握完整性约束的添加、删除方法。
(4)掌握通用默认值的创建、实施与删除方法。
(5)掌握规则的创建、实施与删除方法。
(6)掌握级联删除、级联修改方法。
二、实验内容1、完整性约束的添加、删除(1)通过SQL Server Management Studio实施约束a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。
①、选择Student表,右击→设计,打开Student表②、选择Birth一行,右击→CHECK约束,打开界面如下图所示③、单击“添加”④、在表达式中写入:Entrance_date<getdate()⑤、单击“关闭”退出b.为表Student的Sdept字段,设置默认值约束,默认值取’计算机系’。
选择Sdept一行,在其列属性中修改其默认值c.为Student表的Sname字段添加唯一性约束。
选择Sname一行,右击→索引/键出现如下界面:单击“添加”,在类型中选择“唯一键”,在列中选择“Sname”,名称自定义最后单击“关闭”退出d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。
(此要求在SQL Server2008R2中无法做出)若已存在外键约束,请先删除。
①、选中Sno,右击→单击“关系”,出现如下信息,可见已存在外键约束选中键,点击删除,完成约束删除②、添加约束:选中Sno,右击,选择“关系”,出现如下信息,③、点击添加,并修改④、修改成自己想要的规范和名称⑤、确定,完成⑥、设置Cno的外键同上理(2)使用Transact-SQL语句实施约束a.为Student表的Sno字段添加一个check约束,使学号满足如下条件:学号前四位为2011,学号后四位为数字字符。
alter table Studentadd constraint sno_numcheck(sno like '[2][0][1][1][0-9][0-9][0-9][0-9]')b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。
数据库实验(实验四实体完整性约束)实验报告答案
实验4 实体完整性约束【实验内容】4.1 实体完整性约束实体完整性约束1、为现有表T在TNO列上创建PRIMARY KEY约束。
约束。
2、创建数据库表TEST_C,并以列约束形式创建PRIMARY KEY约束,TEST_C表的结构定义如下:表的结构定义如下: 表名:TEST_C。
包含的列如下:包含的列如下:课程号:CNO CHAR(2);课程名:CN CHAR(10);课时:CT TINYINT;主键:CNO主键约束名:PK_TEST_C。
3、创建数据库表TEST_TC,并以表约束形式创建PRIMARY KEY约束,TEST_TC表的结构定义如下:表的结构定义如下: 表名:TEST_TC。
包含的列如下:包含的列如下:教师号:TNO CHAR(2);课程号:CNO CHAR(2);主键:(TNO, CNO);主键约束名:PK_TEST_TC。
4、为表C中的CN列创建“UNIQUE”约束UNIQUE_C。
5、为表TEST_TC增加新列ID_TC,并创建此列属性为IDENTITY。
6、删除表C中CN列的UNIQUE约束UNIQUE_C。
4.2 域完整性约束域完整性约束1、为表S创建CHECK约束。
约束。
要求本科生的年龄限制在14 14 —— 40岁之间,此约束对表S 中已有数据做检查。
中已有数据做检查。
2、创建数据库表TEST_S ,包含DEFAULT 和CHECK 约束,表TEST_S 的结构定义如表4-1所示。
所示。
表4-1 表TEST_S 的结构定义的结构定义 列名列名数据类型和长度数据类型和长度 DEFAULT是否可NULLCHECK 表达式约束名 SNO char(2) 否 SN char(8) 否SEX char(2) ‘男’ 是 ‘男’OR‘女’ DEFAULT_SEX CHECK_SEX AGE int 18 是 >= 14 AND <= 40 DEFAULT_AGE CHECK_AGE3、删除表TEST_S 中列SEX 的DEFAULT 约束及列AGE 的CHECK 约束。
数据库实验-数据完整性约束
广州XX学院数据库管理及应用实验报告专业班级计算机181 实验日期2020.4.18 姓名李XX 学号2018132 实验名称数据完整性约束指导教师王琢(报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等)一、实验目的(1)理解数据完整性约束概念。
(2)掌握SQL Server的数据完整性约束技术。
(3)了解SQL Server的违反数据完整性约束的处理措施。
二、实验设备及器材Windows平台、SQL Server 2012。
三、实验内容4.1在数据库EDUC中创建下列完整性约束。
1)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。
2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。
3)为教师上课信息表TC_info创建CHECK约束:学生成绩在0-100。
4)为教师上课信息表TC_info创建外键约束:tcid、tno、classno和cno。
4.2在数据库TSGL中创建下列完整性约束。
1)创建CHECK约束:readers表的RederType在0-9。
2)利用SSMS删除readers表的约束。
3)创建主键约束:为readers表的字段ReaderID添加主键。
4)创建多个字段的主键:为borrowinf表的ReaderID、BookID字段定义主键。
四、实验步骤4.11)为数据库Course_info创建CHECK约束:当插入或修改一个记录时确保此记录的授课学时在10-80。
USE EDUCGOALTER TABLE Course_infoWITH NOCHECK ADD CONSTRAINT CK_lecture CHECK(lecture>=10 AND lecture <=80)GO2)为教师信息表Teacher_info创建CHECK约束:男教师的出生日期在1960年1月1日后,女教师的出生日期在1965年1月1日后。
实验八:数据库的完整性约束.doc
实验八:数据库的完整性约束.doc数据库的完整性约束是数据库管理系统的重要特性之一,它是指对数据库中数据的一些限制性约束条件。
这些限制条件可作用于数据库中的表、字段、关键字等,目的是为了保证数据库中的数据的完整性、一致性和准确性。
下面将详细介绍数据库的完整性约束。
一、完整性约束的种类数据库的完整性约束主要有以下几种:1.实体完整性:是指表中每条记录都必须存在一个唯一的主键值,也就是主键不能为空,同时要求表中不能存在两条相同的记录。
2.参照完整性:是指在关系型数据库中,如果一个表中的某个字段与另一张表的主键或唯一索引关联,那么这个表中的记录必须在关联表中有相应的记录。
3.域完整性:是指每个字段必须有一个有效的数据类型,同时对于每个字段还可以指定一些合法的取值范围。
4.用户定义的完整性:是指用户可以自定义一些限制条件,以便对数据库中的数据进行更复杂的限制。
1.确保数据的唯一性:通过实体完整性和参照完整性可以避免数据库中出现重复的记录和没有对应关系的记录。
2.限制数据的正确性:通过域完整性可以限制每个字段的取值范围,从而保证数据的正确性。
3.提高数据库性能:通过完整性约束可以避免不必要的查询操作,提高数据库的性能。
4.保护数据的安全性:通过完整性约束可以保护数据的安全性,防止数据被恶意篡改或删除。
1.在表定义时指定完整性约束:在创建表时可以指定表的主键、外键、检查约束等完整性约束。
2.使用触发器实现完整性约束:使用触发器可以实现更多复杂的完整性约束,例如在插入或修改记录时触发器会对数据进行验证,如不符合约束条件则拒绝操作。
3.使用存储过程实现完整性约束:存储过程也可以实现完整性约束,例如在存储过程中进行数据的验证和处理。
完整性约束通常用于以下几个场景:1.数据库的设计:在数据库设计中,应该考虑到数据库的完整性问题,因此在创建表时应该根据实际需求来定义合适的完整性约束条件。
2.数据的输入和修改:在数据进行输入和修改时,系统应该对输入的数据进行验证,如果不符合完整性约束条件,则需要提示用户进行修改。
湖南大学数据库实验四 完整性约束、视图、存储过程和数据安全
真验四完备性拘束、视图、保存历程战数据仄安之阳早格格创做真验手段:1、掌握创修百般真体完备性拘束的要领.2、掌握创修战使用视图、保存历程战索引的要领.3、掌握视图真止数据仄安的基原要领.4、掌握数据库的基原备份战回复技能.真验真质:原真验正在ORACLE数据库仄台上举止支配,ORACLE数据库的基原支配请参照真验两,原真验中的百般数据皆去自于真验三中的各个表.真验主要真质如下:1、教习创修四类完备性拘束的要领.2、教习创修视图、保存历程战索引的要领.3、教习利用用户管制,角色管制,以及利用视图真止数据仄安.4、教习ORACLE数据库的基原备份战回复技能.真验历程:要领一:create table course (cno varchar(10) not null,dno char(8) not null,cname varchar(20) not null,hours number not null,term number not null,credit number not null,constraint pk_course primary key (cno));要领两:altertablecourseaddconstraintpk_courseprimarykey(cno) ;alter table COURSEadd constraint FK_COURSE_DEPARTMEN_DEPARTME foreign key (dno) references department (dno);前里修表时用的数据典型,NOT NULL等皆属于域拘束;alter table student add constraint chk_sex check (sex in ('男','女'));alter table student modify sex default '男';alter table student_course_teacher add constraint chk_score check (score>=0 AND score<=100);用触收器真止一下:create or WordStr trigger tri_del_teacherafter delete on teacherfor each rowdeclare-- local variables herebegindelete from teacher_coursewhere tno=:old.tno;delete from student_course_teacherwhere tno=:old.tno;end tri_del_teacher;/备注:末尾里的斜杠“/”出有克出有及少. createview myview_course asselect s.sno 教号, sname 姓名, classno 班级from student s,teacher t,course c,student_course_teacher sctwhere t.tname ='杨金民'and ame ='数据库系统'and sct.semester = '2010/01'andandand o = o;创修保存历程:createorWordStrprocedure myproc(cname1 varchar2,semester1 varchar2)asclassno1 student.classno%type;avg1 integer;beginselect classno, avg(score)into classno1,avg1from student s, course c, student_course_teacher sctwhere ame = cname1and sct.semester =semester1andandandrownum=1groupby classno;dbms_output.put_line('班级编号:'||classno1||' '||'仄衡分:'||avg1);end;/创修乐成以去,使用保存历程:CALL myproc('数据库系统','2010/01');create index my_student_idx on student(sex); ----对于表中的SEX修坐索引create user test identified by tiger; -----创修grant connect to test; -----连交GRANT {privilegeList | ALL PRIVILEGES}---授权ON ObjectNameTO {AuthorizationIdList | PUBLIC}[WITH GRANT OPTION]create role myrole; ------创修grant select on maqiang.teacher_course to myrole; ----授权grant select on maqiang.student to myrole;grant myrole to test; -----使用户具备mvrole的权力select * from maqiang.teacher_course; ---考证是可具备该权力select * from maqiang.student;revoke myrole from test; ---与消角色权力create view myview_student as select sno,sname from maqiang.student; ----创修grant select on myview_student to test; -----授权将student_course_teacher表举止备份战回复.慢冲区大小:不妨变动,那里便用的默认值;导出文献:输进导出路径,文献名后缀.dmp;用户,表:那里不妨采用是导出用户下所有的,仍旧选定的表,如果具备管制员权力,则可多一个选项,导出所有数据库.导出表数据:采用yes的话便会把表的数据也导出,no 的话便只导出表结构,出有导出数据;压缩区:采用yes会举止压缩.要导出的表或者分区:那里挖写要导出的表名,原例中便是student_course_teacher,不妨瞅到,乐成导出,如果还要导出别的表,交着输进表名,出了的话便曲交回车中断.最先:简略表, drop table student_course_teacher;而后,利用上头的备份文献回复表student_course_teacher小结:通过原次考查,掌握了四类完备性拘束的写法,教会创修战使用视图,进一步相识数据仄安战数据库的基原备份战回复技能.。
数据库实验报告完整性约束
海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。
(2)掌握完整性约束的运行检查机制。
(3)掌握参照完整性的级联删除和修改方法。
(4)掌握正确设计关系模式完整性约束的方法。
2实验容2.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。
(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
(3)删除以上两个主键约束。
(4)利用ALTER TABLE语句定义上述两个主键。
2.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。
(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
(7)设计数据更新语句检查参照完整性约束是否起作用。
(8)删除上述完整性约束。
(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDA TE/DELETE时的动作。
(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。
2.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值围,并设计相应的更新语句检查该约束是否起作用?(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。
3实验要求(1)深入复习教材第五章数据库完整性约束容。
(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
实验八:数据库的完整性约束
实验八:数据库的完整性约束一、实验目的1.掌握主键约束、外键约束及及check约束的用法;2.掌握默认值约束的应用;3.了解规则、触发器的使用。
二、实验环境已安装SQL Server 2005 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.熟悉数据库完整性相关概念及约束;2.了解约束、默认值及规则;3.完成实验报告;五、实验内容及步骤以系统管理员身份登录到SQL Server服务器,并使用T-SQL语句实现以下操作;1.请用至少2种方法定义stu数据库中student表的主键sno;方法一create table student(sno char(9)primary key,sname char(2)not null,ssex char(2),sage smallint,sdept char(20))方法二create table student(sno char(9),sname char(20)not null,ssex char(2),sage smallint,sdept char(20),primary key(sno))2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk; create table course(cno char(4),cname char(40),cpno char(4),ccredit smallint,constraint cno_pkprimary key(cno))3.为表course中的字段cname添加唯一值约束;create table course(cno char(4),cname char(40)unique,cpno char(4),ccredit smallint,constraint cno_pkprimary key(cno))4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;create table sc(sno char(9)not null,cno char(4)not null,cpno char(4),grade smallint,constraint sc_pkprimary key(sno,cno))5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;4)删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录;5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入;USE stuALTER TABLE scADD CONSTRAINT sc_fkFOREIGN KEY(Sno)REFERENCES student(Sno)ON DELETE CASCADEON UPDATE NO ACTION,FOREIGN KEY(Cno)REFERENCES course(Cno)ON DELETE CASCADEON UPDATE CASCADE6.定义check约束,要求学生学号sno必须为9位数字字符,且不能以0开头,第二三位皆为0;alter table studentadd constraint C1 check(sno like'*00?'and sno not like'0?')7.定义stu数据库中student表中学生年龄值在16-25范围内;alter table studentadd constraint c7 check(sage>15 and sage<25)8.定义stu数据库中student表中学生姓名长度在2-8之间;alter table studentadd constraint c2 check(len(sname)>2 and len(sname)<8)9.定义stu数据库中student表中学生性别列中只能输入“男”或“女”;alter table studentadd constraint c8 check(ssex in('男','女'))10.定义stu数据库student表中学生年龄值默认值为20;create default sage as 2011.修改student表学生的年龄值约束可以为15-30范围内;alter table studentadd constraint c6 check(sage>15 and sage>30)12.删除上述唯一值约束、外键约束及check约束;alter table studentdrop constraint c1,c2,c3;alter table scdrop constraint c8,c4,c513.思考题:定义规则对象,用于保证course表中cno字段值为5个数字字符;(可选做)14.思考题:向sc表中插入或修改一条记录时,通过触发器检查记录sno字段的值在student表中是否存在,若不存在,则取消插入或修改操作;(可选做)15.思考题:删除student表中一条记录的同时删除其在sc表中对应的记录;六、出现问题及解决办法如:某些操作无法执行,如何解决?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验报告完整性约束大连海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:智能科学与技术实验环境: Microsoft SQL server 20141实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。
(2)掌握完整性约束的运行检查机制。
(3)掌握参照完整性的级联删除和修改方法。
(4)掌握正确设计关系模式完整性约束的方法。
2实验内容2.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。
(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
(3)删除以上两个主键约束。
(4)利用ALTER TABLE语句定义上述两个主键。
2.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。
(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
(7)设计数据更新语句检查参照完整性约束是否起作用。
(8)删除上述完整性约束。
(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。
(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。
2.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?(15)定义一个DEFAULT约束,设计一个INSERT 语句检查该约束是否起作用。
3实验要求(1)深入复习教材第五章数据库完整性约束内容。
(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。
也可以按照附1所列示例做实验。
(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
(4)思考题:完整性约束的违约处理有哪几种方式?4实验步骤4.1 掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。
CREATE TABLE PART(PARTKEY INTEGER,MFGR CHAR(100),TYPE CHAR(25),SIZE INTEGER,NAME CHAR(55),CONTAINER CHAR(10),BRAND CHAR(10),RETAILPRICE REAL,COMMENT V ARCHAR(23),CONSTRAINT PARTY PRIMARYKEY(PARTKEY));(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
CREATE TABLE PARTSUPP(PARTKEY INTEGER,A V AILQTY INTEGER,SUPPKEY INTEGER,COMMENT V ARCHAR(199),SUPPLYCOST REAL,FOREIGN KEY (PARTKEY)REFERENCES PART,FOREIGN KEY (SUPPKEY)REFERENCES SUPPLIER,CONSTRAINT PARTSUPPY PRIMARYKEY(PARTKEY,SUPPKEY));(3)删除以上两个主键约束。
ALTER TABLE PARTSUPPDROP CONSTRAINT PARTSUPPY;(4)利用ALTER TABLE语句定义上述两个主键。
SELECT *FROMinformation_schema.table_constraints;ALTER TABLE LINEITEMADD CONSTRAINT LINEITEMKEYPRIMARY KEY(ORDERKEY,LINENUMBER);4.2 掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。
ALTER TABLE PARTSUPPADD CONSTRAINT C1 check(partkeybetween 1 and 999999);(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
ALTER TABLE lineitemadd constraint linepartkey foreignkey(partkey) references part;(7)设计数据更新语句检查参照完整性约束是否起作用。
insertintolineitem(orderkey,partkey,suppkey,linenumber,quantity)values('222010','234','1234','2','34');(8)删除上述完整性约束。
alter table lineitemdrop constraintLINEITEM_ORDERKEY_FKEY;(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。
alter table lineitemadd constraintLINEITEM_ORDERKEY_FKEY foreignkey(orderkey) references orders(orderkey)on delete cascade;(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。
deletefrom lineitemwhere orderkey='915811';4.3 掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?ALTER TABLE lineitem ADDCONSTRAINT discountk CHECK (discountbetween 0 and 1 );(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?alter table nationadd constraint namek check(name like'%国'); (13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?alter table customeradd constraint puonek check(phone similar to'__________');(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?ALTER TABLE nationadd constraint namek unique(name);(15)定义一个DEFAULT约束,设计一个INSERT 语句检查该约束是否起作用。
ALTER TABLE supplierADD CONSTRAINT supplierkDEFAULT 40for nationkey;5总结与体会5.1 实验中出现的问题及其解决方案经过查书与上网查询,问题解决5.2 总结数据库的完整性是指数据的正确性和相容性,非常的复杂。
5.3 体会数据库编写程序时非常复杂,各种约束并不是能熟练运用,还需要继续联系附1:数据库完整性约束以TPCH数据模式为例,完成如下各实验项目。
(1)创建表时定义由一个属性组成的主键(给约束命名)。
创建零件表part时定义主键。
(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。
创建零件供应关系表partsupp时定义主键。
(3)删除以上两个主键约束。
删除零件表和零件供应关系表的主键。
(4)利用ALTER TABLE语句定义上述两个主键。
利用ALTER TABLE增加part和partsupp表的主键。
(5)创建表时定义一个列级参照完整性约束(给约束命名)。
定义partsupp表的列级参照完整性约束。
(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。
定义lineitem的参照完整性约束。
(7)设计数据更新语句检查参照完整性约束是否起作用。
设计INSERT、DELETE和UPDATE语句检查上述完整性约束是否有效。
(8)删除上述完整性约束。
删除partsupp和lineitem的参照完整性约束。
(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。
利用ALTER TABLE 建立上述两个完整性约束,并规定UPDATE和DELETE级联修改和删除。
(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。
删除零件供应记录partsupp 或者是orders表中的记录,检查约束是否起作用?(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用?定义一个检查Lineitem中的折扣只能在0和1之间的CHECK约束,并设计INSERT语句检查约束是否起作用。
(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用?定义一个CHECK约束,检查国家表nation中的国家名称的最后一个字必须为“国”字。
设计一个INSERT语句检查该约束是否有效。
(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用?定义一个CHECK约束,检查CUSTOMER表中的PHONE必须由12位数字组成。
并设计一个INSERT语句或者是UPDATE语句检查该约束是否有效。
(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用?在NATION表的NAME字段上定义一个UNIQUE约束,不允许国家名重复。
设计一个INSERT语句检查约束是否有效。
(15)定义一个DEFAULT约束,设计一个INSERT 语句检查该约束是否起作用。
在SUPPLIER表中的NATIONKEY字段上定义一个DEFAULT约束,默认取值为中国的国家代码。
并设计一个INSERT语句检查该约束是否有效。