VFP6教案第四章_第1页
VFP6教案第四章_第2页
VFP6教案第四章_第3页
VFP6教案第四章_第4页
VFP6教案第四章_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、第4章关系数据库标准语言SQL、目录、上一页、下一页、后退、2、本章要点、4.1 SQL语言基本概述4.2数据定义4.3数据操作4.4数据管理4.5 SQL中的数据查询语句、3.1全面统一的SQL语言集数据定义(DDL)、数据操作(DML)和数据管理(DCL)语言风格统一,可以独立完成所有数据库操作。 包括定义关系模式、输入数据和建立数据库、查询、更新、维护数据、重建数据库和数据库安全等一系列操作需求,为数据库应用系统开发人员提供了良好的环境。 2高度非程序性,3面向集合的操作模式,4提供两种语法结构相同的使用模式,5简单的语言,易于学习和使用,4 . 1 . 1 SQL语言的特点,4.4

2、.1.2 SQL语言的基本概念SQL语言支持关系数据库的三层模式结构。外部模式对应于视图和基表的一部分,模式对应于基表,内部模式对应于存储文件。基本表是独立存在的表。在SQL语言中,关系对应于一个表。一些基本表对应于一个存储文件,一个表可以有多个索引,这些索引存储在存储文件中。存储文件的逻辑结构构成了关系数据库的内部模式。存储文件的物理文件结构是任意的。视图是从基本表或其他视图导出的表,它不是独立存储在数据库中,也就是说,数据库只存储视觉的定义,而不存储与视图对应的数据,这些数据仍然存储在导出视图的基本表中,因此视图是一个虚拟表。数据定义语言DDL用于执行数据定义操作,如创建或删除对象,如表、

3、索引和视图。它由CREATE、DROP和ALTER命令组成,完成数据库对象的创建、删除和修改。4.2.1定义(创建)表格式创建表(,)完整性约束空|非空),函数定义(也称为创建)表。4.2数据定义,6,示例4-1创建一个表STUD(学生信息表),它由以下字段组成:学生编号(c,10);姓名(丙,8);性别(c,2);类名(c,10);部门代码(c,2);地址(c,50);出生日期(d);它是成员(l)吗?备注(m)。创建表研究(学号C(10),姓名C(10),性别C(2),班级名称C(10),部门代码C(2),地址C(50),出生日期D,是否成员L,备注M,照片G)列表结构示例4-2创建表s

