计算机软件基础 (10).ppt
软件技术基础软件技术基础第第1313讲数据库设计基础和讲数据库设计基础和SQLSQL语言语言计算机教学实验中心计算机教学实验中心第第2页页下一页上一页停止放映停止放映第4章作业作业:1.第4章的68、17。2.OS存储管理的对象与任务是什么?n常用的主存管理方法有哪几种?各自的特点是什么?nOS设备管理包括哪些基本任务?思考题:1、第4章的13,1214。2.什么是实存储管理和虚存储管理?n主处理机与设备的信息交换有哪几种基本方法,各有何特点?n什么是设备分配和驱动?2002年10月31日星期四第第3页页下一页上一页停止放映停止放映上讲内容提示(1):n一、关系模型的数学定义和关系代数n1.关系模型的数学定义:n 域、元组、笛卡尔乘积、关系、属性、关系模式、关系模型、关系数据库、完整性约束(实体、参照、用户定义)2002年10月31日星期四第第4页页下一页上一页停止放映停止放映上讲内容提示(2):n2.数据库管理系统中的关系模型 关系的特点(表的特点)、数据库记录、字段、类型、值域 候选关键字、主关键字、外码,数据类型能体现数据结构的哪些特点(逻辑关系、存储方式、运算能力),字段类型2002年10月31日星期四第第5页页下一页上一页停止放映停止放映上讲内容提示(3):n3.关系代数n与、或、非、并、交、补、属于、不属于、n包含、真包含n同类关系运算(并、交、差、选择、投影、联结、自然联结)n4.数据库中的关系运算2002年10月31日星期四第第6页页下一页上一页停止放映停止放映上讲内容提示(4):n二、关系的规范化理论:n不好的数据库结构有操作异常(冗余、插入、删除、更新)n数据依赖:函数依赖、完全函数、传递函数依赖n范式n1NF、2NF、3NF2002年10月31日星期四第第7页页下一页上一页停止放映停止放映一、数据库设计基础一、数据库设计基础2002年10月31日星期四第第8页页下一页上一页停止放映停止放映1.需求分析主要结果是主要结果是系统分析说明书系统分析说明书、数据流程图、数据字典、数据流程图、数据字典2002年10月31日星期四第第9页页下一页上一页停止放映停止放映数据流程图示例2002年10月31日星期四第第10页页下一页上一页停止放映停止放映数据字典举例2002年10月31日星期四第第11页页下一页上一页停止放映停止放映数据字典举例2002年10月31日星期四第第12页页下一页上一页停止放映停止放映2。概念设计n概念设计的结果是E-R图,概念设计独立于数据库逻辑结构,独立于具体的数据库管理系统。n根据需求分析得到的结果,画出各个部分的局部E-R图,表达出有哪些实体、实体间的联系以及实体的属性。然后将各个局部E-R图合并在一起得到系统的全局E-R图。2002年10月31日星期四第第13页页下一页上一页停止放映停止放映概念设计(2)n合并数据流图时注意消除E-R图中的冲突:n(1)属性冲突(整、实、字符)n(2)命名冲突(名字不同)n(3)结构冲突(对象、属性、)2002年10月31日星期四第第14页页下一页上一页停止放映停止放映概念设计E-R图示例2002年10月31日星期四第第15页页下一页上一页停止放映停止放映3.逻辑设计2002年10月31日星期四第第16页页下一页上一页停止放映停止放映逻辑结构设计步骤图示2002年10月31日星期四第第17页页下一页上一页停止放映停止放映(1)E-R图向数据模型的转换2002年10月31日星期四第第18页页下一页上一页停止放映停止放映(2)数据模型的优化(3)定义用户子模式2002年10月31日星期四第第19页页下一页上一页停止放映停止放映4.物理设计2002年10月31日星期四第第20页页下一页上一页停止放映停止放映5.数据库实施2002年10月31日星期四第第21页页下一页上一页停止放映停止放映6.数据库的运行和维护2002年10月31日星期四第第22页页下一页上一页停止放映停止放映数据库的安全性和完整性数据库的安全性和完整性n安全性:安全性:数据和其他信息不能被有意或无意地破坏,数据和其他信息不能被有意或无意地破坏,不能被未经授权的人员读取和修改。不能被未经授权的人员读取和修改。n(1)用户身份标识和鉴别)用户身份标识和鉴别n(2)存取权限控制策略)存取权限控制策略n(3)加密技术的使用)加密技术的使用n完整性:完整性:指数据的正确性和相容性,即合法拥护对数指数据的正确性和相容性,即合法拥护对数据的增删改必须符合一定的语义。据的增删改必须符合一定的语义。n基于列的完整性:如列的取值范围等基于列的完整性:如列的取值范围等n基于行的完整性:一行中各列之间的约束基于行的完整性:一行中各列之间的约束n基于关系的完整性:实体、参照和用户定义完整性基于关系的完整性:实体、参照和用户定义完整性n触发器:触发器:2002年10月31日星期四第第23页页下一页上一页停止放映停止放映7.数据库设计的基本步骤数据库设计的基本步骤(大作业中库设计的基本要求大作业中库设计的基本要求)n分析建立数据库的目的分析建立数据库的目的n确定数据库中的表确定数据库中的表n确定表中的字段确定表中的字段n确定主关键字确定主关键字n确定表之间的关系确定表之间的关系n优化设计优化设计(规范化规范化)n输入数据并新建其他输入数据并新建其他DB对象对象2002年10月31日星期四第第24页页下一页上一页停止放映停止放映分析建立数据库的目的分析建立数据库的目的n首先考虑首先考虑“为什么要建立为什么要建立DB及建立及建立DB要完成的任务要完成的任务”。n这是这是DB设计的第一步,也是设计的第一步,也是DB设计的设计的基础。基础。n与与DB的最终用户进行交流,了解现行工的最终用户进行交流,了解现行工作的处理过程,讨论应保存及怎样保存作的处理过程,讨论应保存及怎样保存要处理的数据。要处理的数据。n要尽量收集与当前处理有关的各种数据要尽量收集与当前处理有关的各种数据表格。表格。2002年10月31日星期四第第25页页下一页上一页停止放映停止放映例案分析例案分析n建立数据库的目的:建立数据库的目的:例如例如,实现实现“教学管理教学管理”数据库应用。数据库应用。n功能要求:功能要求:n实现实现“教师、学生、课程、学习成绩教师、学生、课程、学习成绩”四个方面的综合管理四个方面的综合管理n教师可以查看学生的教师可以查看学生的简况、成绩、课程简况、成绩、课程n学生可以选择学生可以选择教师、课程教师、课程和和查看成绩查看成绩2002年10月31日星期四第第26页页下一页上一页停止放映停止放映确定数据库中的表n从确定的从确定的DB所要解决的问题和收集的各种表格中,不一所要解决的问题和收集的各种表格中,不一定能够找出生成这些表格结构的线索。定能够找出生成这些表格结构的线索。n因此,不要急于建立表,而因此,不要急于建立表,而应先在纸上进行设计应先在纸上进行设计。为了。为了能更合理地确定出能更合理地确定出DB中应包含的表,应按下列原则对信中应包含的表,应按下列原则对信息进行分类:息进行分类:(设计原则):(设计原则):n表中不应包含重复信息,并且信息不应在表之间复制;表中不应包含重复信息,并且信息不应在表之间复制;n 若每条信息只保存在一个表中,只需在一处进行更新,这样效若每条信息只保存在一个表中,只需在一处进行更新,这样效率高,同时也消除了包含不同信息的重复项的可能性;率高,同时也消除了包含不同信息的重复项的可能性;n每个表应该只包含关于一个主题的信息每个表应该只包含关于一个主题的信息 可以独立于其他主题来维护每个主题的信息。例如,将教师和学可以独立于其他主题来维护每个主题的信息。例如,将教师和学生的信息分开,这样当删除一个学生信息是不会影响教师信息生的信息分开,这样当删除一个学生信息是不会影响教师信息。2002年10月31日星期四第第27页页下一页上一页停止放映停止放映分析要建立哪些数据表n为使为使DB的信息满足规范化要求,信息应按的信息满足规范化要求,信息应按不同主题分开,单独建表。这样应建立不同主题分开,单独建表。这样应建立“教师、学生、课程和成绩教师、学生、课程和成绩”四个表。四个表。n建立下列数据表:建立下列数据表:n学生简况表学生简况表n教师授课表教师授课表n课程名称表课程名称表n学生成绩表学生成绩表2002年10月31日星期四第第28页页下一页上一页停止放映停止放映确定表中的字段n表确定后,就要确定表应该包含哪些字表确定后,就要确定表应该包含哪些字段。在确定所需字段时,要注意段。在确定所需字段时,要注意每个字每个字段包含的内容应该与表的主题相关,而段包含的内容应该与表的主题相关,而且应包含相关主题所需的全部信息且应包含相关主题所需的全部信息。n还要注意还要注意不要包含需要推导或计算的数不要包含需要推导或计算的数据据,一定要以最小逻辑部分作为字段来,一定要以最小逻辑部分作为字段来保存信息。保存信息。2002年10月31日星期四第第29页页下一页上一页停止放映停止放映教师授课表n分析:分析:n基本特征信息应包括:基本特征信息应包括:姓名、性别、职称、学历、专业特长姓名、性别、职称、学历、专业特长n其它特征信息:其它特征信息:工作时间、政治面貌、联系电话、课程编号、所属院系工作时间、政治面貌、联系电话、课程编号、所属院系n综合分析:综合分析:n为满足管理目标基本要求,选取下列字段:为满足管理目标基本要求,选取下列字段:教师序号、姓名、性别、职称、课程编号、电话教师序号、姓名、性别、职称、课程编号、电话2002年10月31日星期四第第30页页下一页上一页停止放映停止放映学生简况表n分析:分析:n基本特征信息应包括:基本特征信息应包括:学号、姓名、性别、班级、出生日期学号、姓名、性别、班级、出生日期n其它特征信息:其它特征信息:籍贯、政治面貌、宿舍、所属专业、特长籍贯、政治面貌、宿舍、所属专业、特长n综合分析:综合分析:n为满足管理目标基本要求,选取下列字段:为满足管理目标基本要求,选取下列字段:学号、姓名、性别、班级、出生日期、简历学号、姓名、性别、班级、出生日期、简历2002年10月31日星期四第第31页页下一页上一页停止放映停止放映课程名称表n分析:分析:n基本特征信息应包括:基本特征信息应包括:课程编号、教师序号、课程名称课程编号、教师序号、课程名称n其它特征信息:其它特征信息:学分、课时、课程先决条件、课时学分、课时、课程先决条件、课时n综合分析:综合分析:n为满足管理目标基本要求,选取下列字段:为满足管理目标基本要求,选取下列字段:课程编号、课程名称、课时课程编号、课程名称、课时2002年10月31日星期四第第32页页下一页上一页停止放映停止放映学生成绩表n分析:分析:n基本特征信息应包括:基本特征信息应包括:学号、课程编号、成绩学号、课程编号、成绩n其它特征信息:其它特征信息:学分、教师序号、课程名称学分、教师序号、课程名称n综合分析:综合分析:n为满足管理目标基本要求,选取下列字段:为满足管理目标基本要求,选取下列字段:学号、课程编号、成绩学号、课程编号、成绩2002年10月31日星期四第第33页页下一页上一页停止放映停止放映确定主关键字n为保证在不同表中的为保证在不同表中的信息信息发生发生联系联系,每个,每个表都有一个能够表都有一个能够唯一确定唯一确定每条每条记录记录的字段的字段或字段组,该字段或字段组被称为主关键或字段组,该字段或字段组被称为主关键字。字。n如果表中没有可作为主关键字的字段如果表中没有可作为主关键字的字段,可,可在表中增加一个字段,该字段的值为序列在表中增加一个字段,该字段的值为序列号,以此来标识不同记录。号,以此来标识不同记录。(自动编号)(自动编号)2002年10月31日星期四第第34页页下一页上一页停止放映停止放映例案中数据表的主关键字n根据上述确定表的字段分析:根据上述确定表的字段分析:n学生简况表学生简况表的主关键字为的主关键字为 “SNO”n教师授课表教师授课表的主关键字为的主关键字为 “TID”“TID”是人为加入的主关键字是人为加入的主关键字?n课程名称表课程名称表的主关键字为的主关键字为 “CNO”n学生成绩表学生成绩表的主关键字为的主关键字为 “SNO”和和“CNO”2002年10月31日星期四第第35页页下一页上一页停止放映停止放映确定表之间的关系n在确定在确定了了DB的表、表中的字段以及主关键字的表、表中的字段以及主关键字之后,还需要确定表之间的关系。之后,还需要确定表之间的关系。n在在DB中,可以存在一个以上的表,且表与表中,可以存在一个以上的表,且表与表之间存在着一定的关系。只有分析并建立起表之间存在着一定的关系。只有分析并建立起表之间的关系,才能将表中的相关信息联系在一之间的关系,才能将表中的相关信息联系在一起。起。n注:用工具栏中注:用工具栏中“关系关系”和和“显示表显示表”按钮实按钮实现关系的确定。现关系的确定。实际上是:建立联结关系实际上是:建立联结关系2002年10月31日星期四第第36页页下一页上一页停止放映停止放映优化设计n在设计完所需要的表、字段和关系之在设计完所需要的表、字段和关系之后,用户还应该检查一下所做的设计,后,用户还应该检查一下所做的设计,找出设计中的不足加以改进。找出设计中的不足加以改进。n实际上,现在改变实际上,现在改变DB设计中的不足比设计中的不足比表中填满了数据以后再修改要容易得表中填满了数据以后再修改要容易得多。多。2002年10月31日星期四第第37页页下一页上一页停止放映停止放映优化设计案例分析从以上设计中不难看出,教师库存在数据冗余。如果某教师讲授课程多于一门,他的相关信息就要重复多次(存在部分依赖),这是在表设计中要尽量避免的。做如下分解:做如下分解:将课程信息分离出来,形成将课程信息分离出来,形成“教师课程表教师课程表”,为了形成联系,为了形成联系,在该表中增加在该表中增加“课程编号课程编号”字段。字段。教教师师序序号号教教师师姓姓名名教教师师性性别别课课程程编编号号职职称称电电话话号号码码教教师师序序号号教教师师姓姓名名教教师师性性别别电电话话号号码码职职称称课课程程编编号号教教师师序序号号教师授课表教师授课表教师简况表教师简况表教师授课表教师授课表2002年10月31日星期四第第38页页下一页上一页停止放映停止放映优化后的数据表间的联系学生情况表学生情况表教师简况表教师简况表课程名称表课程名称表学生成绩表学生成绩表CNO返回SNOCNO教师授课表教师授课表TID2002年10月31日星期四第第39页页下一页上一页停止放映停止放映优化后的数据表n最后得到的数据表共最后得到的数据表共5个:个:n教师简况表教师简况表 教师序号、姓名、性别、职称、电话教师序号、姓名、性别、职称、电话n学生简况表学生简况表 学号、姓名、性别、班级、出生日期、简历学号、姓名、性别、班级、出生日期、简历n课程名称表课程名称表 课程编号、课程名称、课时课程编号、课程名称、课时n学生成绩表学生成绩表 学号、课程编号、分数学号、课程编号、分数n教师授课表教师授课表 课程编号、教师序号课程编号、教师序号2002年10月31日星期四第第40页页下一页上一页停止放映停止放映数据表结构设计(创建前的表设计1)n数据表共数据表共5个:个:n教师简况表教师简况表n中文名称中文名称 字段名字段名 类型类型 长度长度 规则规则 定义定义 备注备注n教师序号教师序号 TNO C 7 关键字(主键)关键字(主键)n姓名、姓名、TNAME C 8n性别、性别、TSEX C 2n职称、职称、TTITLE C 8 建立查询字段建立查询字段n电话电话 TTEL C 7n学生简况表学生简况表n学号、学号、SNO C 8 关键字(主键)关键字(主键)n姓名、姓名、SNAME C 8n性别、性别、SSEX C 2 建立查询字段建立查询字段n班级、班级、SCLASS C 10n出生日期、出生日期、SBIRTHDAY D 1n简历简历 SRESUME M 2002年10月31日星期四第第41页页下一页上一页停止放映停止放映数据表结构设计(创建前的表设计2)n课程名称表课程名称表n中文名称中文名称 字段名字段名 类型类型 长度长度 规则规则 定义定义 备注备注n课程编号、课程编号、CNO C 8 关键字(主键)关键字(主键)n课程名称、课程名称、CNAME C 20n课时课时 CTIMES N 3n学生成绩表学生成绩表n学号、学号、SNO C 8n课程编号、课程编号、CNO C 8 建立查询字段建立查询字段n分数分数 SCORE N 3n教师授课表教师授课表n n课程编号、课程编号、CNO C 8 建立查询字段建立查询字段n教师序号教师序号 TNO C 72002年10月31日星期四第第42页页下一页上一页停止放映停止放映二、关系数据库标准语言二、关系数据库标准语言SQLn1。SQL概述概述n(1)发展)发展nSQL语言,语言,1974年有年有Boyce 和和Chamberlin提出提出n1975-1979年年IBM在在System R关系数据库系关系数据库系统原型中实现统原型中实现n1986年年10月月 ANSI标准标准 SQL-86n1989年年 ISO标准标准 SQL-89n1992年年 ISO SQL-92标准标准 2002年10月31日星期四第第43页页下一页上一页停止放映停止放映StructuredQuerylanguage(SQL)nDataDefinationLanguage(DDL)nDataManipulationLanguage(DML)nDataControlLanguage(DCL)2002年10月31日星期四第第44页页下一页上一页停止放映停止放映(2)SQL特点n综合统一综合统一:集数据定义语言(:集数据定义语言(DDL)、)、数据操纵语言(数据操纵语言(DML)和和数据控制语言数据控制语言DCL于一体,综合管理功能于一身。于一体,综合管理功能于一身。n高度非过程化高度非过程化:用户只需提出:用户只需提出“做什么做什么”,而不需指明,而不需指明“怎么做怎么做”。n面向集合的操作方式面向集合的操作方式:用户查询、修改、:用户查询、修改、的数据不是一条记录,而是记录的集合。的数据不是一条记录,而是记录的集合。2002年10月31日星期四第第45页页下一页上一页停止放映停止放映SQL特点(2)n以以同一语法结构提供两种使用方式同一语法结构提供两种使用方式:用户可以:用户可以从键盘使用从键盘使用SQL命令,也可以将命令,也可以将SQL语句嵌入语句嵌入其他高级语言中。其他高级语言中。(PHP VC示例示例)n语言简洁、易于使用语言简洁、易于使用:语句很少,:语句很少,数据定义:数据定义:CTEATE DROP ALTER数据操纵:数据操纵:INSERT UPDATE DELETE数据查询:数据查询:SELECT数据控制:数据控制:GRANT REVOTE可以对基本表和视图进行查询可以对基本表和视图进行查询2002年10月31日星期四第第46页页下一页上一页停止放映停止放映ASP读取Access数据库-连接n2002年10月31日星期四第第47页页下一页上一页停止放映停止放映ASP读取Access数据库-显示nnn编 号:作品名称班 级:学 号姓 名连接地址ninputtype=textname=T1size=20value=nninputtype=textname=T2size=20value=ninputtype=textname=T3size=20value=ninputtype=textname=T4size=20value=ninputtype=textname=T5size=20value=ninputtype=textname=T6size=20value=ninputtype=hidename=T7size=20value=nnn2002年10月31日星期四第第48页页下一页上一页停止放映停止放映ASP读取Access数据库-关闭nnnn2002年10月31日星期四第第49页页下一页上一页停止放映停止放映ASP读取Access数据库-建立表n2002年10月31日星期四第第50页页下一页上一页停止放映停止放映VB读取Aeecss数据库示例nDimstrdbnameAsStringnDimstrrsnameAsStringnDimintrecsAsIntegernDimstrfilterAsStringnmy_str=这是VB读取数据库的示例nstrdbname=d:test1.mdbnstrrsname=select*fromt1whereclass=计算机01orderbyscoreascnSetdb=DBEngine.OpenDatabase(strdbname)ndb.Execute(insertintot1values(计算机01,04003006,管理学,40)2002年10月31日星期四第第51页页下一页上一页停止放映停止放映VB读取Aeecss数据库示例(2)nSetrs=db.OpenRecordset(strrsname,dbOpenDynaset)nstrrsname=select*fromt1wherescore=60orderbyscoredescnSetrs2=db.OpenRecordset(strrsname,dbOpenDynaset)2002年10月31日星期四第第52页页下一页上一页停止放映停止放映2.数据定义nSQL的数据定义语句n操作对象创建删除修改n表CREATETABLEDROPTABLEALTERTABLEn视图CREATEVIEWDROPVIEWn索引CREATEINDEXDROPINDEX2002年10月31日星期四第第53页页下一页上一页停止放映停止放映(1)建立与修改基本表语法:CREATETABLEtbl_name(create_definition,.)table_optionsselect_statement2002年10月31日星期四第第54页页下一页上一页停止放映停止放映SQL举例使用的数据库设计n学生成绩表:scoresn班级class char(8)n学号snochar(8)主键n姓名sname char(10)主键n课程号cnochar(4)外码n分数scoreintn课程管理表:coursesn课程编号cnochar(4)主键n课程名称cname char(10)n学时数chours intn学分creditint2002年10月31日星期四第第55页页下一页上一页停止放映停止放映创建表举例n建立表scores主键(sno,cno)nCREATE TABLE scores(class char(8),snochar(8),snamechar(10),cnochar(4),scoreint,sdatedate,CONSTRAINTscnoPRIMARYKEY(sno,cno)n建立表courses主键(cno)nCREATETABLEcourses(cnochar(4)primary key,cname char(10),chours int,creditint)2002年10月31日星期四第第56页页下一页上一页停止放映停止放映(2)修改基本表nALTERTABLEtable_nameADDnewcoltypeconstraintMODIFY|ALTERcol_nametypeDROPconstraintDROPCOLUMNcol_name2002年10月31日星期四第第57页页下一页上一页停止放映停止放映修改基本表举例(1)n增加两个字段sex,meno1nALTERTABLEscoresaddcolumnsexchar(2),memo1char(20)n修改字段长度:nALTER TABLE scores alter column snamechar(8)n修改字段类型nALTERTABLEscoresaltercolumnsnameint2002年10月31日星期四第第58页页下一页上一页停止放映停止放映修改基本表举例(2)nALTER TABLE scores alter column snamechar(8)NULLnALTER TABLE scores alter column score intNULLnALTERTABLEscoresaltercolumnsdatedateNULLnALTERTABLEscoresaltercolumnsexchar(2)NULLnALTER TABLE scores alter column memo1char(30)NULL2002年10月31日星期四第第59页页下一页上一页停止放映停止放映修改基本表举例(3)n改回原状nALTERTABLEscoresALTERCOLUMNsnamechar(10)n删除字段nALTER TABLE scores DROP COLUMN sex,memo1n增加外码(建立两个表之间的联系联结)nALTER TABLE scoresaddCONSTRAINTforeign_cnoFOREIGNKEY(cno)REFERENCEScourses(cno)2002年10月31日星期四第第60页页下一页上一页停止放映停止放映(3)建立索引nCREATEUNIQUECLUSTERINDEXIndex_nameONtable_name(col1ASC|DESC,)n建立索引举例nCREATEINDEXc_nameoncourses(cnameASC)2002年10月31日星期四第第61页页下一页上一页停止放映停止放映删除基本表与索引nDROPTABLEtable_namenDROPINDEXindex_namen举例n删除表nDROPTABLEcoursesn删除索引nDROPINDEXc_nameONcourses2002年10月31日星期四第第62页页下一页上一页停止放映停止放映3.数据操纵n可以使用INSERT语句在表建好的表中存储数据,其基本格式是:INSERTINTOtable_name(column_list)VALUES(value1,value2,.)n上述格式表示,一次可以插入多个数据字段。2002年10月31日星期四第第63页页下一页上一页停止放映停止放映(1)数据录入n如果要用一个现成表的数据建立一个新表,则可以用下列格式完成:nINSERTINTOtbl_name(col_name,.)SELECT.nINSERT语句里的SELECT子句不能包含ORDERBY子句。如果tbl_name后面没有跟col_name,所有的字段值必须在VALUES()表中或由SELECT提供。任何没有明确给出值的字段都将被置为其默认值2002年10月31日星期四第第64页页下一页上一页停止放映停止放映插入数据举例(1)n向表中插入数据nINSERTINTOcoursesVALUES(1011,软件基础,48,3)nINSERT INTO courses(cno,cname,chours,credit)VALUES(1012,计算机网络,32,2)nINSERT INTO courses(cname,cno,chours,credit)VALUES(数据库原理,1013,64,4)nINSERT INTO courses(cname,cno,chours,credit)VALUES(数据库原理,1014,64,4)2002年10月31日星期四第第65页页下一页上一页停止放映停止放映插入数据举例(2)nINSERTINTOscores(class,sno,sname,cno,score,sdate)VALUES(管工01,00094001,张家口,1012,90,2002-12-12)nINSERTINTOscores(class,sno,sname,cno,score,sdate)VALUES(管工01,00094002,张网页,1012,92,2002-12-12)nINSERTINTOscores(class,sno,sname,cno,score,sdate)VALUES(管工02,00094012,李逵,1012,50,2002-12-12)2002年10月31日星期四第第66页页下一页上一页停止放映停止放映(2)数据更新n更新数据库中现存的数据,需要用到UPDATE语句,其的格式如下:UPDATEtbl_nameSETcol_name1=expr1,col_name2=expr2,.WHEREconditionSET子句指出需要修改的字段并给出正确的值;WHERE子句是可选的,用来选择需要更新的记录。如果没有WHERE子句,则表示表中所有的记录将被全部更新。2002年10月31日星期四第第67页页下一页上一页停止放映停止放映数据更新举例n更新数据nUPDATEcoursesSETcname=数据结构WHEREcno=1014andchours=64nUPDATEcoursesSETchours=48,credit=3WHEREcname=计算机网络2002年10月31日星期四第第68页页下一页上一页停止放映停止放映(3)删除记录nDELETE语句n删除数据库中整个记录或者多个记录。n不能仅仅删除记录中的某一列。n不影响表的结构和属性。n语法如下:DELETEFROMtable_nameWHEREcondition2002年10月31日星期四第第69页页下一页上一页停止放映停止放映n删除标题表中所有的行:DeleteFromscoresn删除数据满足条件的行nDELETEFROMcoursesWHEREcredit=3andcname=“软件基础”nDELETEFROMsampleWHEREid1000;nDELETEFROMsampleWHEREid1000ANDvalue=3nSELECTclass,sno,sname,cname,score,chours,creditFROMscores,coursesn(注意注意,这是笛卡尔乘积这是笛卡尔乘积)2002年10月31日星期四第第73页页下一页上一页停止放映停止放映查询举例(自然联结)(2)nSELECTclass,sno,sname,cname,score,chours,creditFROMscores,o=o(自然联结)n使用JOINnSELECTo,ame,scores.sno,scores.sname,scores.scoreFROMcoursesINNERJOINscoresONo=o2002年10月31日星期四第第74页页下一页上一页停止放映停止放映查询举例(3)nSELECTCount(scores.sno)ASsno之Count,avg(score)AS表达式1FROMscores;2002年10月31日星期四第第75页页下一页上一页停止放映停止放映查询举例(4)nSELECTscores.class,Count(scores.sno)ASsno之Count,Count(scores.sname)ASsname之Count,Avg(scores.score)ASscore之AvgFROMscoresGROUPBYscores.classORDERBYscores.class,Count(scores.sno)DESC;2002年10月31日星期四第第76页页下一页上一页停止放映停止放映查询举例(5)n查找姓张的人的信息nSELECTclass,sno,sname,cname,score,chours,creditFROMscores,o=oandsnamelike“张*”nSELECT*FROM scores WHERE scoreBETWEEN60and1002002年10月31日星期四第第77页页下一页上一页停止放映停止放映除使用LIKE外,还可以使用INBETWEEN等关键字nIn关键字n用来判断一个表达式的值是否等于一组值中的任何一个。n这组值必须用逗号分隔。SelectAuthor_ID,Author_NameFromAuthorWhereAuthor_NameIN(“SamAdams”,“MariaPhillips”)OrderByAuthor_Name2002年10月31日星期四第第78页页下一页上一页停止放映停止放映可以在WHERE子句中使用的关键字关键字关键字含义含义IN判断值是否在所给的范围内NOTIN判断值是否不在所给的范围内LIKE判断值是否与一个给定的值相似NOTLIKE判断值是否与一个给定的值不相似ISNULL判断值是否为空ISNOTNULL判断值是否不为空AND判断是否满足AND两边所给的条件OR判断是否满足OR两边所给的条件中的一个BETWEEN判断值是否在所给的值之间NOTBETWEEN判断值是否不在所给的值之间2002年10月31日星期四第第79页页下一页上一页停止放映停止放映带限制条件的检索nLIKE关键字n检索以某个特殊的字符开始或是满足某个特定的通配符模式的值。通配符通配符匹配内容匹配内容_/?匹配单个字符任何在给定范围内的单个字符任何不在给定范围内的单个字符%任何值(ACCESS中用“*”)2002年10月31日星期四第第80页页下一页上一页停止放映停止放映带限制条件的检索(续)n使用下列语句来检索出第一个名字是三个字母并且以字母S开头的作者的记录。Select*FromAuthorWhereAuthor_NameLIKE“S-“Author_IDAuthor_NamePhone_NoA002SamAdams(61)345-12472002年10月31日星期四第第81页页下一页上一页停止放映停止放映带限制条件的检索(续)n使用下列语句从标题表中检索出标题以字母V开头的书的详细信息:Select*From Title Where Title LIKE“V%“TitleYearPub_IDBook_NoVisualBasic6.0Superbible19843260-0014307-6-S2002年10月31日星期四第第82页页下一页上一页停止放映停止放映带限制条件的检索(续)n使用下列语句从标题表中检索出标题不以字母V开头的书的信息:Select*From Title Where Title LIKE“V%“TitleYearPub_IDBook_NoLearnOracle8.0in25Days19889080-0014313-7-8WorldsGreatestChefsSecretRecipe1990120-0111985-2-67 Keys to LearningVisualFoxPro1989410-0111298-1-6A Beginners GuidetoBasic19924560-1112334-2-32002年10月31日星期四第第83页页下一页上一页停止放映停止放映带限制条件的检索(续)n如 下 在 WHERE子 句 中 使 用 关 键 字 ISNULL检索表中空值:Select Author_ID,Author_Name FromAuthorWherePhone_NoISNULLAuthor_IDAuthor_NameA004MariaPhillips2002年10月31日星期四第第84页页下一页上一页停止放映停止放映带限制条件的检索(续)n关键字BETWEENn罗列出值在给定范围内的行。n列出在1980和1990年(注意包括这两个年份)之间出版的图书:Select*FromTitleWhereYearBETWEEN1980AND1990TitleYearPub_IDBook_NoVisualBasic6.0Superbible198432