1、LOGO Visual FoxPro数据库设计与应用数据库设计与应用(第第3版版) 完整教学课件完整教学课件 LOGO 第第1 1章章 Visual FoxPro 6.0Visual FoxPro 6.0系统概述系统概述 第第1章章 Visual FoxPro 6.0系统概述系统概述 3 课程简介 学习学习Visual FoxProVisual FoxPro的最终目标是什么?的最终目标是什么? 掌握基本的数据库操作方法 理解程序设计的理念和基本方法 第第1章章 Visual FoxPro 6.0系统概述系统概述 4 1.1数据库系统的基本概念 为了通过计算机来管理类似的表,必须掌握以下两方面技
2、:为了通过计算机来管理类似的表,必须掌握以下两方面技: (1) 如何利用计算机创建一个表格用来存放数据;如何利用计算机创建一个表格用来存放数据; (2) 如何增加、删除、修改、查找或统计表格中的信息如何增加、删除、修改、查找或统计表格中的信息 数据库技术 1.1.数据库数据库 第第1章章 Visual FoxPro 6.0系统概述系统概述 5 1.1数据库系统的基本概念 数据库数据库 数据库(Database)是数据的集合,具体指按照一定的结 构模型,组织、存储在一起、能为多个用户共享的、与应 用程序相对独立的、存储在计算机存储设备上的相关的数 据集合。 层次模型层次模型 学生甲学生乙学生丙学
3、生丁 课程 1课程 2课程 3课程 4 实 例 网状模型网状模型 关系模型关系模型 第第1章章 Visual FoxPro 6.0系统概述系统概述 6 1.1数据库系统的组成 2.2.数据库管理系统数据库管理系统 数据库管理系统(Database Management System)负责数据 库的数据组织、数据操纵、数据维护和数据服务等 数据库管理系统是数据库系统的核心 第第1章章 Visual FoxPro 6.0系统概述系统概述 7 1.1数据库系统的基本概念 3.3.数据库系统(数据库系统(DBSDBS) 数据库系统(Database System)由数据库、数据库管理 系统、数据库管理
4、员、硬件平台和软件平台等构成,是以 数据库管理系统为核心的完整的运行实体。 第第1章章 Visual FoxPro 6.0系统概述系统概述 8 1.1数据库系统的基本概念 4.4.数据库应用系统(数据库应用系统(DBASDBAS) 数据库应用系统(Database Application System)是在 数据库系统基础上进行应用开发而形成的一个应用系统。 第第1章章 Visual FoxPro 6.0系统概述系统概述 9 练习 【例例1 1】数据库(数据库(DBDB)、数据库系统()、数据库系统(DBSDBS)和数据库管理系统)和数据库管理系统 (DBMSDBMS)之间的关系是)之间的关系
5、是_。 A ADBDB包含包含DBSDBS和和DBMSDBMS B BDBMSDBMS包含包含DBDB和和DBSDBS C CDBSDBS包含包含DBDB和和DBMSDBMS D D没有任何关系没有任何关系 解析:数据库系统(DBS)由5部分组成:硬件系统、数据库集合 (DB)、数据库管理系统(DBMS)及相关软件、数据库管理员和 用户。答案:C 【例例2 2】Visual FoxPro DBMSVisual FoxPro DBMS是是_。 A A操作系统的一部分操作系统的一部分 B B操作系统支持下的系统软件操作系统支持下的系统软件 C C一种编译程序一种编译程序 D D一种操作系统一种操作
6、系统 解析:Visual FoxPro是一种在微机上运行的数据库管理系统软件, 而DBMS(即数据库管理系统)是为数据库的建立、使用和维护而 配置的软件。DBMS利用了操作系统提供的输入/输出控制和文件访 问功能,所以它需要在操作系统的支持下运行。答案:B 第第1章章 Visual FoxPro 6.0系统概述系统概述 10 测试 1.1.数据库系统的核心是数据库系统的核心是_。 A A数据模型数据模型 B B数据库管理系统数据库管理系统 C C软件工具软件工具 D D数据库数据库 答案:B 2 2数据库系统由数据库、数据库系统由数据库、_组成。组成。 A ADBMSDBMS、应用程序、支持数
7、据库运行的软、硬件环境和、应用程序、支持数据库运行的软、硬件环境和DBADBA B BDBMSDBMS和和DBADBA C CDBMSDBMS、应用程序和、应用程序和DBADBA D DDBMSDBMS、应用程序、支持数据库运行的软件环境和、应用程序、支持数据库运行的软件环境和DBADBA 答案:A 第第1章章 Visual FoxPro 6.0系统概述系统概述 11 1.2.11.2.1关系模型关系模型 以二维表的形式表示实体及实体间联系的数据模型。二维表简称为表,以二维表的形式表示实体及实体间联系的数据模型。二维表简称为表, 一个二维表就是一个关系,一个关系的逻辑结构就是一张二维表。一个二
8、维表就是一个关系,一个关系的逻辑结构就是一张二维表。 属性(字段)属性(字段)field:垂直列,字段名。垂直列,字段名。 元组(记录)元组(记录)record:水平行,具体记录。水平行,具体记录。 域:属性的取值范围称为域。域:属性的取值范围称为域。 1.2 关系数据库 第第1章章 Visual FoxPro 6.0系统概述系统概述 12 1.2 关系数据库 键:键:在关系表中能在关系表中能唯一唯一标识元组的最小属性集称为键,也称为码标识元组的最小属性集称为键,也称为码 主键:主键:在关系表中可以有多个键,用户选取使用的键为主键在关系表中可以有多个键,用户选取使用的键为主键 第第1章章 Vi
9、sual FoxPro 6.0系统概述系统概述 13 1.2 关系数据库 1.2.21.2.2关系运算关系运算 1.1.投影:一种纵向的操作,即从列的角度进行运算,它可以根据用户的投影:一种纵向的操作,即从列的角度进行运算,它可以根据用户的 要求从关系中选取若干个属性(字段)组成一个新的关系。新关系所包要求从关系中选取若干个属性(字段)组成一个新的关系。新关系所包 含的属性的个数往往比原来的关系少,或者属性的排列顺序不同。含的属性的个数往往比原来的关系少,或者属性的排列顺序不同。投影投影 运算可以改变关系的结构。运算可以改变关系的结构。 例如,对“学生”关系中的“专业”属性进行投影运算,得到无
10、重复元例如,对“学生”关系中的“专业”属性进行投影运算,得到无重复元 组的新关系“学生组的新关系“学生1”1”。 第第1章章 Visual FoxPro 6.0系统概述系统概述 14 1.2 关系数据库 2.2.选择:是一种横向的操作,即从行的角度进行运算,它可以根据用户选择:是一种横向的操作,即从行的角度进行运算,它可以根据用户 的要求从关系中筛选出满足一定条件的元组(记录)。选择运算可以改的要求从关系中筛选出满足一定条件的元组(记录)。选择运算可以改 变关系表中元组的个数,但不影响关系的结构。变关系表中元组的个数,但不影响关系的结构。 例如,在“学生”关系中选择出“性别”为“男”的学生,得
11、到新的关例如,在“学生”关系中选择出“性别”为“男”的学生,得到新的关 系“学生系“学生2”2” 第第1章章 Visual FoxPro 6.0系统概述系统概述 15 1.2 关系数据库 3.3.连接:是两个关系的横向结合操作,它可以根据用户的要求将两个关连接:是两个关系的横向结合操作,它可以根据用户的要求将两个关 系拼接成满足连接条件的新关系。系拼接成满足连接条件的新关系。 例如,从“学生”和“选课”两个关系中查询学生的学号、姓名、课程例如,从“学生”和“选课”两个关系中查询学生的学号、姓名、课程 号和成绩信息。得到新的关系“学生号和成绩信息。得到新的关系“学生3”3” 第第1章章 Visu
12、al FoxPro 6.0系统概述系统概述 16 练习 【例例3 3】在在Visual FoxProVisual FoxPro中“表”是指中“表”是指_。 A A报表报表 B B关系关系 C C表格表格 D D表单表单 【例例4 4】从关系模式中指定若干个属性组成新的关系的运算称从关系模式中指定若干个属性组成新的关系的运算称_。 A A连接连接 B B投影投影 C C选择选择 D D排序排序 【例例5 5】在下列在下列4 4个选项中,不属于基本关系运算的是个选项中,不属于基本关系运算的是_。 A A连接连接 B B投影投影 C C选择选择 D D排序排序 【例例6 6】操作对象只能是一个表的关
13、系运算是操作对象只能是一个表的关系运算是_。 A A连接和选择连接和选择 B B连接和投影连接和投影 C C选择和投影选择和投影 D D自然连接和选择自然连接和选择 B D B C 第第1章章 Visual FoxPro 6.0系统概述系统概述 17 练习 【例例7 7】在教师表中,如果要找出职称为“教授”的教师,所采用在教师表中,如果要找出职称为“教授”的教师,所采用 的关系运算是的关系运算是_。 A A选择选择 B B投影投影 C C联接联接 D D自然联接自然联接 【例例8 8】下列关于关系的说法正确的是下列关于关系的说法正确的是_。 A A列的次序非常重要列的次序非常重要 B B行的次
14、序非常重要行的次序非常重要 C C列的次序无关紧要列的次序无关紧要 D D关键字必须指定为第一列关键字必须指定为第一列 【例例9 9】设有表示学生选课的三张表,学生设有表示学生选课的三张表,学生S S(学号,姓名,性别,(学号,姓名,性别, 年龄,身份证号),课程年龄,身份证号),课程C C(课号,课名),选课(课号,课名),选课SCSC(学号,课号,(学号,课号, 成绩),则表成绩),则表SCSC的关键字(键或码)是的关键字(键或码)是_。 A A课号课号, ,成绩成绩 B B学号学号, ,成绩成绩 C C学号学号, ,课号课号 D D学号学号, ,姓名姓名, ,成绩成绩 A C C 第第1
15、章章 Visual FoxPro 6.0系统概述系统概述 18 1.3 VFP 6.0系统的特点 1.1. 良好的用户界面良好的用户界面 2.2. 数据库的操作更加方便数据库的操作更加方便 3.3. 强大的查询与管理功能强大的查询与管理功能 4.4. 支持面向对象的程序设计支持面向对象的程序设计 5.5. 开发与维护更加方便开发与维护更加方便 6.6. 集成开发实现了数据共享集成开发实现了数据共享 7.7. 支持网络应用支持网络应用 第第1章章 Visual FoxPro 6.0系统概述系统概述 19 1.4 VFP 6.0启动与退出 1.4.1 Visual FoxPro 6.01.4.1
16、Visual FoxPro 6.0的启动的启动 启动启动Visual FoxProVisual FoxPro通常采用以下三种方式。通常采用以下三种方式。 (1) (1) 从“开始”菜单启动从“开始”菜单启动 (2) (2) 双击桌面上的双击桌面上的Visual FoxPro 6.0Visual FoxPro 6.0快捷方式图标快捷方式图标 (3) (3) 双击与双击与Visual FoxPro 6.0Visual FoxPro 6.0关联的文件关联的文件 第第1章章 Visual FoxPro 6.0系统概述系统概述 20 1.4.2 Visual FoxPro 6.01.4.2 Visual
17、 FoxPro 6.0的退出的退出 退出退出Visual FoxProVisual FoxPro系统经常使用以下几种方法:系统经常使用以下几种方法: (1 1)选择“文件”)选择“文件”“退出”命令。“退出”命令。 (2 2)在系统主界面窗口中单击“关闭”按钮。)在系统主界面窗口中单击“关闭”按钮。 (3 3)在“命令”窗口中输入)在“命令”窗口中输入QUITQUIT命令,并按命令,并按 键。键。 (4 4)按)按组合键。组合键。 1.4 VFP 6.0启动与退出 第第1章章 Visual FoxPro 6.0系统概述系统概述 21 1.5 Visual FoxPro的用户界面 Visual
18、FoxPro 6.0Visual FoxPro 6.0用户界面用户界面 菜单栏菜单栏 命令窗口命令窗口 标题栏标题栏 工具栏工具栏 工作区工作区 状态栏状态栏 第第1章章 Visual FoxPro 6.0系统概述系统概述 22 1.6 VFP工作方式和命令规则 1.6.1 Visual FoxPro 6.01.6.1 Visual FoxPro 6.0的工作方式的工作方式 1.1.交互操作方式交互操作方式 命令操作命令操作 可视化操作可视化操作 2.2.程序执行方式程序执行方式 第第1章章 Visual FoxPro 6.0系统概述系统概述 23 1.6 VFP工作方式和命令规则 1.6.2
19、1.6.2Visual FoxProVisual FoxPro的命令规则的命令规则 命令方式是命令方式是VFPVFP中常用的工作方式,中常用的工作方式,VFPVFP中的命令都有固定的中的命令都有固定的 格式,必须按相应的格式和语法规则书写和使用,否则系统格式,必须按相应的格式和语法规则书写和使用,否则系统 无法识别和执行。无法识别和执行。 1 1Visual FoxProVisual FoxPro命令的基本格式命令的基本格式 1 1)命令格式中语法标识符的意义和用法)命令格式中语法标识符的意义和用法 :必选项,表示命令中必须选择该项,不可省略。:必选项,表示命令中必须选择该项,不可省略。 :可
20、选项,表示可根据实际需要选用或省略该项内容。:可选项,表示可根据实际需要选用或省略该项内容。 | | :任选项,表示根据实际需要任选且必选其中一项内容。:任选项,表示根据实际需要任选且必选其中一项内容。 注意:以上符号表示各选项在语句中的地位。在输入命令时,注意:以上符号表示各选项在语句中的地位。在输入命令时, 不能包含上述这些语法标识符。不能包含上述这些语法标识符。 第第1章章 Visual FoxPro 6.0系统概述系统概述 24 1.6 VFP工作方式和命令规则 2 2)命令动词)命令动词 命令动词一般是要执行的操作所对应的英文单词,是一条命令命令动词一般是要执行的操作所对应的英文单词
21、,是一条命令 中必不可少的部分。一条命令必须以命令动词开头,当此命令中必不可少的部分。一条命令必须以命令动词开头,当此命令 动词超过动词超过4 4个字母时,在使用时可以只写前四个字母,系统会个字母时,在使用时可以只写前四个字母,系统会 自动识别。自动识别。 3 3)范围子句)范围子句 范围子句用于限定命令操作的记录范围。范围子句包括如下四范围子句用于限定命令操作的记录范围。范围子句包括如下四 种选择范围。种选择范围。 ALLALL:对当前表中所有记录操作。:对当前表中所有记录操作。 RECORD RECORD :仅对当前表中记录号为:仅对当前表中记录号为n n的记录操作。的记录操作。 NEXT
22、 NEXT :对当前表中从当前记录开始的连续:对当前表中从当前记录开始的连续n n条记录操作。条记录操作。 RESTREST:对当前表中从当前记录开始到表尾的所有记录操作。:对当前表中从当前记录开始到表尾的所有记录操作。 第第1章章 Visual FoxPro 6.0系统概述系统概述 25 1.6 VFP工作方式和命令规则 4 4)条件子句)条件子句 条件子句的作用是以指定的逻辑条件为依据,从表中选择符合条件的记条件子句的作用是以指定的逻辑条件为依据,从表中选择符合条件的记 录。它对应于关系运算的选择运算。条件子句有两种:录。它对应于关系运算的选择运算。条件子句有两种: FOR FOR :对指
23、定范围内所有满足条件的记录进行操作。:对指定范围内所有满足条件的记录进行操作。 WHILE WHILE :在指定范围内按顺序对满足条件的记录操作,直到遇到:在指定范围内按顺序对满足条件的记录操作,直到遇到 第一个不满足条件的记录为止。第一个不满足条件的记录为止。 注意:注意: 由一个逻辑表达式或关系表达式构成,其值为逻辑型数据。由一个逻辑表达式或关系表达式构成,其值为逻辑型数据。 (5 5)字段名表子句)字段名表子句 字段名表子句用来限制只对指定的若干个字段进行操作。字段名表子句字段名表子句用来限制只对指定的若干个字段进行操作。字段名表子句 的格式如下:的格式如下: FIELDS FIELDS
24、 其中字段名表由若干个以逗号分隔的字段名构成,默认情况下是对当前其中字段名表由若干个以逗号分隔的字段名构成,默认情况下是对当前 表中的所有字段进行操作,但不包括备注型字段和通用型字段。表中的所有字段进行操作,但不包括备注型字段和通用型字段。 第第1章章 Visual FoxPro 6.0系统概述系统概述 26 1.6 VFP工作方式和命令规则 2. Visual FoxPro2. Visual FoxPro命令的书写规则命令的书写规则 (1 1)命令必须以命令动词开头,命令中其他各子句的次序)命令必须以命令动词开头,命令中其他各子句的次序 可以任意排列。可以任意排列。 (2 2)命令动词与子句
25、之间、各子句之间以空格分隔。)命令动词与子句之间、各子句之间以空格分隔。 (3 3)命令中的字符不区分大小写。)命令中的字符不区分大小写。 (4 4)命令中的所有字符和标点符号都必须在英文半角状态)命令中的所有字符和标点符号都必须在英文半角状态 下输入。下输入。 (5 5)一条命令可以分成多行书写,用分号“)一条命令可以分成多行书写,用分号“;”;”作为续行标作为续行标 志。志。 第第1章章 Visual FoxPro 6.0系统概述系统概述 27 1.7 VFP系统环境配置 1.1.使用“选项”对话框使用“选项”对话框 1 1)设置默认目录)设置默认目录 VFPVFP默认的工作目录是安装默认
26、的工作目录是安装VFPVFP系统时用户和系统所确定的安系统时用户和系统所确定的安 装目录,即存放装目录,即存放VFPVFP系统文件的目录,通常是系统文件的目录,通常是“C:C: Program Program FilesFiles Microsoft Visual StudioMicrosoft Visual Studio Vfp98”Vfp98”。在使用在使用VFPVFP中产中产 生的所有文件将存储在此目录下,为了避免与系统文件混淆,生的所有文件将存储在此目录下,为了避免与系统文件混淆, 用户应定义自己的工作目录,将用户创建的文件存储在自己用户应定义自己的工作目录,将用户创建的文件存储在自己
27、 的目录下。的目录下。 选择“工具”选择“工具”“选项”命令,弹出“选“选项”命令,弹出“选 项”对话框,单击“文件位置”选项卡,项”对话框,单击“文件位置”选项卡, 在此对话框中,可以设置默认目录。在此对话框中,可以设置默认目录。 第第1章章 Visual FoxPro 6.0系统概述系统概述 28 1.7 VFP系统环境配置 【例例1.11.1】 设置默认目录为设置默认目录为D:D: 教学管理系统教学管理系统 在在D D盘建立“教学管理系统”文件夹。盘建立“教学管理系统”文件夹。 1 2 3 7 8 当前设置保存当前设置保存 为为V FP的默认的默认 (永久)设置(永久)设置 4 D:教学
28、管理系统教学管理系统 5 6 D:教学管理系统教学管理系统 第第1章章 Visual FoxPro 6.0系统概述系统概述 29 1.7 VFP系统环境配置 (2 2)设置日期和时间的显示方式)设置日期和时间的显示方式 VFPVFP默认的日期显示方式为“默认的日期显示方式为“mm/dd/yy”mm/dd/yy”,默认的时间显示方式为,默认的时间显示方式为1212小小 时制,可以根据需要重新设置时期和时间的显示方式。时制,可以根据需要重新设置时期和时间的显示方式。 【例例1.21.2】 设置日期的显示格式为“年月日”,设置日期的分隔符为设置日期的显示格式为“年月日”,设置日期的分隔符为 “- -
29、”,年份用,年份用4 4位显表示,时间的显示格式为位显表示,时间的显示格式为2424小时的表示形式。小时的表示形式。 1 2 3 4 5 第第1章章 Visual FoxPro 6.0系统概述系统概述 30 1.7 VFP系统环境配置 2 2使用使用SETSET命令设置命令设置 Visual FoxProVisual FoxPro提供了一系列以提供了一系列以SETSET开头的命令,用户可以随时在命令窗开头的命令,用户可以随时在命令窗 口中输入执行这些命令,改变系统当前的环境配置参数。口中输入执行这些命令,改变系统当前的环境配置参数。 例如:例如: SET DATE TO ANSI 1; ,WI
30、THWITH,FOR,FOR 【功能功能】在指定范围内满足条件的记录中,用表达式的值替换对应的字在指定范围内满足条件的记录中,用表达式的值替换对应的字 段值。缺省“范围”时,默认对当前记录操作。段值。缺省“范围”时,默认对当前记录操作。 【例例3.153.15】将“学生”表中所有性别为”女”的入学成绩增加将“学生”表中所有性别为”女”的入学成绩增加1010分。分。 USE USE 学生学生 REPLACE ALL REPLACE ALL 入学成绩入学成绩WITH WITH 入学成绩入学成绩+10 FOR +10 FOR 性别性别=”=”女”女” 第第3章章 数据表与数据库数据表与数据库 132
31、 3.3数据库表的操作 7.7.追加和插入表记录追加和插入表记录 追加记录前,要打开表。追加记录前,要打开表。 1 1)追加记录)追加记录 【格式格式1 1】APPEND BLANKAPPEND BLANK 【功能功能】向打开的表文件末尾添加新记录。向打开的表文件末尾添加新记录。 【说明说明】BLANKBLANK子句表示在表的末尾追加一条空白记录,记录内容可用子句表示在表的末尾追加一条空白记录,记录内容可用 EDITEDIT或或BROWSEBROWSE等命令输入。等命令输入。 【格式格式2 2】APPEND FROM APPEND FROM FIELDS FIELDS FOR FOR 【功能功
32、能】从指定的表文件中读取数据并追加到当前表文件的末尾。从指定的表文件中读取数据并追加到当前表文件的末尾。 【说明说明】 为提供数据的表名,而当前打开的数据表为被追加为提供数据的表名,而当前打开的数据表为被追加 的数据表。的数据表。 第第3章章 数据表与数据库数据表与数据库 133 3.3数据库表的操作 7.7.追加和插入表记录追加和插入表记录 【例例3.163.16】现有一空表“学生现有一空表“学生1”1”,其表结构与“学生”表,其表结构与“学生”表 结构相同,要求将“学生”表的记录追加到“学生结构相同,要求将“学生”表的记录追加到“学生1”1”表中。表中。 USE USE 学生学生1 1 A
33、PPEND FROM APPEND FROM 学生学生 LISTLIST 第第3章章 数据表与数据库数据表与数据库 134 3.3数据库表的操作 2 2)插入记录)插入记录 【格式格式】INSERT BEFORE BLANKINSERT BEFORE BLANK 【功能功能】在当前表中插入一条新记录。在当前表中插入一条新记录。 【说明说明】 (1 1)BEFOREBEFORE:在当前记录前插入新记录,缺省此项,则在当前记录之:在当前记录前插入新记录,缺省此项,则在当前记录之 后插入新记录。后插入新记录。 (2 2)BLANKBLANK:插入一条空白记录,可用:插入一条空白记录,可用EDITED
34、IT、BROWSEBROWSE等命令添加内容。等命令添加内容。 【例例3.173.17】在学生表第在学生表第4 4条记录前插入一条新记录。条记录前插入一条新记录。 USE USE 学生学生 GO 3 ; ASCENDING|DESCENDINGASCENDING|DESCENDING 【功能功能】为打开的文件重新指定控制索引。为打开的文件重新指定控制索引。 【说明说明】 :指定打开索引文件时“索引文件表”中的索引文件序号:指定打开索引文件时“索引文件表”中的索引文件序号 为控制索引。为控制索引。 TAGTAG :指定该索引标识为控制索引。:指定该索引标识为控制索引。 ASCENDING|DES
35、CENDINGASCENDING|DESCENDING:重新指定索引文件为升序或降序。:重新指定索引文件为升序或降序。 SET ORDER TOSET ORDER TO或或SET ORDER TO 0SET ORDER TO 0:取消当前的控制索引,表中记录按物:取消当前的控制索引,表中记录按物 理顺序显示。理顺序显示。 第第3章章 数据表与数据库数据表与数据库 147 3.5 和索引操作相关的命令 【例例3.263.26】“学生”表中已建立索引,包含“学号”、“姓学生”表中已建立索引,包含“学号”、“姓 名”两个索引标识。利用命令按不同的索引标识显示记录。名”两个索引标识。利用命令按不同的索
36、引标识显示记录。 USE USE 学生学生 ,AS ; FROM WHERE 第第4章章 SQL关系数据库查询语言关系数据库查询语言 182 4.2 SQL的数据查询 1. 1. 比较查询比较查询 SELECT 姓名,民族,入学成绩 FROM 学生 WHERE 民族=汉 【例4.5】查询“学生”表中汉族学生的姓名、民族和入学成绩。 【例4.6】查询“学生”表中少数民族学生的姓名、民族和入学成绩。 SELECT 姓名,民族,入学成绩 FROM 学生 WHERE 民族!=汉 等价于 SELECT 姓名,民族,入学成绩 FROM 学生 WHERE NOT 民族=汉 第第4章章 SQL关系数据库查询语
37、言关系数据库查询语言 183 4.2 SQL的数据查询 2. 2. 多重条件查询多重条件查询 SELECT 学号,姓名,入学成绩 FROM 学生; WHERE 专业=外语 AND 入学成绩520 【例4.7】在“学生”表中查询外语专业中入学成绩小于520 分的学生的学号、姓名、和入学成绩信息。 第第4章章 SQL关系数据库查询语言关系数据库查询语言 184 4.2 SQL的数据查询 3. 3. 范围查询范围查询 【格式】BETWEEN AND 【说明】其含义是在下界表达式和上界表达式之间,且包含下 界表达式的值和上界表达式的值。 SELECT 学号,姓名,入学成绩 FROM 学生; WHERE
38、 入学成绩 BETWEEN 500 AND 520 【例4.8】查询入学成绩在500分到520分之间(包含500分和 520分)的学生的学号、姓名和入学成绩信息。 此查询等价于: SELECT 学号,姓名,入学成绩 FROM 学生; WHERE 入学成绩=500 AND 入学成绩=520 第第4章章 SQL关系数据库查询语言关系数据库查询语言 185 4.2 SQL的数据查询 SELECT 学号,姓名,入学成绩 FROM 学生; WHERE 入学成绩 NOT BETWEEN 500 AND 520 【例4.9】查询入学成绩小于500或大于520的学生信息。 第第4章章 SQL关系数据库查询语言
39、关系数据库查询语言 186 4.2 SQL的数据查询 4.4.字符串匹配查询字符串匹配查询 【格式】 LIKE 【说明】在字符串匹配查询中可以使用通配符。 %(百分号):表示任意长度的字符串; _(下划线):表示任意单个字符,查询汉字时,每个_ (下划线)表示一个汉字。 第第4章章 SQL关系数据库查询语言关系数据库查询语言 187 4.2 SQL的数据查询 【例4.10】查询“学生”表中所有姓王的学生信息。 SELECT * FROM 学生 WHERE 姓名 LIKE 王% 等价于: SELECT * FROM 学生 WHERE 姓名= 王 【例4.11】查询“课程”表中所有课程名中含有“大
40、学”两个字的课程名。 SELECT 课程名 FROM 课程 WHERE 课程名 LIKE %大学% 等价于: SELECT 课程名 FROM 课程 WHERE 大学$课程名 第第4章章 SQL关系数据库查询语言关系数据库查询语言 188 4.2 SQL的数据查询 SELECT * FROM 教师 WHERE 党员否 等价于: SELECT * FROM 教师 WHERE 党员否=.T. 【例4.12】查询“教师”表中所有党员教师的信息。 5.5.逻辑型字段条件查询逻辑型字段条件查询 第第4章章 SQL关系数据库查询语言关系数据库查询语言 189 4.2 SQL的数据查询 SELECT 学号,姓
41、名,YEAR(DATE()-YEAR(出生日期) AS 年龄 FROM 学生; WHERE YEAR(DATE()-YEAR(出生日期)19 【例4.13】查询学生表中年龄小于19岁学生的学号、姓名和年龄。 6.6.虚拟字段条件查询虚拟字段条件查询 年龄等于当前的年份减去出生日期的年份, 即YEAR(DATE()-YEAR(出生日期)。 注意:WHERE语句后不能使用 虚拟字段进行条件限定,即条件 不能写成“年龄19”。 第第4章章 SQL关系数据库查询语言关系数据库查询语言 190 4.2 SQL的数据查询 4.2.4 4.2.4 排序查询排序查询 【格式】 SELECT TOPPERCEN
42、T ; FROM ; ORDER BY|ASC|DESC ; ,|ASC|DESC 【说明】(1)ORDER BY语句后可以使用多个字段名(包括虚 拟字段)或字段编号,但不能使用任何运算表达式,即不能按 某个表达式的运算结果进行排序。 (2)ASC为升序排列,DESC为降序排列,默认为升序排列。 (3)TOP PERCENT语句用于显示排序之后的前几条 记录或前百分之多少条记录。 第第4章章 SQL关系数据库查询语言关系数据库查询语言 191 4.2 SQL的数据查询 【例例4.144.14】查询学生的学号、姓名和入学成绩,按入学成绩降序排列。查询学生的学号、姓名和入学成绩,按入学成绩降序排列
43、。 SELECT SELECT 学号学号, ,姓名姓名, ,入学成绩入学成绩 FROM FROM 学生学生 ; ; ORDER BY ORDER BY 入学成绩入学成绩 DESCDESC ORDER BY语句后也可以使用字段编号。 (1)若SELECT后接*,该编号为原始表中的字段序号,如: SELECT * FROM 学生 ORDER BY 2 ORDER BY 入学成绩,出生日期 DESC 此查询等价于: SELECT * FROM 学生 WHERE 专业=物理; ORDER BY 7,5 DESC 第第4章章 SQL关系数据库查询语言关系数据库查询语言 193 4.2 SQL的数据查询
44、【例例4.164.16】查询学生表中年龄小于查询学生表中年龄小于1919岁学生的学号、姓名和年岁学生的学号、姓名和年 龄信息,查询结果按年龄升序排列。龄信息,查询结果按年龄升序排列。 SELECT SELECT 学号学号, ,姓名姓名,YEAR(DATE(),YEAR(DATE()- -YEAR(YEAR(出生日期出生日期) AS ) AS 年龄年龄; ; FROM FROM 学生学生; ; WHERE WHERE YEAR(DATE()YEAR(DATE()- -YEAR(YEAR(出生日期出生日期) ) 19;19; ORDER BY ORDER BY 年龄年龄 【注意注意】WHEREWH
45、ERE语句后不能使用虚拟字段,但可以使用运算表达式语句后不能使用虚拟字段,但可以使用运算表达式; ORDER BYORDER BY语句后不能使用运算表达式,但可以使用虚拟字段。语句后不能使用运算表达式,但可以使用虚拟字段。 第第4章章 SQL关系数据库查询语言关系数据库查询语言 194 4.2 SQL的数据查询 【例例4.174.17】查询入学成绩前三名的学生的学号、姓名和入学成绩信息。查询入学成绩前三名的学生的学号、姓名和入学成绩信息。 SELECT SELECT TOP 3TOP 3 学号学号, ,姓名姓名, ,入学成绩入学成绩 FROM FROM 学生学生; ; ORDER BY ORD
46、ER BY 入学成绩入学成绩 DESCDESC 【例例4.184.18】查询“学生”表中入学成绩偏低的查询“学生”表中入学成绩偏低的30%30%的学生信息。的学生信息。 SELECT SELECT TOP 30 PERCENTTOP 30 PERCENT * FROM * FROM 学生学生 ORDER BYORDER BY 入学成绩入学成绩 SELECT * SELECT * TOP 30 PERCENTTOP 30 PERCENT FROM FROM 学生学生 ORDER BYORDER BY 入学成绩入学成绩 【注意注意】TOPTOP语句要与语句要与ORDER BYORDER BY语句同时使用才有效。语句同时使用才有效。 第第4章章 SQL关系数据库查询语言关系数据库查询语言 195 4.2 SQL的数据查询 【例例4.194.19】在“学生”表中查询年龄最大的前在“学生”表中查询年龄最大的前2 2名学生的姓名和名学生的姓名和 出生日期,查询结果按年龄降序排列。出生日期,查询结果按年龄降序排列。 SELECT TOP 2 SELECT TOP 2 姓名姓名, ,出生日期出生日期 FROM FROM 学生学生; ; ORDE