广工数据库实验报告

合集下载

数据库实验报告总结

数据库实验报告总结

数据库实验报告总结
经过本次数据库实验,我对关系型数据库的设计、建立、维护有了更深入的认识和了解。

以下是我在本次实验中学到的几个重要的经验和教训:
1. 设计数据库前要进行详细的需求分析。

在开展数据库设计和建立时,应该先进行需求分析,明确系统需要实现的功能,考虑数据的组织结构和联系,以及数据的完整性和保密性等要素。

只有进行充分的需求分析,才能确保数据库设计的合理性和有效性。

2. 数据库设计要遵循规范。

在进行数据库设计过程中,应该遵循规范,例如表的设计要符合三范式,遵循命名规范等等。

这样能够确保数据的一致性和纯净性,并便于维护和管理。

3. 合理编写SQL语句。

在编写SQL语句时,应该避免使用无
效的语句,以及语句的冗余和过程的繁琐。

只有编写合理、简洁和有效的SQL语句,才能提升数据库的运行效率和稳定性。

4. 数据库的安全维护和管理。

在进行数据库的维护和管理过程中,应该注意保护数据的机密性和完整性,以及及时备份数据,避免数据丢失和系统崩溃。

此外,还应该注意数据的存储空间和性能问题,合理规划数据的存储和读取,以及时做出相应的调整和优化。

总体而言,本次数据库实验让我加深了对数据库的理解和认识,并提高了数据库设计和管理的技能。

在以后的实践工作中,我
将会更加规范和谨慎地进行数据库的建立和维护,以确保系统的高效性和可靠性。

数据库实验报告

数据库实验报告

一、实验目的:1、根据给定的题目,把现实世界中的具体事物抽象为某一概念级的模型,即建立整个问题的概念模型,建立起数据库设计人员与用户之间的交流,为数据模型的建立奠定基础。

2、学会认识和分析现实世界,根据对用户需求,描述用户的数据要求:(1)、练习如何从中抽取实体;(2)、练习如何建立各实体之间的联系;(3)、从各实体和实体间的联系,抽取出数据处理的过程。

二、实验内容及要求1、问题描述:某大学需要使用计算机管理学生信息、成绩信息等,要求如下:(1)、学生信息管理,包含学生的基本信息,如学号、姓名、性别、出生日期等;还要包含学生的简历、社会关系等;(2)、课程管理,包含整个学校开设的所有课程;(3)、教学计划管理,包含设定各系各专业在哪学期开设什么样的课程,学分是多少;(4)、学生选课管理,包含学生在某学期选择什么样的课程;(5)、学生成绩管理,包含学生各课程的成绩、是否补考、补考成绩;(6)、学生奖惩管理,管理学生在校期间所获得的奖励和惩罚记录。

2、根据以上要求,为该大学的计算机管理系统建立数据库的概念模型三、实验设备及软件本次试验采用Power-designor6.0作为数据库的设计工具,VC++。

四、设计方案(1)、题目:概念模型的建立(2)、设计的主要思路我们知道概念模型是对信息世界建模,通常我们采用E—R图来描述现实世界的概念模型。

E—R图提供了表示实体型、属性和联系的方法。

在数据库概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。

然后再把概念模式转换成逻辑模式。

将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS 的限制。

建立E—R模型:实体和属性的定义:学生信息管理系统中主要有以下的15个实体,用实体(属性)表示为:学生(学号(主码)、学生姓名、学生性别、学生出生日期);专业(专业代码(主码)、专业名称);成绩(成绩);课程(课程代码(主码),课程名称,学分);学院(学院编码(主码),学院名称);学校(学校代码(主码),学校名称);教师(教师号(主码),教师姓名,教师性别);政治面貌(政治面貌代号(主码),政治面貌名称);缴费情况(序号(主码),缴费内容);籍贯(籍贯代码(主码),籍贯名称);国籍(国家代码(主码)、国家名称);民族(民族代码(主码)、民族名称);简历(简历序号,起始日期,截止日期,简历内容);社会关系(关系序号,关系姓名,关系性别,关系工作单位,关系联系电话);与本人关系(与本人关系代码(主码),与本人关系);E-R模型的“联系”用于刻画实体之间的关联。

数据库系统实验报告广东工业大学

数据库系统实验报告广东工业大学

