《计算机基础第四章教案.ppt》由会员分享,可在线阅读,更多相关《计算机基础第四章教案.ppt(100页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第4章数据库与信息系统1学习之前的讲述:数据库与信息系统概念的引出:数据库与信息系统概念的引出:人类的人类的知识与智慧知识与智慧需要不断地需要不断地积累和传承积累和传承。n n 其基础是,以数据的形式进行其基础是,以数据的形式进行有组织地存有组织地存储储;n n 其方法是,对这些数据进行其方法是,对这些数据进行有效地检索、有效地检索、操作和维护操作和维护;n n 其应用是,其应用是,有目的地有目的地对数据进行再对数据进行再加工和加工和利用利用,也称作:信息系统。,也称作:信息系统。如何学习这个章节?如何学习这个章节?24.1 4.1 数据库基础知识数据库基础知识4.1.1 4.1.1 数据与数
2、据库数据与数据库 1 1、数据:、数据:描述事物的符号记录。描述事物的符号记录。数据的种类多种多样数据的种类多种多样:数字、文字、声音、图像等。数字、文字、声音、图像等。在计算机中,各种数据被数字化。在计算机中,各种数据被数字化。数据的概念有两个方面数据的概念有两个方面:描述事物特性的是描述事物特性的是数据内容数据内容;存储在某一种媒体上的是存储在某一种媒体上的是数据形式数据形式。3 2 2、数据库:、数据库:数据的仓库(集合)数据的仓库(集合)数据库中的数据具有:数据库中的数据具有:目的性、组织性、独立性、共享性,目的性、组织性、独立性、共享性,按照一定的按照一定的数据模型数据模型规则地存放
3、。规则地存放。现实世界-信息世界-机器世界(物质)(物质)(精神)(精神)(数据)(数据)4 4.1.3 4.1.3 数据管理技术的演变数据管理技术的演变 三个阶段:三个阶段:n n 人工管理阶段人工管理阶段n n 文件管理阶段文件管理阶段n n 数据库管理阶段数据库管理阶段5n 人工管理阶段(人工管理阶段(5050年代)年代):这个时期,没有磁盘和专门的数据管理软件。这个时期,没有磁盘和专门的数据管理软件。计算机主要用于科学计算,数据量不大。计算机主要用于科学计算,数据量不大。应用程序应用程序1 1应用程序应用程序2 2应用程序应用程序数据集数据集1 1数据集数据集2 2数据集数据集3 3
4、人工管理阶段应用程序与人工管理阶段应用程序与数据之间的对应关系数据之间的对应关系 6人工管理数据的特点:人工管理数据的特点:数据不保存。数据不保存。数据需要由应用程序自己设计、数据需要由应用程序自己设计、说明和管理。没有相应的软件系说明和管理。没有相应的软件系统负责数据的管理工作。统负责数据的管理工作。数据不共享。数据不共享。数据不具有独立性。数据不具有独立性。7n文件系统阶段(文件系统阶段(6060年代)年代)这时期,有了磁盘存储设备,有了操作系统这时期,有了磁盘存储设备,有了操作系统以及文件管理功能。计算机不仅用于计算,以及文件管理功能。计算机不仅用于计算,还有大量的数据处理。还有大量的数
5、据处理。文件系统阶段应用程序与数据之间的关系文件系统阶段应用程序与数据之间的关系 应用程序应用程序1 1应用程序应用程序2 2应用程序应用程序n n文件文件1 1文件文件2 2文件文件n n存存取取方法方法8文件系统管理数据的特点:文件系统管理数据的特点:数据可以长期保存。数据可以长期保存。由专门的软件即文件系统进行数由专门的软件即文件系统进行数据文件的管理。据文件的管理。数据共享性差。数据共享性差。数据独立性低。数据独立性低。9n n 数据库管理阶段数据库管理阶段应用程序应用程序2 2应用程序应用程序1 1应用程序应用程序n n用户用户数据库管数据库管理系统理系统数据库数据库数据库管理系统处
6、理数据方式示意图数据库管理系统处理数据方式示意图 10 数据库管理系统的特点:数据库管理系统的特点:数据结构化数据结构化 利用复杂的数据模型,不仅描述数利用复杂的数据模型,不仅描述数据本身,而且描述数据与数据之间的关据本身,而且描述数据与数据之间的关系。系。数据共享性提高,冗余度降低数据共享性提高,冗余度降低从整体层面描述和建立数据模型,实现从整体层面描述和建立数据模型,实现数据共享,维护数据的一致性。数据共享,维护数据的一致性。数据独立性高数据独立性高借助于数据库管理的中间转换,实借助于数据库管理的中间转换,实现数据逻辑结构和物理结构相分离,保现数据逻辑结构和物理结构相分离,保持数据和应用程
7、序之间相互独立。持数据和应用程序之间相互独立。11数据库系统集中管理数据数据库系统集中管理数据主要包括下面几方面的控制功能,主要包括下面几方面的控制功能,并发性:并发性:允许多用户同时使用数据允许多用户同时使用数据库库 完整性:完整性:通过一些完整性规则,令通过一些完整性规则,令数据库始终包含数据库始终包含正确的正确的数据。数据。可恢复性:可恢复性:遭到破坏时可以最近点遭到破坏时可以最近点恢复恢复 安全性:安全性:安全机制、使用权限设置安全机制、使用权限设置 审计性:审计性:跟踪记录数据操作情况跟踪记录数据操作情况12 数据库管理系统数据库管理系统 1 1、数据库:、数据库:数据库就是数据库就
8、是长期储存长期储存在计算机内的在计算机内的有组有组织织、可共享可共享的数据集合。的数据集合。2 2、数据库管理系统的定义、数据库管理系统的定义:数据库管理系统数据库管理系统(Database Management Database Management SystemsSystems,DBMSDBMS)是数据库系统的核心,是是数据库系统的核心,是为数据库的建立、使用和维护而配置的为数据库的建立、使用和维护而配置的软软件件,由一个,由一个互相关联互相关联的的数据的集合数据的集合和一组和一组用于访问这些数据的用于访问这些数据的程序程序组成。组成。13 3 3、数据库管理系统、数据库管理系统(DBMS
9、)(DBMS)的功能:的功能:pp 数据定义:数据定义:定义数据库结构的模式。定义数据库结构的模式。pp 数据操纵:数据操纵:包括对数据库数据的检索、插入、包括对数据库数据的检索、插入、修改和删除等基本操作。修改和删除等基本操作。pp 数据库运行管理:数据库运行管理:保证数据的安全性、完整保证数据的安全性、完整性、一致性以及多用户对数据的并发使用。性、一致性以及多用户对数据的并发使用。pp 数据组织、存储和管理数据组织、存储和管理:确定文件结构和存确定文件结构和存取方式取方式 pp 数据库的建立和维护数据库的建立和维护:建立数据库包括数据建立数据库包括数据库初始数据的输入与数据转换等。维护数据
10、库库初始数据的输入与数据转换等。维护数据库包括数据库转储和恢复等。包括数据库转储和恢复等。pp 数据通信接口数据通信接口:14 4 4、数据库管理系统的组成:、数据库管理系统的组成:pp 数据定义语言数据定义语言(DDL)(DDL)及其翻译处理程序:及其翻译处理程序:提供提供数据定义语言数据定义语言,供用户定义数据库的各类模式供用户定义数据库的各类模式和结构等。和结构等。pp 数据操纵语言数据操纵语言(DML)(DML)及其编译(或解释)程序:及其编译(或解释)程序:实现对数据库的检索实现对数据库的检索、插入插入、修改修改、删除等基删除等基本操作。如,存储管理、安全性、一致性、各本操作。如,存
11、储管理、安全性、一致性、各类事物和日志管理等等。类事物和日志管理等等。pp 数据库运行控制程序:数据库运行控制程序:负责数据库运行过程负责数据库运行过程中的控制与管理中的控制与管理。pp 实用程序实用程序:基于应用层面的,基于应用层面的,数据库数据的数据库数据的建立与维护,以及数据格式的转换与通信等。建立与维护,以及数据格式的转换与通信等。pp 良好的用户界面良好的用户界面154.1.4 4.1.4 数据库系统的组成数据库系统的组成 DBSDBS:带有数据库的计算机应用系统。:带有数据库的计算机应用系统。一般由数据库、数据库管理系统、应用系一般由数据库、数据库管理系统、应用系统、数据库管理员统
12、、数据库管理员(DataBase Administrator)和最终用户构成。和最终用户构成。DBS=DB+DBMS+APPLACATION+DBA+USERDBS=DB+DBMS+APPLACATION+DBA+USERDBS=DB+DBMS+APPLACATION+DBA+USERDBS=DB+DBMS+APPLACATION+DBA+USER164.2 4.2 数据模型数据模型 数据模型的组成数据模型的组成 三个要素:三个要素:pp 数据结构:数据结构:用于描述系统的静态特性。用于描述系统的静态特性。pp 数据操作:数据操作:用于描述系统的动态特性。用于描述系统的动态特性。pp 数据的约
13、束条件:数据的约束条件:一组完整性规则。一组完整性规则。数据模型应满足三方面要求:数据模型应满足三方面要求:能比较真实地模拟现实世界;能比较真实地模拟现实世界;容易为人所理解;容易为人所理解;便于在计算机上实现。便于在计算机上实现。17 概念模型概念模型概念级的模型把现实世界中的客观对象概念级的模型把现实世界中的客观对象抽抽象象为某一种信息结构,这种信息结构并不依为某一种信息结构,这种信息结构并不依赖于具体的计算机系统。赖于具体的计算机系统。概念模型实际上是现实世界到机器世界的概念模型实际上是现实世界到机器世界的一个一个中间层次中间层次。信息世界的几个概念:信息世界的几个概念:实体、属性、域、
14、实体、属性、域、码码(key)(key)、实体型、实体型、实体集、联系。实体集、联系。现实世界现实世界信息世界信息世界 概念模型概念模型 机器世界机器世界DBMSDBMS支持的数据模型支持的数据模型18两个实体型之间的联系:两个实体型之间的联系:一对一联系(一对一联系(1:11:1)一一对对多多联联系(系(1:n1:n)多多对对多多联联系(系(m:nm:n)实际上,一对一联系是一对多联实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多的系的特例,而一对多联系又是多对多的特例。特例。19 常用数据模型常用数据模型层次模型:层次模型:表现实体之间一种很自然的层次关系。表现实体之间一种很自
15、然的层次关系。系系教研室教研室学学 生生教教 师师教师和学生的层次模型图教师和学生的层次模型图 20层次模型的特点层次模型的特点:有且只有一个结点没有双亲,该结点就是有且只有一个结点没有双亲,该结点就是根结点;根结点;根以外的其他结点,有且仅有一个双亲结根以外的其他结点,有且仅有一个双亲结点。层次数据库系统只能直接处理一对多点。层次数据库系统只能直接处理一对多的实体关系;的实体关系;任何一个给定的记录值只有按其路径查看任何一个给定的记录值只有按其路径查看时才能显出它的全部意义,没有一个子女时才能显出它的全部意义,没有一个子女记录值能够脱离双亲而独立存在。记录值能够脱离双亲而独立存在。21层次模
16、型的数据操纵与完整性层次模型的数据操纵与完整性:对数据进行删除、插入操作时要注意对数据进行删除、插入操作时要注意层次模型的完整性。即,任何子女结点都层次模型的完整性。即,任何子女结点都不能没有双亲。不能没有双亲。层次模型的优缺点层次模型的优缺点:结构简单、关系清晰。结构简单、关系清晰。不能描述较复杂的关系,查询速度慢。不能描述较复杂的关系,查询速度慢。22网状模型:网状模型:用网络结构表示数据间的多个从属关系用网络结构表示数据间的多个从属关系,可以清晰地表示这种非层次关系。可以清晰地表示这种非层次关系。学生学生1 1学生学生2 2学生学生3 3学生学生4 4课程课程1 1课程课程2 2课程课程
17、3 323网状模型的特点:网状模型的特点:有一个以上的结点没有双亲;有一个以上的结点没有双亲;至少有一个结点可以有多于一个双亲。至少有一个结点可以有多于一个双亲。网状模型允许两个或两个以上的结点为网状模型允许两个或两个以上的结点为根结点,允许某个结点有多个双亲结点。根结点,允许某个结点有多个双亲结点。实际上,层次模型是网状模型的一个特实际上,层次模型是网状模型的一个特例。例。24网状模型的数据操纵与完整性网状模型的数据操纵与完整性:对数据进行删除、插入操作比较随意,对数据进行删除、插入操作比较随意,没有严格的完整性约束条件。即,允许插没有严格的完整性约束条件。即,允许插入尚未确定双亲的子女结点
18、,也允许删除入尚未确定双亲的子女结点,也允许删除双亲而保留子女结点。双亲而保留子女结点。网状模型的优缺点网状模型的优缺点:能描述现实中较复杂的多对多关系,能描述现实中较复杂的多对多关系,存取效率高。存取效率高。描述语言比较复杂,数据独立性较差。描述语言比较复杂,数据独立性较差。25关系模型:关系模型:用一个二维表来表示数据间的关系用一个二维表来表示数据间的关系 “二维表二维表框架框架”组成的集合,每个组成的集合,每个二维表又可称为二维表又可称为关系关系,所以关系模型是,所以关系模型是“关系框架关系框架”的集合。的集合。26表表表表4 4 4 41 1 1 1 学生登记表学生登记表学生登记表学生
19、登记表S S S S学号(学号(SNOSNO)姓姓 名名(SN)(SN)性性 别别(SEX)(SEX)出生年月出生年月系系 别别(DEPT)(DEPT)200510101200510101李李 丽丽女女07/05/198707/05/1987计算机计算机200510102200510102赵赵 勇勇男男02/23/198802/23/1988法法 律律200510103200510103王王 凯凯男男01/19/198701/19/1987管管 理理表表表表4 4 4 42 2 2 2 课程登记表课程登记表课程登记表课程登记表C C C C课程号课程号(CNO)(CNO)课程名称课程名称(CN
20、)(CN)学学 分分(CC)(CC)开课院系开课院系A1012A1012高等数学高等数学5 5数数 学学 系系A2023A2023大学英语大学英语3 3英英 语语 系系C1103C1103计算机导论计算机导论3 3计算机系计算机系表表表表4 4 4 43 3 3 3 成绩登记表成绩登记表成绩登记表成绩登记表G G G G课程号(课程号(CNOCNO)学学 号(号(SNOSNO)成成 绩(绩(SCORESCORE)A1012A10122005101012005101018787A2023A20232005101012005101017575A2023A2023200510102200510102
21、9090C1103C1103200510103200510103686827关系数据库的基本概念和结构:关系数据库的基本概念和结构:关系关系(relation)(relation):每个表表示一种关系。每个表表示一种关系。元组元组(tuple)(tuple):二维表格中的一行(二维表格中的一行(记录记录)属性:属性:二维表格中的一列二维表格中的一列(数据项数据项)码码(key)(key):唯一标识记录的属性(唯一标识记录的属性(关键字关键字)域域(domain)(domain):属性的取值范围。属性的取值范围。例如,性别的域是(男,女)例如,性别的域是(男,女)关系模型:关系模型:对关系的描述
22、,一般表示为:对关系的描述,一般表示为:关系名(属性关系名(属性1 1,属性,属性2 2,,属性属性n n)例如,表例如,表4-14-1的关系可描述为:的关系可描述为:学生学生(学号,姓名,性别,出生年月,系别学号,姓名,性别,出生年月,系别)28关系数据模型的操纵与完整性约束:关系数据模型的操纵与完整性约束:数据操纵:数据操纵:数据查询、插入、删除和更新数据查询、插入、删除和更新 完整性约束:完整性约束:实体完整性:实体完整性:一个关系的主关键字不能一个关系的主关键字不能取空值;取空值;参照完整性:参照完整性:表与表之间的某种联系形表与表之间的某种联系形成参照关系。要求一个表的外码要么取空值
23、,成参照关系。要求一个表的外码要么取空值,要么和被参照关系中对应字段的某个值相同。要么和被参照关系中对应字段的某个值相同。用户自定义的完整性:用户自定义的完整性:根据数据库系统根据数据库系统的应用环境不同,用户设定的约束条件。的应用环境不同,用户设定的约束条件。29关系模型的优缺点:关系模型的优缺点:优点:优点:建立在严格的数学概念基础上。建立在严格的数学概念基础上。概念单一、结构清晰、易懂易用。概念单一、结构清晰、易懂易用。具有更高的数据独立性,安全性好。具有更高的数据独立性,安全性好。缺点:缺点:查询效率不如非关系数据模型。查询效率不如非关系数据模型。30面向对象模型:面向对象模型:对象:
24、现实世界中的实体在问题空间对象:现实世界中的实体在问题空间的抽象,由属性、方法加以描述。的抽象,由属性、方法加以描述。类:具有同一属性和方法集的所有对类:具有同一属性和方法集的所有对象的集合。象的集合。面向对象模型:由若干面向对象模型:由若干类层次类层次组成。组成。特点:特点:可处理除传统数据外的,包括图可处理除传统数据外的,包括图象、声音、动画等多种形式的信息。象、声音、动画等多种形式的信息。314.3.1 SQL4.3.1 SQL概述概述SQL(Structured Query Language)SQL(Structured Query Language)结构结构化查询语言,语言简洁、功能
25、强大,是关化查询语言,语言简洁、功能强大,是关系型数据库的标准语言。系型数据库的标准语言。SQLSQL的功能的功能:查询查询(Query)(Query)、操纵操纵(Manipulation)(Manipulation)、定义定义(Definition)(Definition)、控制控制(Control)(Control)。4.3 SQL 4.3 SQL语言基础语言基础32SQLSQL的特点:的特点:综合统一:综合统一:集数据库定义、数据操纵、集数据库定义、数据操纵、控制等功能于一体,控制等功能于一体,语言风格统一语言风格统一,独立,独立完成数据库生命周期中的全部活动。完成数据库生命周期中的全部
26、活动。非过程化:非过程化:只要指出只要指出“做什么做什么”,而,而无须指明无须指明“怎么做怎么做”。面向集合的操作方式:面向集合的操作方式:不仅操作对象、不仅操作对象、查找结果可以是元组的集合,而且一次插查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组入、删除、更新操作的对象也可以是元组的集合。的集合。33 以同一种语法结构提供两种使用方式:以同一种语法结构提供两种使用方式:既是既是自含式自含式语言语言独立与计算机交互,独立与计算机交互,又是又是嵌入式嵌入式语言语言嵌入到高级语言程序嵌入到高级语言程序当中。当中。语言简洁、易学易用:语言简洁、易学易用:类似于英语的类似于
27、英语的自然语言,简洁易用。自然语言,简洁易用。SQLSQL的组成:的组成:数据查询:数据查询:SELECTSELECT 数据操纵:数据操纵:INSERT,UPDATE,DELETEINSERT,UPDATE,DELETE 数据定义:数据定义:CREAT,DROP,ALTERCREAT,DROP,ALTER 数据控制:数据控制:GRANT,REVOKEGRANT,REVOKE34 、基本表的定义:、基本表的定义:在在SQLSQL中,表分为两种:中,表分为两种:基本表基本表其数据显式地存储在数据库中;其数据显式地存储在数据库中;视图视图仅有逻辑定义的仅有逻辑定义的虚表虚表。可以根据其定义从其它表(
28、包括视图),可以根据其定义从其它表(包括视图),但不作为一个表显式地存储在数据库中。但不作为一个表显式地存储在数据库中。35 创建基本表创建基本表:作用:作用:定义表的结构定义表的结构语法结构:语法结构:CREATE TABLECREATE TABLE(长度长度列级完整性约束条件列级完整性约束条件,长度长度列级完整性约束条件列级完整性约束条件,表级完整性约束条件表级完整性约束条件 )如果完整性约束条件涉及到该表的多个属性列,如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可定义在列级,也可定则必须定义在表级上,否则既可定义在列级,也可定义在表级。义在表级。36完整性约束的基
29、本语法格式:完整性约束的基本语法格式:CONSTRAINTCONSTRAINT 约束名:约束不指定名称时,由系统自动给定。约束名:约束不指定名称时,由系统自动给定。约束类型:必须指定完整性约束的类型,它包括:约束类型:必须指定完整性约束的类型,它包括:空空/非空:非空:NULL/NOT NULLNULL/NOT NULL值唯一:值唯一:UNIQUEUNIQUE主键:主键:PRIMARY KEYPRIMARY KEY外键:外键:FOREIGN KEYFOREIGN KEY检查范围:检查范围:CHECKCHECK等等默认值:可以用默认值:可以用DEFAULTDEFAULT指定该列的默认值。指定该列
30、的默认值。37例,例,CREATE TABLE SCREATE TABLE S (SNOSNOCHAR(9),CHAR(9),SNSNCHAR(8),CHAR(8),BIRTHDAYBIRTHDAYDATETIME,DATETIME,SEX SEXCHAR(2)CHAR(2),DEPTDEPT CHAR(20)CHAR(20)CREATE TABLE S CREATE TABLE S(SNO(SNOCHAR(9)CHAR(9)CONSTRAINT S-PRIM PRIMARY KEYCONSTRAINT S-PRIM PRIMARY KEY,SN SNCHAR(8)CHAR(8)CONSTRA
31、INT SN-CONS NOT NULLCONSTRAINT SN-CONS NOT NULL,BIRTHDAY DATETIME BIRTHDAY DATETIME CONSTRAINT AGE-CONS NOT NULLCONSTRAINT AGE-CONS NOT NULL,SEX SEXCHAR(2)CHAR(2)DEFAULT DEFAULT 男男,DEPTDEPTCHAR(20)CHAR(20)CONSTRAINT DEPT-CONS NOT NULLCONSTRAINT DEPT-CONS NOT NULL)38 修改基本表:修改基本表:作用:作用:新增新增和和修改修改列及完整性
32、约束列及完整性约束语法:语法:ALTER TABLE ALTER TABLE ADD ADD 完整性约束完整性约束ADD CONSTRAINT ADD CONSTRAINT DROP COLUMNDROP COLUMNDROP CONSTRAINTDROP CONSTRAINTALTER COLUMNALTER COLUMN完整性约束完整性约束39 ADD ADD子句:子句:用于用于增加增加新列和完整性约束。新列和完整性约束。例,例,在在S S表中增加一个家庭住址列。表中增加一个家庭住址列。ALTER TABLE SALTER TABLE SADDADD ADDRESS CHAR ADDRES
33、S CHAR(3030)注意:注意:使用此方式增加的新列自动填充使用此方式增加的新列自动填充NULLNULL值,所以不能为增加的新列指定值,所以不能为增加的新列指定NOT NOT NULLNULL约束。约束。40 ALTER ALTER子句:子句:用于用于修改修改某些列。某些列。注意:注意:使用此方式有以下一些限制:使用此方式有以下一些限制:不能改变列名。不能改变列名。不能将含有空值的列的定义修改为不能将含有空值的列的定义修改为NOT NOT NULLNULL约束。约束。若列中已有数据,则不能减少列的宽若列中已有数据,则不能减少列的宽度,也不能改变其数据类型,度,也不能改变其数据类型,只能修改
34、只能修改NULLNOT NULLNULLNOT NULL约束,其他约束,其他类型的约束在修改之前必须先将约束删除,类型的约束在修改之前必须先将约束删除,然后再重新添加修改过的约束定义。然后再重新添加修改过的约束定义。41例,例,把把S S表中的表中的SNSN列加宽到列加宽到2020个字符。个字符。ALTER TABLE SALTER TABLE S ALTERALTER COLUMN SN CHAR COLUMN SN CHAR(2020)DROP DROP子句:子句:用于删除原有的列和完整性约束定义。用于删除原有的列和完整性约束定义。ALTER TABLE ALTER TABLE DROPD
35、ROP CONSTRAINT CONSTRAINT 约束名约束名42 删除基本表删除基本表:DROP TABLEDROP TABLE 注意:注意:只能删除自己建立的表,不能删只能删除自己建立的表,不能删除其他用户所建的表除其他用户所建的表。432 2、SQLSQL数据查询:数据查询:查询数据是数据库的核心功能,即以一查询数据是数据库的核心功能,即以一种种可读的方式可读的方式从数据库中从数据库中提取所需数据提取所需数据。数据查询语句数据查询语句SELECTSELECT是是SQLSQL语言中功能语言中功能最强大、用途最广泛的数据操作语句,也最强大、用途最广泛的数据操作语句,也是关系运算论在是关系运
36、算论在SQLSQL语言中的主要体现。语言中的主要体现。查询的结果仍是一张表。查询的结果仍是一张表。44语法格式:语法格式:SELECTSELECT ALLDISTINCT ALLDISTINCT FROMFROM WHEREWHERE 检索条件检索条件 GROUP BYGROUP BY HAVINGHAVING ORDER BYORDER BY ASCDESCASCDESC45例例4.5 4.5 查看学生登记表查看学生登记表S S中所有男同学的学号、姓中所有男同学的学号、姓名和系名。名和系名。SELECT SNO,SN,DEPTSELECT SNO,SN,DEPTFROM SFROM SWHE
37、RE SEX=WHERE SEX=男男SELECTSELECT语句分析:语句分析:SELECTSELECT子句:子句:选择表中的全部选择表中的全部列列或部分列或部分列 SELECTSELECT,目标列表达式目标列表达式 例例4.6 4.6 查询表查询表S S中学生的中学生的全部信息全部信息。SELECT*SELECT*FROM SFROM S46 FROM FROM子句:子句:用于查询所涉及的表用于查询所涉及的表 FROM FROM,多个表的查询叫多表查询,否则是单表查询多个表的查询叫多表查询,否则是单表查询 WHERE WHERE子句:子句:用于指明查询的用于指明查询的条件选择条件选择,只有
38、满只有满足查询条件的足查询条件的行行才会出现在查询结果中才会出现在查询结果中 WHERE WHERE 运算符运算符运算符运算符 作用作用作用作用=,=,!=,=,!=比较运算比较运算NOT,AND,OR NOT,AND,OR 逻辑运算逻辑运算BETWEEN AND,NOT BETWEEN AND BETWEEN AND,NOT BETWEEN AND 确定范围确定范围IN,NOT IN IN,NOT IN 确定集合确定集合LIKE,NOT LIKE LIKE,NOT LIKE 字符匹配字符匹配IS NULL,IS NOT NULL IS NULL,IS NOT NULL 空值空值表表4-14
39、常用运算符常用运算符47比较运算:比较运算:比较运算:比较运算:例例4.7 4.7 在成绩登记表(表在成绩登记表(表4-34-3)中,查询需补)中,查询需补考的学生的学号和课程号。考的学生的学号和课程号。SELECT SNO,CNO SELECT SNO,CNO FROM G FROM G WHERE SCORE60WHERE SCORE=85)(SCORE=85)48确定范围:确定范围:确定范围:确定范围:查询属性值在某范围内的元组查询属性值在某范围内的元组例例4.9 4.9 在表在表G G中,查询上课程号为中,查询上课程号为C1C1的成绩在的成绩在60608080分的学生的学号和成绩。分的
40、学生的学号和成绩。SELECT SNOSELECT SNO,SCORESCOREFROM GFROM GWHERE(CNO=C1)WHERE(CNO=C1)AND AND(SCORE(SCORE BETWEENBETWEEN 60 60 AND 80)AND 80)确定集合:确定集合:确定集合:确定集合:查询属性值属于指定集合的元组查询属性值属于指定集合的元组 例例4.10 4.10 在在表表G G中中,查查询询所所上上课课程程的的课课程程号号为为C1C1和和C3C3的学号、课程号和成绩。的学号、课程号和成绩。SELECT SNOSELECT SNO,CNOCNO,SCORESCOREFROM
41、 GFROM GWHERE CNO WHERE CNO ININ(C1,C2)(C1,C2)49 字符匹配:字符匹配:字符匹配:字符匹配:不不完全匹配查询(模糊查询)完全匹配查询(模糊查询)LIKE LIKE 属性名必须为字符型,可以包含通配符:属性名必须为字符型,可以包含通配符:通配符通配符 功能功能 实例实例 代表代表0 0个或多个字符个或多个字符 ab%ab%表示表示 abab后可接任意字后可接任意字符串符串_(_(下划线下划线)代表一个字符代表一个字符 a_ba_b表示表示aa与与bb之间可有之间可有一个字符一个字符 表示在某一范围的字符表示在某一范围的字符 0 099表示表示0 0到
42、到9 9之间的字符之间的字符 表示不在某一范围的字符表示不在某一范围的字符 0099表示不在表示不在0 0到到9 9之间的字符之间的字符例例4.11 4.11 在表在表S S中,查询第二个中,查询第二个汉字汉字为为“梅梅”的学生的学号,姓名和系名。的学生的学号,姓名和系名。SELECT SNO,SN,DEPT SELECT SNO,SN,DEPT FROM S FROM S WHERE SN LIKE _WHERE SN LIKE _梅梅50空值查询:空值查询:空值查询:空值查询:没有值的字段称之为具有空值没有值的字段称之为具有空值NULLNULL 例例4.12 4.12 查查询询表表G G中
43、中需需补补考考或或缓缓考考的的学学生生的的学学号和课程号。号和课程号。SELECT SNO,CNO SELECT SNO,CNO FROM G FROM G WHERE SCORE 60 OR SCORE WHERE SCORE 60 OR SCORE IS NULLIS NULL ORDER ORDER ORDER ORDER BYBYBYBY子子子子句句句句:指指定定按按照照一一个个或或多多个个属属性性列列的的升升序序(ASCASC)或或降降序序(DESCDESC)重重新新排排列列查查询询结果中的行,其中升序为默认值结果中的行,其中升序为默认值。例例4.13 4.13 在在表表G G中中,
44、查查询询选选修修C1C1课课程程的的学学生的学号和成绩,成绩按生的学号和成绩,成绩按降序排序降序排序。SELECT SNO,SCORESELECT SNO,SCOREFROM G FROM G WHERE CNO=C1WHERE CNO=C1ORDER BYORDER BY SCORE SCORE DESCDESC513 3、SQLSQL数据更新:数据更新:用于修改数据表内容的用于修改数据表内容的SQLSQL命令有三条:命令有三条:INSERTINSERT:向表中:向表中添加添加记录。记录。DELETEDELETE:从表中:从表中删除删除记录。记录。UPDATEUPDATE:修改修改表中存在的
45、记录。表中存在的记录。插入数据:插入数据:将一新行插入到指定表中将一新行插入到指定表中INSERTINSERTINTOINTO (,)2)VALUES VALUES(1,)2)52说明:说明:如果属性列表中没有包括该关系如果属性列表中没有包括该关系中的所有属性,那么在插入的元组数据中为中的所有属性,那么在插入的元组数据中为没有包括进来的属性值使用默认值没有包括进来的属性值使用默认值,最常见,最常见的默认值是空值的默认值是空值NULLNULL。如果如果INTOINTO子句中子句中没有指明任何列没有指明任何列名名,则,则VALUESVALUES子句中子句中必须给出表中所有列的必须给出表中所有列的值
46、值,并且其顺序要和表中列的,并且其顺序要和表中列的顺序一样顺序一样。例例4.14 4.14 在表在表BookS(BookS(表表4-4)4-4)中,插入一条新图书中,插入一条新图书记录记录:(7-111-7526-127-111-7526-12,离散数学,计算机,离散数学,计算机,65.0065.00,机械工业出版社)。,机械工业出版社)。INSERT INSERT INTO BookS(ISBN,Title,BookType,Price,PressName)INTO BookS(ISBN,Title,BookType,Price,PressName)VALUES(7-111-7526-12,
47、VALUES(7-111-7526-12,离散数学离散数学,计算机计算机,65.00,65.00,机械工业出版社机械工业出版社)INTO BookS INTO BookS 53 修改数据:修改数据:UPDATEUPDATE SETSET=,=WHEREWHERE 如果没有如果没有WHEREWHERE子句,表示要修改指定表中的全子句,表示要修改指定表中的全部行。值得指出的是部行。值得指出的是,在在UPDATEUPDATE的的WHEREWHERE子句中也可子句中也可以嵌入查询语句以嵌入查询语句。修改全部行的数据:修改全部行的数据:修改全部行的数据:修改全部行的数据:例例4.154.15在表在表Bo
48、okSBookS中,将所有图书的价格增加中,将所有图书的价格增加1010元。元。UPDATEUPDATE BookS BookS SETSET Price=Price+10.00 Price=Price+10.00 修改部分行的数据:修改部分行的数据:修改部分行的数据:修改部分行的数据:例例4.164.16在表在表BookSBookS中,将中,将计算机网络计算机网络这本书的价格调这本书的价格调整为整为5050元。元。UPDATE BookSUPDATE BookS SET Price=50.00SET Price=50.00 WHERE Title=WHERE Title=计算机网络计算机网络
49、54 删除数据:删除数据:删除满足删除满足WHEREWHERE子句条件的所有行子句条件的所有行 DELETEDELETE FROM FROM WHEREWHERE 如果在数据删除语句中省略如果在数据删除语句中省略WHEREWHERE子句中,表示子句中,表示删除表中删除表中全部行全部行。DELETEDELETE只删除表中的数据,不删除表的定义。只删除表中的数据,不删除表的定义。例例4.14.17 7 在表在表BookSBookS中删除王子与贫儿这本书中删除王子与贫儿这本书的记录的记录。DELETEDELETE FROM BookSFROM BookSWHERE TWHERE Titleitle=
50、王子与贫儿王子与贫儿55练习:练习:设有如下基本表设有如下基本表:S(Sno,Name,Sex,Age,Class)S(Sno,Name,Sex,Age,Class)写出实现下列功能的写出实现下列功能的SQLSQL语句:语句:插入一个记录插入一个记录(200510125,(200510125,刘明刘明,男男,18,2005101)18,2005101);插入插入20051012005101班班,学号为学号为200521216,200521216,姓名为李姓名为李雨同学的记录;雨同学的记录;查找学号为查找学号为200502302200502302的学生记录;的学生记录;将所有班号为将所有班号为2