4、C(课程编号(C,2)。创建表SC(学生id C(10),课程id C(2)列表结构,7,格式 ALTER TABLE ADD(,),完整性约束空| NOT NULL删除完整性约束修改函数以修改表结构。描述 ADD子句用于添加指定表的字段变量名、数据类型、宽度和完整性约束;DROP子句用于删除指定的完整性约束;MODIFY子句用于修改原始字段变量的值。示例4-3将分数字段变量(n,3)添加到课程分数表SC中。修改表SC添加分数N(3)列表结构,4.2.2修改表,8。format DROP DATABASE function删除指定数据库的结构和数据。描述小心使用。4.2.4删除表格式删除TAL

5、BE功能删除指定表的结构和内容(包括在该表上创建的索引)。描述如果只想删除表中的所有记录,应该使用DELETE语句。4.2.3删除数据库,9。数据操作语言是完成数据操作的命令,通常分为两种数据操作,统称为DML:数据检索(通常称为查询):查找所需的特定数据。数据修改:添加、删除和更改数据。数据处理语言通常由插入、删除、更新、选择等组成。因为SELETE是特殊的,它通常只作为查询语言出现。,4.3数据操作,10,格式1插入到值()格式2插入到来自数组|来自memvar函数的指定表文件的末尾添加一条记录。格式1将表达式表中的表达式值赋给中的相应字段。格式2将数组或内存变量的值分配给表文件中的字段。

6、描述如果某些字段名称没有出现在INTO子句中,新记录将在这些字段名称中采用空值(或默认值)。但是,必须注意,表定义中不为空的字段名不能为空。4.3.1插入记录,11:指定表文件中的字段。默认情况下,根据表文件中的字段按顺序分配值。指定要追加的记录的每个字段的值。示例4-4在表文件STUD的末尾添加三条记录。* * *通过表达式* *将第一条记录插入学习(学生编号、姓名、性别、班级名称、部门代码、地址、出生日期、是否为成员);数值(011110,李建国,男,0121,01,湖北武汉,09/28/02,t),12,尺寸数据8数据(1)=011103数据(2)=李宁数据(3)=女数据(4)=电013

7、4数据(5)=02数据(6)=江西九江数据(7)=05/06/85数据(8)=f。从阵列数据插入研究,* * *在阵列中添加第二条记录。 广西=02/21/84成员=.F .从记忆值列表插入到研究中,* * *以记忆变量* *的形式添加第三条记录,14,格式更新集=, SET子句用于指定列和修改值,WHERE用于指定更新的行,如果省略WHERE子句,则表示表中的所有行。描述更新操作也称为修改操作。例4-5在成绩表上课程编号为02的所有分数上加5分。更新供应链设置得分=得分5;WHERE课程编号=02,4.3.2更新记录命令,15,4.3.3删除记录,格式从WHERE删除功能从指定表中删除符合W

8、HERE条款条件的所有记录。如果DELETE语句中没有WHERE子句,表中的所有记录都将被删除。注意此处的删除是一种逻辑删除,即在删除的记录前添加删除标记“*”。例4-7删除STUD表中的所有男性记录。从种马中删除;其中性别=“男性”,16岁。数据管理(也称为数据控制)语言用于管理(或控制)用户的访问权限。它由GRANT和recovery命令组成。而Visual FoxPro 6没有这样的权限管理。4.4数据管理,17 . 4 . 5 SQL中的数据查询语句,数据库中的数据往往是用于查询的,所以数据查询是数据库的核心操作。在SQL语言中,查询语言中有一个查询命令,即SELECT语句。18,4.

9、5.1基本查询语句格式选择全部|区别于函数无条件查询。说明全部:表示显示所有查询记录,包括重复记录。DISTINCT:表示显示没有重复结果的记录。19,例4-8显示了STUD(学生信息数据表)中的所有记录。选择*;*在FROM STUD命令中表示输出显示所有字段,数据源是STUD表,表中的内容通过浏览显示。示例4-9在STUD(学生信息数据表)中显示所有学生编号及其对应的姓名,并可以同时删除重复的姓名。选择不同的学生编号、姓名;从STUD,20,例4-10显示SC(课程评分表)中的所有记录,并将分数乘以0.7。从sc中选择学生编号、课程编号、年级*0.7 AS年级,4.5.2带条件的查询语句(

10、WHERE)格式选择全部|不同于WHERE函数从表中查询满足条件的数据。说明它由一系列用“与”或“或”连接的条件表达式组成,条件表达式的格式如下:22,(1)。(2 ).(3) all () (4) any | some () (5) not介于and(6)not exists()(7)not in(8)not in()(9)not link,23 .SQL支持的关系运算符如下:“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“选择学号、姓名和性别;从学生性别=男性例4-12

11、显示学生身份、姓名和出生日期,其出生日期在学生表中的85岁之间。选择学生证、姓名和出生日期;来自螺柱;其中出生日期在1985年1月1日至1986年12月31日之间,24,例4-13显示了学生编号、姓名和学生出生日期。选择学生证、姓名和出生日期;来自螺柱;其中,名称类似于“李%”,25,4.5.3 SQL复杂查询,1连接查询描述通常,数据库中的多个表之间存在一些连接。当一个查询语句中同时包含两个或多个表时,该查询称为连接查询(也称为多表查询)。多个表之间的查询必须处理表之间的连接关系。选择所有|不同于,表2 2.其中,26,例4-14查询并显示每个学生的学号、姓名、各科成绩和课程名称。选择a .

12、学生编号,a .姓名,b .课程名称,c .年级;来自STUD a,COURSE b,SC c;其中,学生证=学生证。课程编号=课程编号示例4-15查询并显示每个学生所学的课程。选择螺柱。学生证,学习。名字,当然。课程名称;来自STUD,SC,课程;哪里学习。学生id=SC。学生证。课程id=课程。过程id,27,2连接问题在SQL语句中,FROM子句中提供了一个名为connection的子句,它分为内部连接和外部连接,而外部连接又可以分为左外部连接、右连接和所有外部连接。(1)内部连接内部连接是指包含所有满足条件的表的记录,也称为完全记录操作。以上两个例子是内部连接。示例4-16查询并显示每

13、个学生的学生人数、课程和课程分数。选择供应链。学生id,课程名称,SC。等级;来自供应链,当然;在哪里?课程号=课程。课程编号,28,如果采用内部连接,命令如下:选择a .学生编号,b .课程名称,年级;在课程编号=b的情况下,从SC a内部加入课程b。课程编号将获得完全相同的结果。(2)外部连接外部连接是指将两个表分为左表和右表。右连接是指连接到满足条件的右表的所有记录。左外连接是指连接左表中所有满足条件的记录。总外部连接是指满足条件表的连接的所有记录。嵌套查询在SQL语句中,SELECTFROMWHERE语句称为查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语条件中

14、的查询称为嵌套查询或子查询。示例4-17显示李宁所在班级的学生列表。选择学号、姓名和班级名称;来自螺柱;WHERE类名=(SELECT class name FROM STUDE WHERE name=李宁),30,4分组和计算查询格式选择所有|不同于WHERE组按ASC排序| desc函数包括排序、函数运算和谓词演算,31,例4-18在STUDE表中按出生日期降序显示学生编号、姓名和出生日期。选择学生证、姓名和出生日期;来自螺柱;按出生日期排序desc示例4-19按成绩的升序在SC表中显示学生编号、课程编号和成绩。选择学生编号、课程编号和年级;在册种姓;按年级排序,32,例4-20按班级分类

15、显示学生姓名、课程名称和年级,同一班级按年级排序。选择a .名称,a .班级名称,c .课程名称,b .成绩;来自STUD a,SC b,航向c;其中a .学生编号=B .学生编号,b .课程编号=C .课程编号;按班级名、年级排序;例4-21显示了学生人数、姓名、课程名称和成绩,分数在80到90之间。选择a .姓名,c .课程名称,b .成绩从学习a,SC b,课程c,其中a .学生id=B .学生id和b .课程id=C .课程id和b .成绩在80和90之间,33,例4-22显示计算机科学学生的成绩。选择a .姓名、a .部门代码、c .课程名称、b .年级;来自STUD a,SC b,航向c;其中,a .学生标识=B .学生标识,b .

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论