数据库系统实验报告学院计算机学院专业计算机科学与技术班级级班学号姓名指导教师(2016 年12 月)实验__一__题目数据库及基本表的建立实验__二__题目查询数据库_实验__三__题目创建和使用视图、索引、存储过程实验__四_题目小型数据库规划设计实验平台:SQL Sever 2005实验题目实验一 数据库及基本表的建立一、实验目的1、掌握SQL SERVER 的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作; 二、实验内容和要求1、分别使用SQL 语句、企业管理器(Enterprise Manager )创建数据库;2、使用SQL 语句、企业管理器(Enterprise Manager )创建数据库表; 三、实验主要仪器设备和材料1.计算机及操作系统:PC 机,Windows 2000/xp ; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试创建一个教学管理数据库SC ,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。

创建:student 表(学生信息表)、course 表(课程信息表)、teacher 表(教师信息表)、student _course 表(学生选课成绩表)、teacher_course 表(教师上课课表)等。

1、创建数据库:确定数据库名称;数据库用于学生管理,命名为SC确定数据库的位置;要求:数据文件和日志文件分别存储在E 盘自己的目录下。

确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB ,日志文件的初始大小为3MB 。

确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB 增长。

(1)、利用查询分析器(Query Analyzer ),使用SQL 语句指定参数创建数据库; 利用查询分析器,使用SQL 语句方式创建方式将下面各表建立到教学管理数据库中。

广东工业大学广东数据库原理实验报告

广东工业大学广东数据库原理实验报告

数据库原理实验报告学院计算机专业_____计算机科学与技术班级_____ _7班学号3110006131姓名陈日燊指导教师明俊峰(2012年11月)计算机学院计科专业07 班学号:3110006131姓名:陈日燊协作者:________ 教师评定:实验__一__题目__ 数据库及基本表的建立实验__二__题目__ 设计数据完整性_ _实验_ 三__题目__ 查询数据库_实验_ 四_题目__创建和使用视图、索引、存储过程实验平台:实验一数据库及基本表的建立一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库;2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。

创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。

题目1、创建数据库:实现代码及截图:题目2、创建基本表创建各表的实现代码及截图:(1)创建student表题目3、查看各数据表之间的关系,生成数据库关系图。

classCoursedepartmentspecialitystudentstudent_courseteacherteacher_coursecno题目4、利用查询分析器修改上述各表。

(1)、用INSERT语句向各个表中插入数据录入5 条记录。

数据库实验报告范本

数据库实验报告范本

数据库实验报告范本一、实验目的本次数据库实验的主要目的是深入了解数据库的基本操作和管理,掌握数据的存储、查询、更新和删除等功能,提高对数据库的实际应用能力和问题解决能力。

二、实验环境1、操作系统:Windows 102、数据库管理系统:MySQL 803、开发工具:Navicat Premium 12三、实验内容及步骤(一)数据库的创建1、打开 Navicat Premium 12 工具,连接到本地 MySQL 服务器。

2、在连接成功后,右键点击“连接”,选择“新建数据库”。

3、在弹出的“新建数据库”对话框中,输入数据库名称(例如:student_management),选择字符集和排序规则,点击“确定”按钮创建数据库。

(二)表的创建1、展开新建的数据库,右键点击“表”,选择“新建表”。

2、在“表设计器”中,依次添加表的字段,包括字段名、数据类型、长度、是否允许为空等属性。

以学生表(students)为例,字段包括:student_id(INT 主键,自增)、student_name(VARCHAR(50))、student_age(INT)、student_gender(VARCHAR(10))。

课程表(courses)字段:course_id(INT 主键,自增)、course_name(VARCHAR(50))、course_credit(INT)。

成绩表(scores)字段:score_id(INT 主键,自增)、student_id (INT 外键,关联 students 表的 student_id)、course_id(INT 外键,关联 courses 表的 course_id)、score(FLOAT)。

3、设置完字段属性后,点击“保存”按钮,输入表名(如 students、courses、scores)创建表。

(三)数据的插入1、打开创建好的表,点击“插入”按钮。

2、在弹出的“插入行”对话框中,按照字段顺序输入相应的数据。

数据库实训报告实验总结

数据库实训报告实验总结

一、实验背景随着信息化时代的到来,数据库技术已成为当今社会的重要技术之一。

为了提高我国高校学生的实践能力,培养适应社会发展需求的数据库技术人才,我校组织了数据库实训课程。

通过本次实训,使学生们能够掌握数据库的基本原理、设计方法和应用技术,提高解决实际问题的能力。

二、实验目的1. 理解数据库的基本概念和原理;2. 掌握数据库的设计方法和步骤;3. 学会使用数据库管理系统进行数据库的创建、修改和查询;4. 培养学生分析问题、解决问题的能力;5. 提高学生的团队合作意识和沟通能力。

