1、第第4章章 数据处理与数据处理与SQL 10:364.1 查询文件的创建和使用查询文件的创建和使用4.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询4.1.2 4.1.2 查询文件的修改查询文件的修改4.1.3 4.1.3 利用查询向导创建查询利用查询向导创建查询 三种方法创建查询文件:三种方法创建查询文件: 使用查询设计器使用查询设计器 使用查询向导使用查询向导 直接编写直接编写SELECT-SQLSELECT-SQL语句(语句(4.24.2介绍)介绍)第第4章章 数据处理与数据处理与SQL 10:364.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询 (
2、1)(1)启动查询设计器启动查询设计器 常用方法:常用方法:v使用使用项目管理器项目管理器:打开项目管理器,在:打开项目管理器,在“数据数据”选选项卡中选定项卡中选定“查询查询”后单击后单击“新建新建” v从从“文件文件”菜单菜单或或常用工具栏常用工具栏选择选择“新建新建”v使用命令:使用命令:CREATE QUERYCREATE QUERY第第4章章 数据处理与数据处理与SQL 10:364.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询 (2) (2) 添加数据源添加数据源 查询设计器被启动的同时弹出查询设计器被启动的同时弹出“添加表或视添加表或视图图”对话框,用于添加查
3、询的数据源。对话框,用于添加查询的数据源。 第第4章章 数据处理与数据处理与SQL 10:36(3)(3)在查询设计器中建立查询在查询设计器中建立查询v “字段字段”选项卡:选项卡:指定查询输出列指定查询输出列v “联接联接”选项卡:选项卡:设置表之间的联接关系设置表之间的联接关系v “筛选筛选”选项卡:选项卡:指定记录筛选的条件指定记录筛选的条件v “排序依据排序依据”选项卡:选项卡:指定记录排序的依据指定记录排序的依据v “分组依据分组依据”选项卡:选项卡:指定记录分组的依据指定记录分组的依据v “杂项杂项”选项卡:选项卡:设置查询结果中可否包含重设置查询结果中可否包含重复的记录,以及对查
4、询记录的数目进行限制复的记录,以及对查询记录的数目进行限制 4.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询 第第4章章 数据处理与数据处理与SQL 10:364.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询(4)(4)保存查询文件保存查询文件(扩展名为扩展名为QPRQPR) 常用方法:从常用方法:从“文件文件”菜单或常用工具栏选择菜单或常用工具栏选择“保保存存”(5)(5)运行查询文件,查看查询结果运行查询文件,查看查询结果 常用方法:常用方法:v“查询,运行查询查询,运行查询” 或或常用工具栏中的常用工具栏中的“运行运行”v使用项目管理器使用项目管理
5、器v使用命令:使用命令:DO QUERY DO QUERY 第第4章章 数据处理与数据处理与SQL 10:364.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询 例例4.14.1(单表查询)(单表查询) 查询查询studentstudent表中各专业非定向学生的表中各专业非定向学生的入学平均分,并按专业的升序显示。入学平均分,并按专业的升序显示。 第第4章章 数据处理与数据处理与SQL 10:364.1.1 4.1.1 利用查询设计器创建查询利用查询设计器创建查询 例例4.24.2(多表查询)(多表查询) 根据根据studentstudent表和表和gradegrade表,查
6、询选修表,查询选修“0200102001”课程的所有学生的学号,姓名和课程的所有学生的学号,姓名和成绩,并按成绩的降序显示。成绩,并按成绩的降序显示。第第4章章 数据处理与数据处理与SQL 10:364.1.2 4.1.2 查询文件的修改查询文件的修改打开查询文件的常用方法打开查询文件的常用方法v使用使用项目管理器项目管理器(若查询文件已建在某一项目中)(若查询文件已建在某一项目中)v从从“文件文件”菜单菜单或或常用工具栏选择常用工具栏选择“打开打开”v使用使用命令命令:MODIFY QUERY QPRMODIFY QUERY 第第4章章 数据处理与数据处理与SQL 10:364.1.2 4.
7、1.2 查询文件的修改查询文件的修改选择查询结果的输出去向选择查询结果的输出去向 常用方法常用方法:“查询,查询去向查询,查询去向” 或或: : “查询设计器查询设计器”工具栏中的工具栏中的 “查询去向查询去向” 七种输出去向:七种输出去向:第第4章章 数据处理与数据处理与SQL 10:364.1.3 4.1.3 利用查询向导创建查询利用查询向导创建查询 查询向导类型查询向导类型v查询向导:查询向导:创建标准的单表或多表查询,在浏览创建标准的单表或多表查询,在浏览窗口中显示查询结果窗口中显示查询结果 打开查询向导常用操作:打开查询向导常用操作: l使用项目管理器使用项目管理器l使用使用“文件文
8、件”菜单、菜单、“工具工具”菜单或常用工具栏菜单或常用工具栏v交叉表向导交叉表向导 (了解)(了解)v图形向导图形向导 (了解)(了解)第第4章章 数据处理与数据处理与SQL 10:36结构化查询语言结构化查询语言SQLSQL-Structured Query Language-Structured Query Language) SQLSQL特点:特点:v一体化一体化 v高度非过程化高度非过程化v简洁但功能强大简洁但功能强大 v关系数据库系统的国际标准语言关系数据库系统的国际标准语言 4.2 4.2 结构化查询语言(结构化查询语言(SQL) 第第4章章 数据处理与数据处理与SQL 10:36
9、 4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句 4.2.2 4.2.2 数据定义功能及语句数据定义功能及语句 4.2.3 4.2.3 数据操纵功能及语句数据操纵功能及语句 4.2 4.2 结构化查询语言(结构化查询语言(SQL) 第第4章章 数据处理与数据处理与SQL 10:36SQLSQL的核心是数据查询语句的核心是数据查询语句SELECT-SQLSELECT-SQL。通过通过“查询设计器查询设计器”或或“查询向导查询向导”生成的查生成的查询文件内容就是一条询文件内容就是一条SELECT-SQLSELECT-SQL语句。语句。在在“查询设计器查询设计器”环境中查看当前查询文件
10、内环境中查看当前查询文件内 SECTCT-SQLSECTCT-SQL语句的方法:语句的方法: “查询,查看查询,查看SQLSQL” 或或 “查询设计器查询设计器”工具栏中的工具栏中的 “显示显示SQLSQL窗口窗口”4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:364.2.1 4.2.1 数据查询功能及语句数据查询功能及语句例例4.14.1的的SQLSQL语句语句例例4.24.2的的SQLSQL语句语句第第4章章 数据处理与数据处理与SQL 10:361.单表查询的一般格式SELECT ALL | DISTINCT , FROM ,W
11、HERE GROUP BY HAVING ORDER BY ASC | DESC输出列输出列数据来源数据来源记录筛选条记录筛选条件件记录分组的依据记录分组的依据记录排序的依据记录排序的依据ALLALL表示所有记录,是默认值,常常省略表示所有记录,是默认值,常常省略distinctdistinct用于从查询结用于从查询结果中筛去重复值。果中筛去重复值。第第4章章 数据处理与数据处理与SQL 10:364.2.1 4.2.1 数据查询功能及语句数据查询功能及语句 TO PRINTER| FILE TO PRINTER| FILE INTO TABLE INTO TABLE | 注注: 该命令若分行
12、输入该命令若分行输入,需在每行需在每行(结束行除外结束行除外)行行末加续行标记末加续行标记“;”第第4章章 数据处理与数据处理与SQL 10:36 无条件查询select from 查询指定表中所有记录的全部字段内容 select * from 查询指定表中所有记录的部分字段内容 select from 第第4章章 数据处理与数据处理与SQL 10:36例1:查询student表中所有的记录 SELECT * FROM student第第4章章 数据处理与数据处理与SQL 10:36例2:查询student表中所有学生的姓名和入学总入学总分分 SELECT SELECT 姓名姓名, ,入学总分
13、入学总分 FROM studentFROM student第第4章章 数据处理与数据处理与SQL 10:36例3. 查询student表中所有专业(要求重复值只选一个) SELECT SELECT 专业专业 FROM studentFROM student不符合不符合要求要求第第4章章 数据处理与数据处理与SQL 10:36正确的命令为: SELECT DISTINCT 专业 FROM student第第4章章 数据处理与数据处理与SQL 10:36 条件查询 SELECT 列名表 FROM 表名 WHERE 条件表达式 条件表达式是由常量、变量和函数通过运算符连接起来的式子,其结果为一个是/
14、否型的数据第第4章章 数据处理与数据处理与SQL 10:36条件表达式的几种表达形式:u关系表达式u逻辑表达式u字段 NOT LIKE 字符串通配式u字段 NOT BETWEEN 值1 AND 值2u字段 NOT IN (值列表)u字段 IS NOT NULL第第4章章 数据处理与数据处理与SQL 10:36u关系表达式l关系运算符:l关系运算符两边的值必须类型一致。 表示大于 = =表示大于等于 表示小于 = =表示小于等于 = =表示等于 表示不等于第第4章章 数据处理与数据处理与SQL 10:36例4.查询student表中入学总分大于等于560分的学生姓名和入学总分SELECT SEL
15、ECT 姓名姓名, ,入学总分入学总分 FROM student;FROM student; WHERE WHERE 入学总分入学总分=560 =560 第第4章章 数据处理与数据处理与SQL 10:36例5.查询student表中女生信息 SELECT SELECT * * FROM student; FROM student; WHERE WHERE 性别性别= = 女女 字符型常量要字符型常量要用用或或 括起括起第第4章章 数据处理与数据处理与SQL 10:36例6.查询student表中1987年4月12日出生的学生信息SELECT SELECT * * FROM student; F
16、ROM student; WHERE WHERE 入学时间入学时间=1987/04/12=1987/04/12日期型常量要日期型常量要用用括起括起第第4章章 数据处理与数据处理与SQL 10:36u逻辑表达式 多个条件用AND、OR、NOT组合成逻辑表达式 逻辑运算符: AND OR NOT 例7.查询student表中汉语言文学专业的男生和工商管理专业的女生的学号和姓名 第第4章章 数据处理与数据处理与SQL 10:36例7.查询student表中汉语言文学专业的男生和工商管理专业的女生的学号和姓名SELECT学号,姓名;FROMSTUDENT;WHERE专业= 工商管理工商管理 AND性别
17、=女女 ;OR专业= 汉语言文学汉语言文学 AND性别=男男第第4章章 数据处理与数据处理与SQL 10:36u字段 NOT LIKE 字符串通配式例例9.9._表示单个表示单个任意字符。任意字符。例例8.8.查询查询studentstudent表中表中姓陈姓陈的学生信息的学生信息 SELECT SELECT * * FROM student; FROM student; WHERE WHERE 姓名姓名 LIKE LIKE 陈陈% % SELECT SELECT * * FROM student; FROM student; WHERE WHERE 学号学号 LIKE LIKE _1%_1%
18、 第第4章章 数据处理与数据处理与SQL 10:36u字段字段 NOT BETWEEN NOT BETWEEN 值值1 AND 1 AND 值值2 2等价于:出生日期等价于:出生日期=1986/01/01 AND AND 出生日期出生日期=1986/12/31 等价于:等价于:成绩成绩60 or 8484 例例10.10.查询查询studentstudent表中表中8686年到年到8787年出生的学生信息年出生的学生信息 SELECT SELECT * * FROM student; FROM student; WHERE WHERE 出生日期出生日期 BETWEEN 1986/01/01;B
19、ETWEEN 1986/01/01; AND 1986/12/31 AND 1986/12/31 例例11.11.查询查询gradegrade表中成绩不及格和优秀的学生信息表中成绩不及格和优秀的学生信息 SELECT SELECT * * FROM grade; FROM grade; WHERE WHERE 成绩成绩 NOT BETWEEN 60 AND 84NOT BETWEEN 60 AND 84第第4章章 数据处理与数据处理与SQL 10:36u字段 NOT IN (值列表) 例12.查询student表中专业为汉语言文学和工商管理的学生信息 SELECT * FROM student
20、; WHERE 专业 IN (汉语言文学,工商管理)等价于:专业等价于:专业=汉语言文学 OR OR 专业专业=工商管理 第第4章章 数据处理与数据处理与SQL 10:36统计查询 输出列为:统计函数名(列名) AS 列标题 SQL统计函数:统计函数: count (列名列名):列值个数,不包含为空的值列值个数,不包含为空的值 count (*):元组个数元组个数 sum(列名列名):列值总和列值总和 avg(列名列名):列值平均值列值平均值 max(列名列名):列值中的最大值列值中的最大值 min(列名列名):列值中的最小值列值中的最小值 第第4章章 数据处理与数据处理与SQL 10:36例
21、13.统计student表中男生人数 SELECT COUNT(*) AS 人数; FROM student; WHERE 性别=男 例14.统计student表中入学总分的总额、平均值及最高值 SELECT SUM(入学总分) as 入学总分总和,; AVG(入学总分) as 平均入学总分,; MAX(入学总分) as 最高入学总分; FROM student 第第4章章 数据处理与数据处理与SQL 10:36输出列为: AS 输出列为: AS例15:查询各学生的学号、姓名、学校、专业,出生年份。(学校的内容都是“福州大学”) SELECT 学号,姓名,福州大学福州大学 AS 学校,; 专业
22、,year(出生日期) as 出生年份; FROM STUDENT第第4章章 数据处理与数据处理与SQL 10:36分组查询SELECT 列名表 FROM 表名 WHERE 条件 GROUP BY 分组依据例例16.16.按专业查询按专业查询stustu表中各专业学生的人数表中各专业学生的人数 SELECT SELECT 专业专业,COUNT(,COUNT(* *) FROM STUDENT;) FROM STUDENT; GROUP BY GROUP BY 专业专业例例17.17. 按性别对入学总分进行汇总,求出性别相同记按性别对入学总分进行汇总,求出性别相同记录的平均入学总分录的平均入学总
23、分SELECT SELECT 性别性别, AVG(, AVG(入学总分入学总分) FROM student;) FROM student; GROUP BY GROUP BY 性别性别第第4章章 数据处理与数据处理与SQL 10:36例18.计算grade表中各学生的总成绩 SELECT 学号,SUM(成绩) FROM grade; GROUP BY 学号例19.查询grade表中各学生及格的科目的总成绩 SELECT 学号,SUM(成绩) FROM grade; WHERE 成绩60; GROUP BY 学号 第第4章章 数据处理与数据处理与SQL 10:36 SELECT 列名表 FROM
24、 表名WHERE 条件 ORDER BY 排序依据 ASC/DESC 例20.查询grade表的学号和成绩,要求按照成绩的升序排名 SELECT 学号,成绩 FROM grade; ORDER BY 成绩 ASC 例21.显示成绩在后5名的学生 SELECT TOP 5 学号,成绩 FROM grade; ORDER BY 成绩 ASC查询的结果进行排序前前DESC升序升序ASCASC可省可省第第4章章 数据处理与数据处理与SQL 10:36例22: 查询显示STUDENT表中所有学生的学号姓名和年龄并按年龄由小到大排列SELECT 学号,姓名,;YEAR(DATE()-YEAR(出生日期)
25、AS 年龄;FROM STUDENT;ORDER BY 年龄第第4章章 数据处理与数据处理与SQL 10:36联接查询联接查询 (四种类型四种类型): 内部联接:内部联接:连接结果由左表和右表中满足联接条连接结果由左表和右表中满足联接条件的记录组成,是最常用的联接类型件的记录组成,是最常用的联接类型 左联接:左联接: 包含左表全部记录及右表中满足联接条件的记录包含左表全部记录及右表中满足联接条件的记录 右联接:右联接: 包含右表全部记录及左表中满足联接条件的记录包含右表全部记录及左表中满足联接条件的记录 完全联接:完全联接:包含两个表的全部记录包含两个表的全部记录 4.2.1 4.2.1 数据
26、查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:362.多表联接查询 SELECT FROM INNER JOIN ON 第二种写法: SELECT FROM , WHERE 其中联接条件的写法为: 表1.关键字段表2.关键字段第第4章章 数据处理与数据处理与SQL 10:36例例2323:查询所有学生的学号、姓名以及成绩查询所有学生的学号、姓名以及成绩Select student.Select student.学号学号, ,姓名姓名, ,成绩成绩; ;from student,grade;from student,grade;Where student.Wher
27、e student.学号学号=grade.=grade.学号学号 Select student.Select student.学号学号, ,姓名姓名, ,成绩成绩; ; from student; from student; inner join grade on student. inner join grade on student.学号学号=grade.=grade.学学号号第第4章章 数据处理与数据处理与SQL 10:36例例2424:查询选修查询选修T99009T99009教师的所有学生的学号、姓教师的所有学生的学号、姓名、教师号以及成绩名、教师号以及成绩Select student
28、.Select student.学号学号, ,姓名姓名, ,教师号教师号, ,成绩成绩; ;from student,grade;from student,grade;Where student.Where student.学号学号=grade.=grade.学号学号; ; and and 教师号教师号= =T99009T99009第第4章章 数据处理与数据处理与SQL 10:36例例25 25 查询所有学生各门课程的成绩信息,查询所有学生各门课程的成绩信息,包括学号、姓名、课程号、课程名、学分和包括学号、姓名、课程号、课程名、学分和成绩,并按学号从小到大顺序排列,学号相成绩,并按学号从小到大
29、顺序排列,学号相同的记录按课程号从小到大顺序排列。同的记录按课程号从小到大顺序排列。 4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36 SELECT STUDENT.SELECT STUDENT.学号学号, ,姓名姓名,GRADE.,GRADE.课程号课程号,;,; 课程名课程名, ,学分学分, ,成绩成绩; ; FROM STUDENT,GRADE,COURSE; FROM STUDENT,GRADE,COURSE; WHERE STUDENT. WHERE STUDENT.学号学号=GRADE.=GRADE.学号学号 AND A
30、ND ; ; GRADE.GRADE.课程号课程号= COURSE.= COURSE.课程号课程号; ; ORDER BY STUDENT. ORDER BY STUDENT.学号学号,COURSE.,COURSE.课程号课程号4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36例例25 25 用用INNER JOININNER JOIN实现:实现: SELECT STUDENT.SELECT STUDENT.学号学号, ,姓名姓名,GRADE.,GRADE.课程号课程号,;,; 课程名课程名, ,学分学分, ,成绩成绩; ; FROM
31、 STUDENT; FROM STUDENT; INNER JOIN GRADE; INNER JOIN GRADE; INNER JOIN COURSE; INNER JOIN COURSE; ON GRADE. ON GRADE.课程号课程号= COURSE.= COURSE.课程号课程号; ; ON STUDENT. ON STUDENT.学号学号=GRADE.=GRADE.学号学号; ; ORDER BY STUDENT. ORDER BY STUDENT.学号学号,COURSE.,COURSE.课程号课程号4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处
32、理与数据处理与SQL 10:36(2)两表左联接、右联接或完全联接查询两表左联接、右联接或完全联接查询 SELECT SELECT FROM FROM 1 IEFT|RIGHT|FULL JOIN IEFT|RIGHT|FULL JOIN ON ON 例例 根据根据COLLEGE表和表和STUDENT表,查询所有学院的表,查询所有学院的学生信息,包括学院名称、学号和姓名。如果某个学学生信息,包括学院名称、学号和姓名。如果某个学院无学生,也要显示该学院的名称。院无学生,也要显示该学院的名称。 SELECT SELECT 学院名称学院名称, ,学号学号, ,姓名姓名; ; FROM COLLEGE
33、 LEFT JOIN STUDENT ; FROM COLLEGE LEFT JOIN STUDENT ; ON ON 学院代码学院代码=LEFT(=LEFT(学号学号,2) ,2) 4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36嵌套查询:嵌套查询:在一个在一个SELECT-SQL语句的语句的WHERE子句中嵌入另一个子句中嵌入另一个SELECT-SQL语句。语句。外层查询称为父查询,内层查询称为子查询。外层查询称为父查询,内层查询称为子查询。 常用格式:常用格式: SELECT SELECT FROM FROM WHERE WH
34、ERE IN IN ( SELECT ( SELECT FROM FROM WHERE WHERE ) ) 功能:功能:首先执行子查询,其结果构成一个集合,然后从父表首先执行子查询,其结果构成一个集合,然后从父表中查询指定字段值属于该集合的记录中查询指定字段值属于该集合的记录。4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36例例4.29 根据根据STUDENT表和表和GRADE表,查询有不及格表,查询有不及格成绩的学生学号和姓名。成绩的学生学号和姓名。 SELECT SELECT 学号学号, ,姓名姓名 FROM STUDENT;F
35、ROM STUDENT; WHERE WHERE 学号学号 IN IN ; ; (SELECT (SELECT 学号学号 FROM GRADE WHERE FROM GRADE WHERE 成绩成绩60)60)可用联接查询实现:可用联接查询实现: SELECT DISTINCT STUDENT.SELECT DISTINCT STUDENT.学号学号, ,姓名姓名; ; FROM STUDENT,GRADE; FROM STUDENT,GRADE; WHERE STUDENT. WHERE STUDENT.学号学号=GRADE.=GRADE.学号学号 AND AND 成绩成绩60604.2.1
36、 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36查询输出去向查询输出去向 SELECT-SQLSELECT-SQL语句默认输出到浏览窗口语句默认输出到浏览窗口, ,可通可通过过INTOINTO或或TOTO子句改变输出去向。子句改变输出去向。 vINTO ARRAY INTO ARRAY vINTO CURSOR INTO CURSOR vINTO TABLE INTO TABLE vTO FILE TO FILE ADDITIVE ADDITIVE vTO PRINTER TO PRINTER vTO SCREEN TO SCREEN 4.2
37、.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36(1)(1)INTO ARRAY INTO ARRAY 将查询结果存放到指定的二维数组中,每行存放一将查询结果存放到指定的二维数组中,每行存放一条记录,每列对应于查询结果的一列。条记录,每列对应于查询结果的一列。例例4.30 4.30 从从STUDENTSTUDENT表中查出所有专业名称(不重复),表中查出所有专业名称(不重复),并将查询结果保存在数组并将查询结果保存在数组ZYZY中。中。 SELECT DISTINCT SELECT DISTINCT 专业专业 FROM STUDENT ;
38、FROM STUDENT ; INTO ARRAY ZY INTO ARRAY ZY 注:注:若查出若查出4 4个专业名称,则分别存放在数组元素个专业名称,则分别存放在数组元素ZY(1,1)ZY(1,1)、ZY(1,2)ZY(1,2)、ZY(1,3)ZY(1,3)、ZY(1,4)ZY(1,4)中,也可看作一维数组元素中,也可看作一维数组元素ZY(1)ZY(1)、ZY(2)ZY(2)、ZY(3)ZY(3)、ZY(4)ZY(4) 。 4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36(2)(2)INTO TABLE DBFINTO TAB
39、LE 将查询结果保存到指定的自由表文件(将查询结果保存到指定的自由表文件(.DBF.DBF)中。)中。自动作为当前表打开着(但不打开浏览窗口)自动作为当前表打开着(但不打开浏览窗口)例例4.31 4.31 对对STUDENTSTUDENT表按专业统计平均入学总分表按专业统计平均入学总分, ,并将统并将统计结果保存在计结果保存在ZYHZZYHZ表中。表中。 SELECT SELECT 专业专业, AVG(, AVG(入学总分入学总分);); FROM STUDENT; FROM STUDENT; GROUP BY GROUP BY 专业专业; ; INTO TABLE ZYHZ INTO TAB
40、LE ZYHZ 4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:36(3)(3)INTO CURSOR INTO CURSOR 将查询结果保存到指定的只读临时表中将查询结果保存到指定的只读临时表中, , 自自动作为当前表打开在内存(但不打开浏览窗动作为当前表打开在内存(但不打开浏览窗口),一旦关闭该表则自动删除。口),一旦关闭该表则自动删除。4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:364.2.1 4.2.1 数据查询功能及语句数据查询功能及语句例例4.32 4.32 根据
41、根据STUDENTSTUDENT、COURSECOURSE和和GRADEGRADE表,查询学号表,查询学号为为“03050010305001”的学生的姓名、所学课程名及成绩,并的学生的姓名、所学课程名及成绩,并将查询结果保存在临时表将查询结果保存在临时表TEMPTEMP中。中。 SELECT SELECT 姓名姓名, ,课程名课程名, ,成绩成绩; ; FROM STUDENT,COURSE,GRADE ; FROM STUDENT,COURSE,GRADE ; WHERE STUDENT. WHERE STUDENT.学号学号=GRADE.=GRADE.学号学号 ; ; AND COURSE
42、. AND COURSE.课程号课程号=GRADE.=GRADE.课程号课程号 ; ; AND STUDENT. AND STUDENT.学号学号=0305001 ;=0305001 ; INTO CURSOR TEMP 第第4章章 数据处理与数据处理与SQL 10:36(4)(4)TO FILE TO FILE ADDITIVE ADDITIVE 将查询结果保存到指定的文本文件(将查询结果保存到指定的文本文件(.TXT.TXT)中。)中。ADDITIVEADDITIVE选项表示追加式存入。选项表示追加式存入。(5)(5)TO PRINTERTO PRINTER 将查询结果直接输出到打印机。将
43、查询结果直接输出到打印机。 (6)(6)TO SCREENTO SCREEN 将查询结果直接显示在将查询结果直接显示在VFPVFP的系统主窗口中。的系统主窗口中。4.2.1 4.2.1 数据查询功能及语句数据查询功能及语句第第4章章 数据处理与数据处理与SQL 10:361.1.创建表结构语句创建表结构语句: : CREATE TABLE-SQLCREATE TABLE-SQL ( (了解了解) )CREATE TABLE CREATE TABLE FREE FREE( ( (,) ) , (,) ) ,)例如例如: : CREATE TABLE STUDENT_NEW ;CREATE TAB
44、LE STUDENT_NEW ; ( (学号学号 C(7),C(7),姓名姓名 C(8),C(8),出生日期出生日期 D,;D,; 定向否定向否 L,L,入学总分入学总分 N(6,1),N(6,1),简历简历 M)M)4.2.2 4.2.2 数据定义功能及语句数据定义功能及语句第第4章章 数据处理与数据处理与SQL 10:36字段级约束选项 含义PRIMARY KEYPRIMARY KEY以本字段为关键字创建与本字段同名的主以本字段为关键字创建与本字段同名的主索引,要求本字段值不为空且无重复索引,要求本字段值不为空且无重复 UNIQUEUNIQUE以本字段为关键字创建与本字段同名的候以本字段为
45、关键字创建与本字段同名的候选索引,要求本字段值不为空且无重复选索引,要求本字段值不为空且无重复 NULLNULL允许本字段接受空值。若已指定本字段为允许本字段接受空值。若已指定本字段为主索引或候选索引字段,则该选项不能用。主索引或候选索引字段,则该选项不能用。默认为默认为NOT NULLNOT NULL CHECK CHECK ERROR 指定本字段的默认值,其数据类型必须和指定本字段的默认值,其数据类型必须和字段的数据类型一致字段的数据类型一致 4.2.2 4.2.2 数据定义功能及语句数据定义功能及语句第第4章章 数据处理与数据处理与SQL 10:36表级约束选项 含义CHECK CHEC
46、K ERROR ERROR 设置记录的有效性规则,当输入的字设置记录的有效性规则,当输入的字段值不符合此规则时,段值不符合此规则时,Visual FoxPro显示给定的提示信息显示给定的提示信息 PRIMARY KEY PRIMARY KEY TAG 按关键字建立主索引。关键字可以是按关键字建立主索引。关键字可以是表中一个字段或字段组合;如果已直表中一个字段或字段组合;如果已直接在某字段后指定了接在某字段后指定了PRIMARY KEY,则不能再用该子句则不能再用该子句 UNIQUEUNIQUE TAG 按关键字建立候选索引按关键字建立候选索引 4.2.2 4.2.2 数据定义功能及语句数据定义
47、功能及语句第第4章章 数据处理与数据处理与SQL 10:36例例4.34 4.34 在在“教学管理教学管理”数据库中创建数据库中创建TESTTEST表,表表,表结构如下:学号结构如下:学号( (字符型字符型,7),7)、课程号、课程号( (字符型字符型,5),5)、考试时间考试时间( (日期型日期型, ,可为空可为空) )、考试地点、考试地点( (字符型字符型,10,10,可为空可为空) ),并以学号,并以学号+ +课程号为索引表达式建立名课程号为索引表达式建立名为为SCSC的候选索引。的候选索引。 OPEN DATABASE OPEN DATABASE 教学管理教学管理 CREATE TAB
48、LE TEST;CREATE TABLE TEST; ( (学号学号 C(7), C(7), 课程号课程号 C(5),C(5),考试时间考试时间 D NULL,;D NULL,; 考试地点考试地点 C(10) NULL,;C(10) NULL,; UNIQUE UNIQUE 学号学号+ +课程号课程号 TAG SC)TAG SC)4.2.2 4.2.2 数据定义功能及语句数据定义功能及语句第第4章章 数据处理与数据处理与SQL 10:362.2.修改表结构语句修改表结构语句: : ALTER TABLE-SQLALTER TABLE-SQL ( (了解了解) )(1) (1) 添加新字段添加新
49、字段 ALTER TABLE ALTER TABLE ADD ADD (,) ) (2) (2) 删除或修改字段名删除或修改字段名 ALTER TABLE ALTER TABLE DROP DROP RENAME RENAME TO TO 4.2.2 4.2.2 数据定义功能及语句数据定义功能及语句第第4章章 数据处理与数据处理与SQL 10:36(3)(3)重设已有字段的类型、宽度和部分字段级约束重设已有字段的类型、宽度和部分字段级约束 ALTER TABLE ALTER TABLE ALTER ALTER (,) PRIMARY KEY UNIQUE PRIMARY KEY UNIQUE
50、NULL NOT NULLNULL NOT NULL4.2.2 4.2.2 数据定义功能及语句数据定义功能及语句第第4章章 数据处理与数据处理与SQL 10:36(4)(4)重设或删除已有字段的有效性规则和默认值重设或删除已有字段的有效性规则和默认值 ALTER TABLE ALTER TABLE ALTER ALTER SET DEFAULT SET DEFAULT DROP DEFAULT DROP DEFAULT SET SET CHECK CHECK ERROR ERROR DROP CHECKDROP CHECK NULL NOT NULLNULL NOT NULL4.2.2 4.2