Visual FoxPro程序设计 高巍巍 第4章结构化查询语言SQL新.ppt
文本预览下载声明
第四章 结构化查询语言SQL Visual foxpro程序设计 本章主要内容 4.1数据查询 4.2 数据操作 4.3 数据定义 表4-1 SQL语言的9个命令动词 本节主要内容 1、基本查询 2、排序查询 3、带特殊运算符的条件查询 4、计算与分组查询 5、嵌套查询 6、利用空值查询 7、查询中的特殊选项 select…from…where… 1、无条件查询:SELECT … FROM … Eg1:将student表中的专业信息检索出来。 Eg2:将student表中的专业信息检索出来,并去掉重复元组。 Eg3:从student表中检索出学生的学号、姓名、专业信息。 Eg4:查询score表中的所有信息。 方法一: 方法二: 注意: 2、条件查询 格式:SELECT … FROM …WHERE … Eg1:查询成绩大于80分的学号。 Eg2:从score表中检索出选修了课程编号为“02”的,并且成绩大于80分的成绩信息。 Eg3:检索出选修了课程编号为“02”或“05”的,并且成绩大于80分的成绩信息。 Eg4:从student表中检索出性别为“男”且入学时间为1996年9月7日的学生的学号、姓名、性别、专业和年龄信息。 3、多表联接查询: 格式: SELECT … FROM 表1,表2,… ; WHERE 查询条件 and 连接条件 Eg1:检索出成绩大于80分的学号、姓名、性别和成绩 。 Eg2:检索选修了课程的学生信息。 Eg3:检索学号为“199648101”的学生姓名以及所选修的课程名称和授课教师姓名。 格式: Eg1:按学生的入学时间升序检索出全部学生信息。 Eg2:检索学生信息,按学生的入学时间升序排序,如果入学时间相同则按学生的出生日期降序进行排序。 1、确定范围 Between…and … 2、确定集合 in 3、部分匹配查询 like 字符串匹配运算 4、不等于 != 1、确定范围 格式:BETWEEN……AND…… 表示在…和…之间 包含界值 NOT BETWEEN……AND…… 表示不在…和…之间 1、确定范围 Eg1:查询入学时间在1997年1月1日至1999年12月30日之间的学生的信息。 2、确定集合 格式: 字段名 [NOT]IN (表达式1,表达式2,…) Eg1:查询选修了课程编号为“02”或“05”或“04”,并且成绩在80分以上的学生的学号、课程编号和成绩。 Eg2:查询没有选修课程编号为“04”或“03”并且成绩不及格的学生的学号、课程编号和成绩。 3、部分匹配查询 格式:字段名 like 字符串常量 通配符:%:0个或多个字符 _:一个字符 Eg1:查询所有姓“李”的学生的学号、姓名、性别、专业。 Eg2:查询第二个汉字是“海”的学生的学号、姓名、性别、专业。 4、不等于(!=) Eg1:查询家庭住址在哈尔滨并且不是学计算机科学与技术专业的学生的信息。 1、简单的计算查询(用在select中,对查询结果中数值型字段值进行计算 ) 注: as 新字段名:给结果指定字段别名 Eg1:统计授课教师的数目。 Eg2:统计student表中有多少个学生记录。 Eg3:求学号为1996468001的学生平均成绩。 Eg4:求score表中的最高分和最低分。 2、分组与计算查询 格式: GROUP BY 字段名[HAVING 分组条件表达式] Eg1:检索出每个学生的学号、总分、平均分、最高分和最低分。 Eg2:检索出“计算机科学与技术系”的每个学生的学号、姓名、总分、平均分、最高分和最低分。 Eg6:求至少有两名学生选修的课程的平均分。 Eg7:检索出平均分在80分以上的每个学生的学号、总分和平均分,并将结果按学号升序排列,保存到表xx.dbf中。 (查询结果出自一个表,条件涉及多个表) 格式: SELECT…FROM 表1 WHERE 字段名 in ; (SELECT 字段名 FROM 表2 WHERE…) Eg1:检索没有授课的教师信息。 Eg2:检索选修了课程的学生信息。 Eg3:找出没有选课的学生的信息。 格式: 字段名 IS NULL 字段名 IS NOT NULL Eg1:查询出还没有确定联系方式的学生记录。 Eg2:查询已经确定了联系方式的学生信息。 1、显示部分结果 2、将结果存放在临时文件中 ※ 3、将结果存放在永久表中 1、显示部分结果(显示前几项) 格式:top n [percent] ①位置:紧跟selec
显示全部