三、实验内容本次数据库实训主要包括以下内容:1. 数据库基本概念:数据库、数据库系统、数据库管理系统等;2. 关系数据库:关系模型、关系代数、关系运算等;3. SQL语言:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等;4. 数据库设计:需求分析、概念结构设计、逻辑结构设计、物理结构设计等;5. 数据库实现:使用数据库管理系统进行数据库的创建、修改和查询;6. 数据库应用:使用数据库技术解决实际问题。

四、实验过程1. 需求分析:根据实训要求,分析数据库所需解决的问题,确定数据库的功能和性能指标;2. 概念结构设计:根据需求分析,设计数据库的概念结构,包括实体、属性和实体间的关系;3. 逻辑结构设计:将概念结构转换为逻辑结构,包括确定表结构、字段类型、约束条件等;4. 物理结构设计:根据逻辑结构设计,确定数据库的物理存储方式,包括数据文件、索引文件等;5. 数据库创建:使用数据库管理系统创建数据库,包括创建表、索引、视图等;6. 数据操作:使用SQL语言进行数据插入、删除、更新和查询等操作;7. 数据库应用:使用数据库技术解决实际问题,如数据备份、恢复、安全等。

五、实验总结1. 理论与实践相结合:本次实训使我深刻认识到,数据库技术不仅包括理论知识,还需要将理论应用于实践,解决实际问题;2. 数据库设计的重要性:数据库设计是数据库应用的基础,一个良好的数据库设计可以提高数据库的性能和可用性;3. SQL语言的应用:SQL语言是数据库操作的核心,熟练掌握SQL语言可以提高数据库操作效率;4. 团队合作与沟通:在实训过程中,与团队成员密切配合,共同完成任务,提高了我的团队合作意识和沟通能力;5. 实验心得:通过本次实训,我对数据库技术有了更深入的了解,掌握了数据库的基本原理、设计方法和应用技术,为今后的学习和工作打下了坚实的基础。

广东海洋大学数据库实验报告

广东海洋大学数据库实验报告

实验四数据的完整性、安全性一、实验目的1.掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。

2.掌握SQL Server中有关用户、角色及操作权限的管理方法.3.学会创建和使用规则、缺省。

二、实验内容1 数据库的安全性实验,通过SSMS设置SQL Server的安全认证模式.实现对SQL Server 的用户和角色管理,设置和管理数据操作权限.2数据库的完整性实验。

使用Transact-SQL设计规则、缺省、约束和触发器。

三、实验要求1.数据的完整性实验⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):学生情况表(XSQK)列名数据类型长度是否允许为空值学号Char 6 N姓名Char 8 N性别Bit 1 N出生日期smalldatetime 2专业名Char 10所在系Char 10联系电话char 11 Y课程表(KC)列名数据类型长度是否允许为空值课程号Char 3 N课程名Char 20 N教师Char 10开课学期Tinyint 1学时Tinyint 1学分Tinyint 1 N成绩表(XS_KC)列名数据类型长度是否允许为空值学号Char 6 N课程号成绩CharSmallint32N⑵数据的实体完整性实验①用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健⑶数据的参照完整性实验①用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号②用T-SQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号⑷数据的用户定义完整性实验①用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束②用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间④用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为22.将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:学生情况表(XSQK):课程表(KC):学号姓名性别出生日期专业所在系联系电话020101 杨颖0 1980-7-20 计算机应用计算机88297147020102 方露露0 1981-1-15 计算机应用计算机88297147020103 俞奇军 1 1980-2-20 信息管理计算机88297151020104 胡国强 1 1980-11-7 信息管理计算机88297151020105 薛冰 1 1980-7-29 水利工程水利系88297152020201 秦盈飞0 1981-3-10 电子商务经济系88297161020202 董含静0 1980-9-25 电子商务经济系88297062020203 陈伟 1 1980-8-7 电子商务经济系88297171020204 陈新江 1 1980-7-20 房建水利系88297171课程号课程名教师开课学期学时学分101 计算机原理陈红 2 45 3102 计算方法王颐 3 45 3103 操作系统徐格 2 60 4104 数据库原理及应用应对刚 3 75 5105 网络基础吴江江 4 45 3106 高等数学孙中文 1 90 6107 英语陈刚 1 90 6108 VB程序设计赵红韦 3 70 5成绩表(XS_KC):3. 理解默认值的概念和作用①用语句创建名为Xi_default,值为“计算机系”的默认值②将默认值Xi_default绑定到学生表中的所在系的属性列上学号课程号成绩020101 101 85020101 102 87020101 107 88020102 101 58020102 102 63020104 107 76020202 103 55020202 108 80020203 103 57020204 103 71③解除学生表所在系的属性列上的默认值④删除默认值Xi_default注:创建默认值的格式:create default 默认值名as ‘默认值’默认值绑定的格式:sp_bindefault 默认值名, <’表名.列名’︱自定义数据类型名称>解除默认值绑定格式:sp_unbindefault <’表名.列名’︱自定义数据类型名称>删除默认值格式:Drop default 默认值名4.理解规则的概念和作用①用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6②将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,'C语言','李方',8,64,4)不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范围内③若不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_kkxq注:创建规则的格式:create rule 规则名as @列名约束条件规则绑定的格式:sp_bindrule 规则名, <’表名.列名’︱自定义数据类型名称>解除规则绑定格式:sp_unbindrule <’表名.列名’︱自定义数据类型名称>删除规则格式:Drop rule 规则名5.数据的安全性实验:(1)设置身份验证模式①写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。

