工信版(中职)数据库应用基础——Visual FoxPro模块4教学课件.ppt
-
资源ID:90589466
资源大小:974KB
全文页数:51页
- 资源格式: PPT
下载积分:30金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
工信版(中职)数据库应用基础——Visual FoxPro模块4教学课件.ppt
Y CF(中职)数据库应用基础Visual FoxPro 模块4 教学课件模块4 关系数据库标准语言SQL 单元1 SQL语言的特点 单元2 数据定义语言 单元3 数据更新 单元4 SQL的数据查询功能单元1 SQL 语言的特点 SQL 全称为Structured Query Language,即结构化查询语言,它是一种非过程化的语言。由于SQL 具有功能丰富、使用方式灵话、语言简洁易学等突出特点,所以它在计算机界深受广大用户欢迎。SQL 已经被国际标准化组织(ISO)认定为关系数据库标准语言,其核心是数据查询。所有的关系数据库管理系统都支持SQL。SQL 语言具有如下特点。1 一体化语言 SQL 是一体化语言,是指它集数据定义、数据操作、数据查询及数据控制于一体,它可以完成数据库话动中的几乎所有功能,包括定义数据库和表结构,输入数据及建立数据库查询、更新、维护和重构,以及数据库安全性控制等一系列操作,从而为数据库应用系统的开发提供了良好的环境。下一页 返回单元1 SQL 语言的特点 2.高度非过程化 用SQL 语言进行数据操作时,用户只需提出“做什么”,而不必指明“如何去做”。因此大大减轻了用户的负担,提高了程序设计的生产率和系统的数据独立性。3.集合化操作方式 SQL 语言采用集合化操作方式,不仅查找结果可以是记录的集合,而且操作对象的一次插入、删除、更新也可以是记录的集合。上一页 下一页 返回单元1 SQL 语言的特点 4.应用方式灵话 SQL 语言的使用方式比较灵话,它既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在键盘上直接输入SQL 命令对数据库进行操作。作为嵌入式语言,SQL 语句能够嵌入到高级语言(如C、FORTRAN 等)程序中以程序方式使用。无沦SQL 以何种方式使用,SQL 语言的语法结构基本上是一致的,绝大多数数据库应用开发工具或高级程序设计语言都把SQL 语言直接融入到自身的语言环境中。上一页 返回单元1 SQL 语言的特点 5.语言简洁,易学易用 SQL 语言所能实现的功能十分强大,几乎覆盖了数据库中的所有功能。而它的语法结构十分简练,易学,只使用了很少的几条命令如CREATE、DROP、ALTER、SELECT、INSERTUPDATE、DELETE、GRANT、REVOKE 就可以完成数据定义、数据操纵、数据控制和数据查询等核心功能,十分接近自然语言的特点。上一页 返回单元2 数据定义语言 数据定义语言(data definition language)是用于向数据库管理系统声明数据库结构的语言。它由CREATE、DROP和ALTER 命令组成。下面针对表对象对其进行讲解。任务2.1 创建表 建立一个数据库,其中主要的操作就是定义一些基本表,在SQL 中,可使用Create Table 语句定义基本表。2.1.1 语句格式 创建表的语句格式如下:Create Table(表名)(下一页 返回单元2 数据定义语言,1)2.1.2 语句功能 上述语句创建一个以 为名的、以指定的字段属性定义的表结构。2.1.3 参数说明 1.和 这是所要定义的基本表的名字,基本表可以由一个字段或多字段组成,每一字段必须定义字段名和数据类型。上一页 下一页 返回单元2 数据定义语言 2.定义表结构的同时,通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入到数据字典中,当用户对表中数据进行操作时,由数据库自动检查该操作是否违背这些完整性约束条件;如果完整性约束条件涉及该表的多个属性字段,则必须定义表级别完整性约束条件。3.字段级完整性约束包括:Primary key 约束、Foreign key约束、Unique 约束、Check 约束和Not null 或Null 约束。(1)Primary key 约束 Primary key 约束也称主关键字约束,用于定义实体完整性约束,该约束用于定义表中某字段为主关键字,而且约束主关键字的唯一性和非空性。上一页 下一页 返回单元2 数据定义语言 该约束可在字段级或表级上进行定义,但不允许同时在两个级别上进行定义。字段级约束可直接写在字段名及其类型之后由Primary key 短语定义;表级约束在所有字段名及其类型之后由ConstraintPrimary key 短语定义。(2)Foreign key 约束 Foreign key 约束也称为外部关键字约束或参照表约束,用于定义参照完整性,即用来维护两个基本表之间的一致性关系。Foreign key 约束不仅可以与另一基本表上的Primary key 约束建立联系,也可以与另一基本表上的Unique 约束建立联系;该约束可在字段级或表级上进行定义,但不允许同时在两个级别上进行定义;字段级约束如果外关键字只有一个字段,可在它的字段名和类型后面直接由References()短语定义;表级约 束在所有字段名及其类型之后由ConstraintForeign key)References()短语定义,其中,是外键字;()是被参照基本表中的字段名。上一页 下一页 返回单元2 数据定义语言(3)Unique 约束 Unique 约束主要用在非主关键字的一字段或多字段上要求数据唯一的情况,可在一个表上设置多个Unique 约束,而在一个表上只能设置一个主关键字,Unique 约束也可在字段级或在表级上设置,若在多于一字段的表上设置Unique约束,则必须设置表级约束;字段级约束可直接写在字段名及其类型之后由Unique 短语定义;表级约束在所有字段名及其类型之后由ConstraintUnique 短语定义。(4)Check 约束 Check 约束是域完整性约束,它就像一个检查员,当输入字段值时对每一个数据进行有效性的检查,只有符合约束条件的数据才可输入到表中。可在一字段上设置多个Check 约束,也可将一个Check 约束应用于多字段;字段级/表级约束可由ConstraintCheck()短语定义。上一页 下一页 返回单元2 数据定义语言(5)Not null 约束与Null 约束 Not null 约束不允许字段值为空,而Null 约束允许字段值为空。例4-1 创建“人才档案”数据库的基本表,已知有以下3 个关系模式,创建3 个基本表,表名分别为人才档案、成就成果、专业特长。人才档案(编号、姓名、性别、出生日期、学历、政治面貌、民族、工资现状、工作简历、照片)。成就成果(编号、成果名称、成果类别、成果出处)。专业特长(编号、专业、毕业学校、专业年限、职称、语种、外语水平)。具体步骤如下。创建“人才档案表”的SQL 语句如图4-1 所示。创建“成就成果”表的SQL 语句如图4-2 所示。创建“专业特长”表的SQL 语句如图4-3 所示。上一页 下一页 返回单元2 数据定义语言 任务2.2 修改表结构 随着应用环境和应用需求的变化,创建完成的表一旦不能满足应用系统的需求,则需要修改已建立好的表结构,SQL 用Alter Table 语句修改表的结构。2.2.1 语句格式 Alter Table 语句的格式如下:A1ter Table(表名 Add;Drop Constraint lColumn,Alter,;2.2.2 语句功能 上述语句用于修改以 为名的表结构。上一页 下一页 返回单元2 数据定义语言 2.2.3 说明:是指要修改表结构的表的名字。Add 子句:用于增加新字段和新的完整性约束条件。Drop 子句:用于删除指定的字段和完整性约束。当删除某一字段时,所有引用该字段的视图和约束也一起自动被删除(也有的系统规定,若删除某一字段时,只有当没有视图和约束引用该字段时,才能进行,否则将被拒绝)。Alter 子句:用于修改原有的字段的定义,包括修改字段名、字段的宽度和字段的数据类型。例4-2 修改“人才管理”数据库中已有表的结构,在“人才档案表”中增加一个“工龄”字段;将“人才档案表”中的“照片资料”字段删除;修改“专业特点”表中“编号”字段的数据类型。具体步骤如下。增加字段的SQL 语句如图4-4 所示。上一页 下一页 返回单元2 数据定义语言 删除字段的SQL 语句如图4-5 所示。修改字段属性的SQL 语句如图4-6 所示。任务2.3 删除表 当某个表不再需要时,可以使用Drop Table 语句删除表。2.3.1 语句格式 Drop Table上一页 返回下一页单元2 数据定义语言 2.3.2 语句功能 删除以 为名的表。2.3.3 说明 语句中的 是指要删除的表的名字。表一旦删除,表中的数据无法恢复,此时系统释放其所占用的存储空间,因此执行删除表的操作一定要格外小心。例4-3J 删除“学生”数据库中的“学生信息”表。删除表的SQL 语句如图4-7 所示。上一页 返回单元3 数据更新 SQL 语句的数据更新包括表中数据的插入、修改和删除等相关操作。任务3.1 插入记录 在表操作中,给表添加数据是常用的表操作,这里所介绍的插入数据语句是在表的尾部添加一个记录。在SQL 中,插入数据使用Insert 语句。3.1.1 语句格式 Insert Into(,.)Values,3.1.2 语句功能 上述语句将一个新记录(一行数据)插入以 为名的表中。下一页 返回单元3 数据更新 3.1.3 说明:是指要插入数据的表名。Into 子句中的,.指表中插入新值的字段。Values 子句中的,.指表中插入新值字段的值,其中各常量的数据类型必须与Into 子句中所对应字段的数据类型相同,且个数也要匹配。如果省略Into 子句后面的选项,则新插入元组的每一字段,必须在Values 子句中有值对应。例4-4 给“人才”数据库中的“人才档案表”添加以下两组数据。(Bx315,刘捷伟,03/21/73,本科,党员,8320,略,略)(Bx355,刘克简,03/2/82,专科,民主党派,6800,略,略)上一页 下一页 返回单元3 数据更新 向表中插入数据的SQL 语句如图4-8 所示。结果如图4-9 所示。任务3.2 更新记录 更新表中的数据同样是表操作的一个经常性任务,表中的更新数据语句,是对所有记录或满足条件的指定记录进行操作。在SQL 中,更新数据表中的数据可使用Update 语句。3.2.1 语句格式 UpdateSet=,=,Where 3.2.2 语句功能 上述语句更新以 为名的表中数据。上一页 下一页 返回单元3 数据更新 3.2.3 说明:指要更新数据的表的名字。=:用 的值取代对应 的字段值,且一次可以修改多个字段的字段值。Where:指出表中需要更新数据字段值的记录应满足的条件,如果省略Where 子句,则更新表中的全部记录指定的字段值。Where 子句也可以嵌入子查询。例4-5 更新“人才”数据库中的“人才档案”表中的数据,将所有的“政治面貌”字段取值为“民主党派”更新为“非党员”。更新表中数据的SQL 语句如图4-10 所示。任务3.3 则除记录 SQL 语句的删除数据语句,是对表中所有记录或满足条件的指定记录进行删除操作。在SQL 中,删除表中数据可使用DELETE 语句。上一页 下一页 返回单元3 数据更新 3.3.1 语句格式 Delete FromWhere 3.3.2 语句功能 上述语句删除以 为名的表中满足 的数据。3.3.3 说明:指要删除数据的表的名字。Delete 语句删除的是表中的数据,而不是表的定义。省略Where 子句,表示删除表中的全部数据。Where 子句也可以嵌入子查询。例4-6J 删除“人才”数据库中的“人才档案表”中的数据,将所有的“学历”字段取值“大专”的数据进行逻辑删除。逻辑删除表中数据的SQL 语句如图4-11 所示。上一页 返回单元4 SQL 的数据查询功能 任务4.1 查询语句 查询语句SELECT 用于从一个或多个表中检索数据。其格式如下:下一页 返回单元4 SQL 的数据查询功能 说明:在SELECT 子句中指定查询结果中包含的字段、常量和表达式。ALL查询结果中包含所有记录,包括重复记录。DISTINCT 在查询结果中剔除重复的行。FROM 子句用于指定记录的来源,列出所查的表或视图名,也可以加上表的别名。WHERE 选项用于指明查询结果中的记录满足的条件。GROUP BY 短语将查询结果按某一列(或多个列)的值进行分组。HAVING 子句只与GROUP BY 配合使用,用于说明分组条件。ORDER BY 短语将查询结果按升序或降序排列。INTO Destination 指定在何处保存查询结果。INTO ARRAY ArrayName 将查询结果存入数组中。上一页 下一页 返回单元4 SQL 的数据查询功能 INTO CURSORalias name 将查询结果存入临时表中。(11)INTO TABLE TableName 将查询结果存入新表中。(12)TO FILE FileName 将查询结果存入文本文件中。查询语句中的条件表达式可以使用如下运算符。BETWEEN.AND 表示值在某个范围内,包括边界。例如,年龄BETWEEN 15 AND 20。IN 表示值属于指定集合的元组。例如,IN(张三,李四,王小二)。LIKE 用于字符串的匹配,可以使用通配符。“%”表示。个或多个字符,“一”表示任何一个字符。例如,姓名LIKE“刘%”。ANY 字段的内容满足一个条件就为真。ALL满足子查询中所有值的记录。上一页 下一页 返回单元4 SQL 的数据查询功能 SELECT 命令的基本结构是SELECT.FORM.WHERE,它包含输出字段 数据来源 查询条件。在这种固定模式中,可以不要WHERE,但是SELECT 和FROM 是必备的。任务4.2 查询介类 4.2.1 简单查询 简单查询是基于一个表的查询,查询结果的数据来自一个表,命令形式是FROM 短语后只列出一个表名。可以由SELECT和FROM 短语构成无条件查询,也可以由SELECT、FROM和WHERE 短语构成条件查询。SELECT 短语指定表中的属性,WHERE 短语用于指明查询条件。例4-7 列出“新生入学信息.DBF”表的数据。OPEN DATABASE 学生管理&打开“学生管理”数据库 SELECT*FROM 新生入学信息 BROWSE上一页 下一页 返回单元4 SQL 的数据查询功能 屏幕上将显示出“新生入学信息.DBF”表中的数据。例4-8 列出“新生入学信息.DBF”表中所有记录中的编号、姓名、性别、出生日期、是否团员、入学成绩,专业7 个字段。SELECT 编号,姓名,性别,出生日期,入学成绩AS“高考成绩”,专业FROM 新生入学信息 屏幕上将显示如图4-12 所示的结果。例4-9 求出“新生入学信息.DBF”表中“英语”专业新生入学成绩平均分。SELECT 专业,AVG(入学成绩)AS“入学成绩平均分”FROM新生入学信息;WHERE 专业=“英语”显示结果如图4-13 所示。上一页 下一页 返回单元4 SQL 的数据查询功能 例4-10 列出“新生入学信息.DBF”表中非“英语”专业的学生名单。SELECT 编号,姓名,入学成绩AS“高考成绩”,专业;FROM 新生入学信息WHERE 专业“英语”显示结果如图4-14 所示。上述结果也可以用下面命令实现:SELECT 编号,姓名,入学成绩AS“高考成绩”,专业;FROM 新生入学信息WHERE 专业IN(“物理”,“化学”,“数学”,“政治”)例4-11 列出“新生入学信息.DBF”表中入学成绩在550分到590 分之间的学生名单。SELECT 编号,姓名,入学成绩AS“高考成绩”,专业;FROM 新生入学信息WHERE 入学成绩BETWEEN 550 AND 590 显示结果如图4-15 所示。上一页 下一页 返回单元4 SQL 的数据查询功能 例4-12 列出“新生入学信息.DBF”表中所有姓“刘”学生的姓名、编号、高考成绩和专业。SELECT 编号,姓名,入学成绩AS 高考成绩”,专业;FROM 新生入学信息WHERE 姓名LIKE“刘%”显示结果如图4-16 所示。4.2.2 嵌套查询 嵌套查询是一类基于多个关系的查询。当一个SELECT 命令完成查询任务时,需要一个子SELECT 的结果作为条件语句的条件,即需要在一个SELECT 命令的WHERE 子句中出现另一个SELECT 命令,在WHERE 短语后面的逻辑表达式中含有对其他表的查询,这种查询称为嵌套查询。在嵌套查询中,有两个SELECT.FROM 查询块。虽然嵌套查询是基于多个关系的查询,但它的最终查询结果却是一个关系,数据源是外层查询的FROM 短语所指定的表。上一页 下一页 返回单元4 SQL 的数据查询功能 例4-13 首先建立如表4-1 所示结构和表4-2 所示的数据库表“学生宿舍”,然后列出宿舍为302 所在班学生的姓名和平均成绩。操作步骤如下。打开表设计器,添加表4-1 学生宿舍.DBF”表结构中的字段,然后添加如表4-2 所示的数据。继续执行如下命令:SELECT 姓名,入学成绩FROM 新生入学信息;WHERE 班级=(SELECT 班级FROM 学生宿舍WHERE 宿舍=“302”)上面的SQL 语句执行了两个过程,首先在“学生宿舍.DBF”表中找出“宿舍”字段值为302 的班级,然后再在“新生入学信息.DBF”表中列出该班级学生的姓名和平均成绩。上一页 下一页 返回单元4 SQL 的数据查询功能 例4-14 根据“新生入学信息.DBF”和“学生宿舍.DBF,列出宿舍为302 所在班学生入学成绩530 的学生的姓名和平均成绩。SELECT 姓名,平均成绩FROM 新生入学信息WHERE 入学成绩530;AND 班级=(SELECT 班级FROM 学生宿舍WHERE 宿舍=“302”)4.2.3 联接查询 1.简单的联接查询 联接是基于多个关系的查询,即FROM 后面有多个表。SELECT 后面的属性可以来自多个表,如果不同表中含有相同的字段,必须用表名指出字段所在的表,格式为:表名.字段名 WHERE 短语后面指出联接条件。为了避免使用表名的麻烦,可以使用表别名。上一页 下一页 返回单元4 SQL 的数据查询功能 2.自联接查询 自联接查询是指一个表自己和自己联接。能够实现自联接的前提是该关系中的两个属性具有相同的值域。在实现自联接时,必须为表指定别名。3.超联接查询 超联接查询是两个关系的查询,首先保证一个关系中满足条件的记录都出现在结果中,然后将满足联接条件的记录与另一个关系中的记录进行联接;若不满足联接条件,就把来自另一个关系的属性值设置为空值。联接条件应出现在ON 短语中,一定要紧跟着JOIN 短语,WHERE 短语置于ON 短语的后面。超联接有以下几种形式。INNER JOIN(内联接),所有满足联接条件的记录都包含在查询结果中。例如前面所举的例子。上一页 下一页 返回单元4 SQL 的数据查询功能 LEFT JOIN(左联接),系统执行过程是左表的某条记录与右表的所有记录依次比较,若有满足联接条件的,则产生一个真实值记录;若都不满足,则产生一个含有NULL 值的记录。接着,左表的下一记录与右表的所有记录依次比较字段值,重复上述过程,直到左表所有记录都比较完为止。联接结果的记录个数与左表的记录个数一致。RIGHT JOIN(右联接),系统执行过程是右表的某条记录与左表的所有记录依次比较,若有满足联接条件的,则产生一个真实值记录;若都不满足,则产生一个含有NULL 值的记录。接着,右表的下一记录与左表的所有记录依次比较字段值,重复上述过程,直到左表所有记录都比较完为止。联接结果的记录个数与右表的记录个数一致。上一页 下一页 返回单元4 SQL 的数据查询功能 FULL JOIN(完全联接),系统执行过程是先按右联接比较字段值,然后按左联接比较字段值,重复记录不列入查询结果中。4.分组查询 分组查询使用GROUP BY 短语来实现,还可以进一步用HAVING 短语限定分组的条件。如果语句中还有WHERE 短语,先用WHERE 短语限定关系中的元组,对满足条件的元组进行分组,然后用HAVING 短语限定分组。上一页 返回图4-1 创建“人才档案表”返回图4-2 创建“成就成果表”返回图4-3 创建“专业特长”表返回图4-4 增加字段返回图4-5 删除字段返回图4-6 修改字段属性返回图4-7 删除表返回图4-8 插入数据的SQL 语句返回图4-9 插入记录的结果返回图4-10 更新表中数据返回图4-11 删除表中数据返回图4-12 显示字段的数据返回图4-13 求平均分的结果返回图4-14 非“英语”专业的学生名单返回图4-15 入学成绩在550 分到590 分之间的学生名单返回图4-16 所以姓“刘”学生的姓名、编号、高考成绩和专业返回表4-1“学生宿舍.DBF”表的结构返回表4-2“学生宿舍.DBF”表数据返回