2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。

3,并且这次实习可以非常好的关心我完成将来的毕业论文。

四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。

然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。

同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。

使我们队公司有了更进一步的了解实习,就是在实践中学习。

经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。

当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。

还有发布了一些关于公司产品的博客,比如新浪,网易。

而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。

经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。

数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。

实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。

虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程实验课程名称数据库课程实验题目名称数据库SQL语言的应用学生学院计算机学院专业班级计科5班学号3111005909学生姓名周鸿圳指导教师郝彦军2014年1 月数据定义测试(1)数据库的创建及基本表的定义,删除与修改为用户3111005909创建模式S_T错误原因:Mysql不支持创建模式,创建的数据库就相当于模式。

同理,既然没有创建,就没有删除,也没有模式的级联和限制创建数据库student_course:使用数据库student_course并且创建‘学生’表student:创建‘课程’表course:创建‘学生选课’表SC查询三个表的结构:student表的结构course表的结构SC表的结构修改表student,向其添加‘入学时间’,类型为时间类型修改student表中的Sage属性为int为course表添加唯一值的约束条件:(2)索引的建立与删除分别为student,course和SC表建立索引删除表student的索引删除student表中的S_entrance原因:下一步的插入数据没有S_entrance这一项,所以在这里把它删了,不然在用insert 表名时会因为列数据不对应而报错,如图:向student表中插入数据:向course表中插入数据:向SC表中插入数据数据查询测试(1)单表查询查询全体学生的姓名和学号查询全体学生姓名及其出生年份,用小写字母表示系别查询全体计算机系的学生查询年龄在20岁以下的全体学生姓名及其年龄查询成绩在85分以下的学生学号查询年龄不在20到23岁之间的学生系别,姓名和年龄查询计算机系,数学系和信息系的学生姓名和性别查询学号为’200215121’的学生的具体情况查询所有姓李的同学的学号和性别查询学生中姓名第二个字为‘阳’字的学生姓名和学号,性别查询计算机系下年龄在20岁以下的学生姓名查询迅修了3号课程的学生的学号及其成绩,降序排序查询全体学生情况,结果按所在系的序号排列,同系学生按年龄降序排序查询学生的总人数计算1号课程的学生的平均成绩查询选修1号课程的学生的最高成绩查询学号为‘200215122’的学生的全部选修成绩的总分数求各个课程号及相应的选课人数查询选修了三门学科以上的学生学号(2)连接的查询查询每个学生及其选修的情况查询选修2号课程并且成绩在90分以上的所有学生查询每个学生的学号,姓名,选修的课程名及其成绩(3)嵌套查询查询与李晨同一个系的学生查询每门选修的间接先修课查询选修了课程名为信息系统的学生姓名和学号查询其他系中比计算机系某一学生年龄小的学生姓名和年龄查询选修了1号课程的学生姓名查询没有选修1号课程的学生姓名(4)集合查询查询计算机科学系的学生及年龄不大于19岁的学生查询计算机系的学生与年龄不大于19岁的学生的交集原因:Mysql不支持intersect,为了查询表的交集,给出以下查询方法查询计算机系学生与年龄不大于19岁的学生的交集原因:Mysql不支持except,解决方法可为数据更新测试(1)插入数据插入一个新生元祖插入张民的学生信息插入一条选课记录对每个系求学生的平均年龄,将结果存入数据库(2)修改数据将学生200215121的年龄改为22岁将所有的学生年龄加一岁将计算机科学系全体学生的成绩设置为0(3)删除数据删除学号为200215128的元组视图(1)定义视图建立信息系的学生视图定义一个反映学生出生年份的视图(2)删除视图删除视图BT_S(3)更新视图更新视图IS_Student插入一个新的学生记录删除视图中的记录实验总结书上所说的SQL语句和实际操作的mysql语句还是有一定差别的。

例如MySql中没有交操作intersect,差操作except。

此外在实验过程中还遇到了如语法错误,外键问题,表重定义问题。

数据库安全性控制授权与回收首先建立u1-u7的用户把查询student表的权限授给用户u1错误原因:不能在用户表中找到u1这个用户。

在Mysql中用户名必须为创建时的全名,解决方法如下:将student,course 表的全部操作权限授予用户u2,U3错误原因:Mysql不支持同时将两张表的权限授予用户,解决方法如下:把对Sc表的查询权限授予所有用户错误原因:public 不是用户表里面的用户,也就是说Mysql没有用户组的概念,不能用public 来代替所有的用户,解决方法暂为一个个授权。

把查询student表和修改学生学号的权限授予用户u4把对表SC的insert权限授予u5,并允许将此权限再授予其他用户将u5的权限授予u6权限收回将u4修改学生学号的权限收回把用户u5对Sc表的insert 权限收回错误原因:mysql不支持cascade,所以这里报错;角色的创建创建角色R1错误原因:Mysql不支持角色的创建,所以这里与角色有关的操作都无法进行视图机制建立计算机系学生的视图,把该视图的select权限授予u7,再将权限授予u6审计对SC表结构或修改SC表数据的操作进行审计错误原因:mysql服务器自身没有提供审计功能数据库完整性因为在之前就定义了数据库表student,course,sc,这时为SC表中定义的参照完整性为:修改表SC并显式说明参照完整性的违约处理执行结果如下:用户定义的完整性:列值唯一unique,建立部门表DEPT,要求部门名称列值唯一,部门编号Deptno为主码用check短语指定列值应该满足的条件Student 表的Ssex 只允许取‘男’或者‘女’Student.txt内容如下执行结果:错误原因:在之前建立SC表的时候,SC表的外键Sno与student表的主键约束,所以此时无法删除student表,此时可以先删除SC表,再删除student表。

重新建立SC表执行结果如下:元组上的约束条件的定义当学生的性别是男的时候,其名字不能以MS.开头修改student表,如下图所示:执行结果如图:建立学生登记表Student,要求学号在90000~99999之间,姓名不能取空值,年龄小于30,性别只能是‘男’或‘女’修改student.txt,结果如图:执行结果:错误原因:少了逗号将constraint与属性隔开根据错误原因将student.txt进行简单修改,执行结果如下错误原因:Sname char(20),constraint c2 not null 这句报错,说明constraint 的列级约束键后不能为空,否则将产生错误最终修改后的student.txt 如下:执行结果如下:查看表student :建立教师表TEACHER,要求每个教师的应发工资不低于3000元。

教师表teacher.txt 如下:执行结果如下:修改表中的完整性约束:去掉表student的性别约束:执行结果如下:错误原因:在mysql中,没有删除constraint的语句,所以在读到constraint时就会报错域中完整性约束:建立一个性别域,并声明性别域的取值范围错误原因:mysql不支持domain语句触发器定义触发器定义一个before行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于4000,如果低于4000,自动更改为4000元”Before.txt如下:执行结果如下:错误原因:Mysql不支持同时触发insert 或者update的条件。

此外,mysql的触发器需要定义在DELIMITER中.mysql也不支持AS BEGIN这种写法;此外,给新的字段赋值的时候,也需要用到SET这个关键字。

做出以上修改之后便可定义正确的触发器。

执行结果如下:定义一个AFTER行级触发器,当教师表teacher的工资发生变化后就自动在工资变化表Sal_log中增加一条相应记录。

AFTER.TXT如下:执行结果如下:错误原因:mysql的trigger是仅仅statement激活,不能对同一table的同一个event写两个trigger, 所以我们在之前已经定义了触发器INSERT_OR_UPDATE_SAL,此时再定义就会出现错误。

删除触发器删除Teacher表的触发器INSERT_OR_UPDATE_SAL执行结果:错误原因:删除时不需要加上表的名称解决方法如下:心得体会:这次的实验2走了很多的弯路,首先在实验课上被告知mysql是不支持的check约束的,所以在实验开始时就觉得寸步难行,既然不支持check约束,那么后面的很多实验都将无法进行。

后来通过学习,mysql是支持check约束的,所以在接下来的实验虽然也遇到了一些小麻烦,但是总算顺利完成了。

此外,mysql的触发器也是比较困难的一部分,书上的例子根本无法再mysql上顺利运行,通过学习后才知道mysql的触发器需要放在关键字DELIMITER 里面,且还有好多约束。

通过学习并且运行mysql网站上的API上的例子,终于明白触发器的使用。

后来也终于顺利完成了报告。

相关文档
最新文档