vf结构化查询语言之SELECT讲解

上传人:s9****2 文档编号:586571041 上传时间:2024-09-05 格式:PPT 页数:62 大小:1.19MB
返回 下载 相关 举报
vf结构化查询语言之SELECT讲解_第1页
第1页 / 共62页
vf结构化查询语言之SELECT讲解_第2页
第2页 / 共62页
vf结构化查询语言之SELECT讲解_第3页
第3页 / 共62页
vf结构化查询语言之SELECT讲解_第4页
第4页 / 共62页
vf结构化查询语言之SELECT讲解_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《vf结构化查询语言之SELECT讲解》由会员分享,可在线阅读,更多相关《vf结构化查询语言之SELECT讲解(62页珍藏版)》请在金锄头文库上搜索。

1、vfvf结构化查询语言之结构化查询语言之SELECTSELECT讲解讲解SQL一、SQL的基本概况1、SQL(structureQueryLanguage)结构化查询语言,是关系数据库的标准语言,所有关系数据库管理系统都支持。2、SQL功能:数据的查询:是SQL的核心,SELECT命令数据的定义数据的操作数据的控制SQL数据查询二、SQL数据查询1、简单查询(单表查询)格式:SELECTALL|DISCINCT*|AS;FROM功能:从指定的表或视图中查询记录数据说明:DISTINCT:指定输入结果时无重复记录ALL:代表全部记录,ALL也是默认值*:表示显示表中全部字段的信息AS列标题:可为

2、某字段指定显示的别名FROM:指定要查询的数据的表SQL数据查询(1)查询指定列查询指定列例1:查询学籍表中全部记录的学号和姓名SELECT学号学号,姓名姓名FROM学籍学籍(2)查询全部列查询全部列例2.查询学籍表中的全部记录。SELECT*FROM学籍(3)查询指定列标题查询指定列标题例3:查询“成绩”表中全部记录的姓名和数学+语文+英语的列标题指定为总分SELECT姓名,数学数学+语文语文+英语英语AS总分总分FROM成绩SQL数据查询(4)消除取值重复的行)消除取值重复的行例例4:查询图书借阅表中所借书的书名:查询图书借阅表中所借书的书名SELECTDISTINCT书名书名FROM图书

3、借阅图书借阅SQL数据查询练习练习1.查询学生表中所有院系查询学生表中所有院系SELECT院系院系FROM学生学生该结果中有重复值,要去掉从重复值,则命令为该结果中有重复值,要去掉从重复值,则命令为SELECTDISTINCT院系院系FROM学生学生2.查询全体学生查询全体学生SELECT*FROM学生学生SQL数据查询2、条件查询用WHERE子句来指定查询条件格式:SELECTALL|DISCINCT*|AS;FROM;WHERE功能:从指定的表或视图中查询满足条件的记录说明:where:指定查询的条件(与for条件相同)SQL数据查询(1)查询满足条件的记录查询满足条件的记录例1:查询学籍

4、表中所有“男”学生的记录SELECT*FROM学籍学籍where性别性别=“男男”例2:查询并显示“学籍”表中“入学成绩”大于400,并且是“男”学生的记录。SELECT*FROM学籍where性别=“男”AND入学成绩400SQL数据查询(2)WHERE条件中的运算符:条件中的运算符:关系运算符:关系运算符:=、=、=400AND入学成绩入学成绩=500SQL数据查询格式匹配格式匹配LIKE功能:用来进行字符串的匹配,字符串可以使用通配符功能:用来进行字符串的匹配,字符串可以使用通配符%和和_%代表多个字符;代表多个字符;_代表一个字符。代表一个字符。例:查询学籍表中姓名是例:查询学籍表中姓

5、名是“王王”姓的所有记录姓的所有记录SELECT*FROM学籍学籍WHERE姓名姓名LIKE”王王%”包含:包含:IN()、NOTIN()功能:判断是否是功能:判断是否是IN()中的一个。中的一个。例:查询学籍表中年龄为例:查询学籍表中年龄为17,18,19的学生记录的学生记录SELECT*FROM学籍学籍WHERE年龄年龄IN(17,18,19)SQL数据查询空值:空值:ISNULL、ISNOTNULL功能:用来判断某字段值是否为空值功能:用来判断某字段值是否为空值例:查询成绩表中,数学缺考学生的信息(数学成绩为空)例:查询成绩表中,数学缺考学生的信息(数学成绩为空)SELECT*FROM成

6、绩成绩WHERE数学数学ISNULL3统计查询对数据表中数值型数据的查询结果进行统计统计功能用VFP提供的库函数实现函数名称函数名称功能功能返回值返回值COUNT(DISTINCT *|字段名字段名)计数计数统计一列中值的个数统计一列中值的个数Count(*)记录总数记录总数Count(字段)字段不为空(字段)字段不为空的个数的个数SUM(字段名字段名)求总和求总和计算一列值的总和计算一列值的总和AVG(字段名字段名)求平均值求平均值计算一列值的平均值计算一列值的平均值MAX(字段名字段名)求最大值求最大值求某字段的最大值求某字段的最大值MIN(字段名字段名)求最小值求最小值求某字段的最小值求

7、某字段的最小值SQL数据查询例1查询课程表中记录总数并赋予列标题课程总数SELECTCOUNT(*)AS课程总数FROM课程例2查询选修了课程学生人数列标题为选课人数SELECTCOUNT(DISTINCT学号)AS选课人数FROM课程例3.查询成绩表中的学生证号为“024061808”成绩的总和学生证号。SELECT学生证号,SUM(成绩)FROM成绩表WHERE学生证号=”2024061808”例4.查询成绩表中的学生证号为“2024061808”成绩的平均值和学生证号。SELECT学生证号,AVG(成绩)FROM成绩表WHERE学生证号=“2024061808”SQL数据查询例5求出成绩

8、表中的所有学生的最高期末成绩。SELECTMAX(期末成绩)FROM成绩表例6求出成绩表中的所有学生的最低期末成绩。SELECTMIN(期末成绩)FROM成绩表SQL数据查询SQL数据查询复习:复习:1.查询查询“部门部门”表的所有字段及所有记录。表的所有字段及所有记录。SELECT*FROM部门部门2.查询查询”教师教师”表中所有记录的教师编号,部门编号,姓名和性别字段值表中所有记录的教师编号,部门编号,姓名和性别字段值Select教师编号,部门编号,姓名,性别教师编号,部门编号,姓名,性别From教师教师3.查询查询“教师教师”表中所有教师的姓名和出生年份表中所有教师的姓名和出生年份SEL

9、ECT姓名,出生年份姓名,出生年份FROM教师教师4.查询查询“教师教师”表中所有职称为讲师的姓名,性别和所属部门编号表中所有职称为讲师的姓名,性别和所属部门编号SELECT姓名,性别,部门编号姓名,性别,部门编号FROM教师教师WHERE职称职称=“讲师讲师”5.查询查询“教师教师”表中所有工资在表中所有工资在2000元和元和4000元之间的教师姓名和工资元之间的教师姓名和工资SELECT姓名,工资姓名,工资FORM教师教师where工资工资BETWEEN2000AND4000练习1:统计学生表中所有学生的“民族”的种类。SELECTCOUNT(DISTINCT民族)FROM学生表练习2:求

10、出成绩表中的学生证号为“2024061808”成绩的总和SELECT学生证号,SUM(成绩)FROM成绩表WHERE学生证号=”2024061808”练习3:求出成绩表中的学生证号为“2024061808”成绩的平均值。练习4:求出成绩表中的所有学生的最高期末成绩。SELECTMAX(期末成绩)FROM成绩表练习5:求出成绩表中的所有学生的最低期末成绩。SQL数据查询4、ORDERBY子句(对查询结果排序)格式:格式:SELECTFROMWHEREORDERBYASC|DESC,ASC|DESC功能:对查询结果按指定的排序项进行升序或降序排序功能:对查询结果按指定的排序项进行升序或降序排序说明

11、:说明:ORDERBY:可以按一个或多个可以按一个或多个排序排序ASC:升序升序,缺省值为升序,缺省值为升序DESC:降序:降序SQL数据查询(1)一个排序项)一个排序项例例1:查询:查询“学籍学籍”表中表中“姓名姓名”、“性别性别”、“出生日期出生日期”和和“专业专业”字段字段内容,按从内容,按从“出生日期出生日期”字段降序输出。字段降序输出。SELECT姓名,性别,出生日期,专业姓名,性别,出生日期,专业FROM学籍学籍;ORDERBY出生日期出生日期DESC等价等价SELECT姓名,性别,出生日期,专业姓名,性别,出生日期,专业FROM学籍学籍;ORDERBY3DESC在在ORDERBY

12、中,排序项可以用输出中,排序项可以用输出字段字段或或排列序号排列序号表示表示SQL数据查询例2:查询“学籍”表中“学号”,“姓名”、“性别”、“出生日期”、“年龄”和“专业”字段内容,按从年龄字段升序输出。计算年龄可以用表达式:计算年龄可以用表达式:YEAR(DATE()-YEAR(出生日期出生日期)SELECT学号,姓名,性别,出生日期,;学号,姓名,性别,出生日期,;year(date()()-year(出生日期)(出生日期)as年龄年龄,专业,专业;FROM学籍学籍;ORDERBY5DESC或或ODERBY年龄年龄DESCOrderby后可以是字段名或是排列序号,不可以是表达式后可以是字

13、段名或是排列序号,不可以是表达式SQL数据查询练习:查询练习:查询“商品商品”表(商品编号,商品名称,数量,单价),显示表中表(商品编号,商品名称,数量,单价),显示表中“商商品编号品编号”,“商品名称商品名称”、“总金额总金额”字段内容,按从总金额字段升序输出。字段内容,按从总金额字段升序输出。计算总金额可以用表达式:计算总金额可以用表达式:数量数量*单价单价SELECT商品编号,商品名称,商品编号,商品名称,数量数量*单价单价as总金额总金额FROM商品商品;ORDERBY3ASC或或ORDERBY总金额总金额ASCSQL数据查询(2)多个排序项)多个排序项排序时先按第一个排序项排序,如果

14、第一个排序项的值相同,再按第排序时先按第一个排序项排序,如果第一个排序项的值相同,再按第二个排序项排序二个排序项排序。例1:查询“学籍”表中“学号”,“姓名”、“专业”、“出生日期”字段内容,先按专业字段升序,再按出生日期字段降序排序。SELECT学号,姓名,专业,出生日期学号,姓名,专业,出生日期FROM学籍;学籍;ORDERBY专业专业ASC,出生日期,出生日期DESC5.输出部分结果格式:Select*TOPnPERCENTFROMWhereOrderby功能:显示满足条件的前几条记录。说明:TOP短语一般跟在*号的后面。TOP短语要与ORDERBY短语同时使用才有效。不带PERCENT

15、参数时,说明显示前n条记录;使用PERCENT参数时,说明显示查询结果中前百分之多少的记录。SQL数据查询例1查询STUDENT表中输出入学成绩在前3名的学生SELECT*TOP3FROMstudentORDERBY入学成绩DESC例2查询输出入学成绩在前3%的学生SELECT*TOP3PERCENTFROMstudentORDERBY入学成绩DESC练习:1.检索出学生表中“身高”最高的前3位学生的信息。SELECT*Top3FROM学生表ORDERBY身高DESCSQL数据查询练习:2.在成绩表中要求按“总分”降序排列,并查询前3名学生的记录,命令是:SELECT*TOP3FROM成绩表O

16、RDERBY总分DESC3.在学生信息表按班级升序显示学号,姓名,出生日期,住校否字段。SELECT学号,姓名,出生日期,住校否FROM学生信息表ORDERBY班级ASC4.在学生表中按学号升序,班级降序显示学号和入学成绩SELECT学号,入学成绩FORM学生表ORDERBY学号ASC,班级DESCSQL数据查询SQL数据查询6、分组查询分组查询GROUPBY格式:格式:SELECTFROMWHEREGROUPBYHAVING功能:对查询结果分组功能:对查询结果分组目的:是为了细化库函数的作用对象目的:是为了细化库函数的作用对象说明:说明:GROUPBY:按表中的某个字段或对查询结果进行分组,

17、按表中的某个字段或对查询结果进行分组,其其中中不允许是表达式不允许是表达式HAVING:子句必须和子句必须和GROUPBY子句连用子句连用。Where和和having子句子句都用来筛选数据,但是都用来筛选数据,但是where不能用于聚合函数查询,不能用于聚合函数查询,having则可以则可以SQL数据查询例例1:查询:查询“学籍学籍”表中男,女的人数表中男,女的人数SELECT性别,性别,count(学号学号)as人数人数FROM学籍学籍GROUPBY性别性别SQL数据查询例例2:查询:查询“学籍学籍”表中每班的人数表中每班的人数SELECT班级,班级,count(学号学号)as人数人数FRO

18、M学籍学籍GROUPBY班级班级SQL数据查询例例3:查询:查询“销售销售”表(雇员编号,部门编号,地区,销售额)中,按部门表(雇员编号,部门编号,地区,销售额)中,按部门统计销售额统计销售额select部门编号部门编号,sum(销售额销售额)from销售销售groupby部门编号部门编号例例4,查询查询“学籍学籍”表中每班大于表中每班大于50人的班级和人数人的班级和人数SELECT班级,班级,count(学号学号)as人数人数FROM学籍学籍GROUPBY班级班级HAVINGcount(学号学号)50SQL数据查询例例5.查询课程表中的按课程号分组计算平均成绩高于查询课程表中的按课程号分组计

19、算平均成绩高于70分的分的课程号和平均成绩课程号和平均成绩.SELECT课程号课程号,AVG(成绩成绩)AS课程平均分;课程平均分;FROM课程课程GROUPBY课程号课程号HAVINGAVG(成绩成绩)70例例6.在在“班级班级”表中,按表中,按“学号学号”分组,并按课程的分组,并按课程的“平均平均成绩成绩”升序排序。升序排序。SQL语句如下:语句如下:select学号学号,avg(课程成绩课程成绩)as平均成绩平均成绩from班级班级groupby学号学号orderby平均成绩平均成绩ascSQL数据查询练习:练习:1.设有学生选课表(学号,课程号,成绩)设有学生选课表(学号,课程号,成绩

20、),用用sql语言检索语言检索按按“课程号课程号”分组每门课程的课程号及平均分的语句:分组每门课程的课程号及平均分的语句:SELECT课程号,课程号,avg(成绩)(成绩)as平均分平均分FROM学生选课学生选课表表GROUPBY课程号课程号2.设有产品表(产品名称,单价),用设有产品表(产品名称,单价),用sql语言检索按语言检索按“产产品名称品名称”分组每种产品的产品名称和平均单价的语句:分组每种产品的产品名称和平均单价的语句:SELECT产品名称,产品名称,avg(单价单价)FROM产品产品GROUPBY产品名称产品名称SQL数据查询练习:练习:3设有产品表(产品名称,单价,产地),用设

21、有产品表(产品名称,单价,产地),用sql语言检索产语言检索产地除了日本的所有产地的记录,按地除了日本的所有产地的记录,按“产品名称产品名称”分组,计算分组,计算平均单价大于平均单价大于15元的每种产品的产品名称和平均单价的语句:元的每种产品的产品名称和平均单价的语句:SELECT产品名称,产品名称,avg(单价单价)FROM产品产品where产地产地”日本日本”GROUPBY产品名称产品名称havingavg(单价)(单价)15SQL数据查询7、多表联接查询多表联接查询格式:格式:SELECTFROM,WHEREand功能:根据连接条件,将多个表连接起来,从多个表中查询数据功能:根据连接条件

22、,将多个表连接起来,从多个表中查询数据说明:说明:在多表查询中,如果要引用不同表中的同名字段名,则需要在字段名在多表查询中,如果要引用不同表中的同名字段名,则需要在字段名前加表名,即用前加表名,即用“表名表名.字段名字段名”的形式表示,以便区分。的形式表示,以便区分。SQL数据查询例例1从学籍表从学籍表(学号,姓名,性别,出生日期,专业学号,姓名,性别,出生日期,专业)中输出字段包括:学号、中输出字段包括:学号、姓名、性别和成绩表(学号,总分)中对应记录的总分字段。姓名、性别和成绩表(学号,总分)中对应记录的总分字段。SELECT学籍学籍.学号学号,学籍学籍.姓名姓名,学籍学籍.性别性别,成绩

23、成绩.总分总分FROM学籍,成绩学籍,成绩WHERE学籍学籍.学号学号=成绩成绩.学号学号使用使用WHERE建立两个表的关联建立两个表的关联SQL数据查询例例2:查询学籍表(学号,姓名,性别,出生年月,专业):查询学籍表(学号,姓名,性别,出生年月,专业)中每个学生及其借阅图书(学号,借书证号,图书名称,借中每个学生及其借阅图书(学号,借书证号,图书名称,借书时间,还书时间)的情况书时间,还书时间)的情况学生情况存放在学生情况存放在学籍学籍表中,学生借书情况存放在表中,学生借书情况存放在图书借阅表图书借阅表表中,所以本查询实际上同时涉及学籍与图书借阅两个表中表中,所以本查询实际上同时涉及学籍与

24、图书借阅两个表中的数据。的数据。SELECT学籍学籍.*,图书借阅图书借阅.*FROM学籍学籍,图书借阅图书借阅WHERE学籍学籍.学号学号=图书借阅图书借阅.学号学号;SQL数据查询例例3从学籍表中输出字段包括:学号、姓名、性别,和成绩表中对应记录的总从学籍表中输出字段包括:学号、姓名、性别,和成绩表中对应记录的总分字段,并只显示分字段,并只显示女女生的记录。生的记录。SELECT学籍学籍.学号学号,学籍学籍.姓名姓名,学籍学籍.性别性别,成绩成绩.总分总分FROM学籍,成绩学籍,成绩WHERE学籍学籍.学号学号=成绩成绩.学号学号AND性别性别=“女女”SQL数据查询例例4从学籍表中输出字

25、段包括:学号、姓名、性别和成绩表中对应的总分、以从学籍表中输出字段包括:学号、姓名、性别和成绩表中对应的总分、以及图书借阅表中对应的所借图书书名。及图书借阅表中对应的所借图书书名。学生情况存放在学生情况存放在学籍学籍表中,所借图书况存放在表中,所借图书况存放在图书借阅表图书借阅表表中,总分存放在表中,总分存放在成成绩绩表上,所以本查询实际上同时涉及学籍、图书借阅和成绩三个表中的数据。表上,所以本查询实际上同时涉及学籍、图书借阅和成绩三个表中的数据。SELECT学籍学籍.学号学号,学籍学籍.姓名姓名,学籍学籍.性别性别,成绩成绩.总分,图总分,图书借阅书借阅.书名书名FROM学籍,成绩学籍,成绩

26、,图书借阅,图书借阅WHERE学籍学籍.学号学号=成绩成绩.学号学号AND学籍学籍.学号学号=图书借阅图书借阅.学号学号SQL数据查询例例5学籍表学籍表(学号,姓名,性别,出生日期,专业学号,姓名,性别,出生日期,专业)中输出字段包括:学号、姓名、中输出字段包括:学号、姓名、性别和成绩表(学号,总分)中对应记录的总分字段,按总分字段升序,出生性别和成绩表(学号,总分)中对应记录的总分字段,按总分字段升序,出生日期降序输出。日期降序输出。SELECT学籍学籍.学号学号,学籍学籍.姓名姓名,专业专业,出生日期出生日期,成绩成绩.学号学号,成绩成绩.总分总分;FROM学籍,成绩学籍,成绩;WHERE

27、学籍学籍.学号学号=成绩成绩.学号学号;ORDERBY专业专业ASC,出生日期出生日期DESCSQL数据查询练习:练习:1.职工的部门、职工号在职工的部门、职工号在“职工职工”表中,津贴在表中,津贴在“工资工资”表表中,两个表的公共字段是职工号,列出职工的部门,职工号中,两个表的公共字段是职工号,列出职工的部门,职工号和津贴等信息的和津贴等信息的sql语句:语句:SELECT职工职工.部门,职工部门,职工.职工号,工资职工号,工资.津贴津贴FROM职职工,工资工,工资WHERE职工职工.职工号职工号=工资工资.职工号职工号2.某商场的销售数据库有如下的表:部门表(部门号,部门某商场的销售数据库

28、有如下的表:部门表(部门号,部门名称)和商品表(部门号,商品号,商品名称,单价,数量,名称)和商品表(部门号,商品号,商品名称,单价,数量,产地),两个表的公共字段时部门号,列出部门的部门号,产地),两个表的公共字段时部门号,列出部门的部门号,部门名称,总金额的部门名称,总金额的sql语句。语句。SELECT部门部门.部门号,部门部门号,部门.部门名称,部门名称,单价单价*数量数量AS总金额总金额FROM部门,商品部门,商品WHERE部门部门.部门号部门号=商品商品.部门号部门号SQL数据查询8、嵌套查询嵌套查询嵌套查询:当需要从一个查询的结果来产生最终结果时嵌套查询:当需要从一个查询的结果来

29、产生最终结果时,一般要使用子查询一般要使用子查询.也就是说在也就是说在SELECT查询条件中包含一个或多个子查询。查询条件中包含一个或多个子查询。格式:格式:SELECT.FROMWHERE字段名字段名IN(SELECT字段名字段名FROMWHERE)功能:功能:,将复杂查询分解为一系列简单的查询,使复杂问题化简了将复杂查询分解为一系列简单的查询,使复杂问题化简了说明:先执行子查询说明:先执行子查询,再执行外查询,内外查询互不影响。,再执行外查询,内外查询互不影响。(1)子查询的)子查询的SELECT子句中只允许有一个字段名子句中只允许有一个字段名,除非是在子查询中使用除非是在子查询中使用*通

30、配符通配符(2)子查询必须用括号括起来。)子查询必须用括号括起来。(3)子查询通常作为搜索条件的一部分呈现在)子查询通常作为搜索条件的一部分呈现在WHERE或或HAVING子句中,把子句中,把一个表达式的值和一个由子查询生成的一个值相比较一个表达式的值和一个由子查询生成的一个值相比较子查询子查询SQL数据查询例例1.已知学籍表(学号,姓名,性别,出生年月,专业)已知学籍表(学号,姓名,性别,出生年月,专业)成绩表(学号,数学,语文,英语,总分)成绩表(学号,数学,语文,英语,总分)查找查找“电子技术电子技术”专业学生各门课程的考试成绩。专业学生各门课程的考试成绩。分析:分析:需要在需要在“学籍

31、学籍”表中查找表中查找“电子技术电子技术”专业的学生的学号。专业的学生的学号。SELECT学号学号FROM学籍学籍WHERE专业专业=“电子技术电子技术”结果为:结果为:需要在需要在“成绩成绩”表中查找到的学号的各科成绩。表中查找到的学号的各科成绩。SELECT*FROM成绩成绩WHERE学号学号IN(110202,110207,110208,120104)将第一步查询嵌人到第二步查询的条件中,嵌套查询如下:将第一步查询嵌人到第二步查询的条件中,嵌套查询如下:SELECT*FROM成绩成绩WHERE学号学号IN(SELECT学号学号FROM学籍学籍WHERE专业专业=“电子技术电子技术”)SQ

32、L数据查询例例2.已知学籍表(学号,姓名,性别,出生年月,专业)已知学籍表(学号,姓名,性别,出生年月,专业)成绩表(学号,数学,语文,英语,总分)成绩表(学号,数学,语文,英语,总分)查询查询“数学数学”大于大于85分的学生的分的学生的“姓名姓名”和和“性别性别”。分析:分析:需要在需要在“成绩成绩”表中查找表中查找“数学数学”大于大于85的学生的学号。的学生的学号。SELECT学号学号FROM成绩成绩WHERE数学数学85需要在需要在“学籍学籍”表中查找到的学号的姓名和性别。表中查找到的学号的姓名和性别。SELECT姓名,性别姓名,性别FROM学籍学籍WHERE学号学号IN(SELECT学

33、号学号FROM成绩成绩WHERE数学数学85)SQL数据查询练习练习已知学籍表(学号,姓名,性别,出生日期,专业)已知学籍表(学号,姓名,性别,出生日期,专业)课程表(学号,课程号,课程名称)课程表(学号,课程号,课程名称)1.查询选择课程号为查询选择课程号为2的学生名单,课程号在课程表中,学的学生名单,课程号在课程表中,学生姓名在学籍表中。生姓名在学籍表中。SELECT姓名姓名FROM学籍学籍WHERE学号学号IN(SELECT学号学号FROM课程课程WHERE课程号课程号=“2”)2查询选修了课程名为查询选修了课程名为信息系统信息系统的学生学号和姓名的学生学号和姓名SELECT学号学号,姓

34、名姓名FROM学籍学籍WHERE学号学号IN(SELECT学号学号FROM课程课程WHERE课程名课程名=“信息系统信息系统”)SQL数据查询9、合并运算合并运算(UNION)合并查询:将两个或两个以上合并查询:将两个或两个以上SELECT查询结果合并成一个结果。查询结果合并成一个结果。格式:格式:UNION功能:将两个查询结果合并功能:将两个查询结果合并说明:两个说明:两个SELECT语句的查询结果中的语句的查询结果中的字段个数字段个数,字段的顺序字段的顺序,对应字段的对应字段的数据类型数据类型和和宽度必须相同。宽度必须相同。SQL数据查询例例1.已知学籍表(学号,姓名,性别,出生日期,专业

35、)已知学籍表(学号,姓名,性别,出生日期,专业)在在“学籍学籍”表中查找表中查找“李李”姓和姓和“王王”姓学生的信息,输出学号,姓名,专业姓学生的信息,输出学号,姓名,专业字段内容。字段内容。SELECT学号,姓名,专业学号,姓名,专业FROM学籍学籍WHERE姓名姓名LIKE“李李%”OR姓名姓名LIKE“王王%”用合并查询用合并查询SELECT学号,姓名,专业学号,姓名,专业FROM学籍学籍WHERE姓名姓名LIKE“李李%”;UNION;SELECT学号,姓名,专业学号,姓名,专业FROM学籍学籍WHERE姓名姓名LIKE“王王%”SQL数据查询练习练习已知图书借阅表(学号,借书证号,书

36、名,借书日期,还书已知图书借阅表(学号,借书证号,书名,借书日期,还书日期)日期)1.在在“图书借阅图书借阅”表中查找书名是表中查找书名是“Internet应用应用”和和“进出口贸易实务进出口贸易实务”的信息,输出书号和书名的信息,输出书号和书名SELECT书号,书名书号,书名FROM图书借阅图书借阅WHERE书名书名=“Internet应用应用”;UNION;SELECT书号,书名书号,书名FROM图书借阅图书借阅WHERE书名书名=“进出进出口贸易实务口贸易实务”SQL数据查询11、查询结果输出、查询结果输出格格式:式:SELECTFROMINTO|TOFILEADDITIVE|TOPRI

37、NTERPROMPT|TOSCREEN功能:将查询结果保存到指定的文件或数组只能够功能:将查询结果保存到指定的文件或数组只能够说明:说明:SQL数据查询说明:说明:INTO或或TO选项的含义选项的含义输出选项输出选项含义含义INTOARRAY将结构存储到一个二维数组中将结构存储到一个二维数组中CURSOR将结果存到临时表中将结果存到临时表中DBF将结果保存到表中将结果保存到表中TABLETOFILEADDTIVE将结果保存到文本文件中。将结果保存到文本文件中。不覆盖原内容,将结果追加到原文件的末尾不覆盖原内容,将结果追加到原文件的末尾PRINTER将结果从打印机上打印出来将结果从打印机上打印出

38、来SCREEN将结果显示在屏幕上将结果显示在屏幕上SQL数据查询(1)保存到数据表)保存到数据表例例1.查询查询“学籍学籍”表姓名,性别,出生日期和专业字段内容,表姓名,性别,出生日期和专业字段内容,按出生日期字段降序输出,结果保存到数据表按出生日期字段降序输出,结果保存到数据表WJ中。中。SELECT姓名,性别,出生日期,专业FROM学籍;ORDERBY出生日期DESC;TODBFWJ或或SELECT姓名,性别,出生日期,专业FROM学籍;ORDERBY出生日期DESC;TOTABLEWJSQL数据查询(2)存放到临时表)存放到临时表例例2.查询查询“学籍学籍”表姓名,性别,出生日期和专业字

39、段内容,表姓名,性别,出生日期和专业字段内容,按出生日期字段降序输出,结果保存到临时表按出生日期字段降序输出,结果保存到临时表LS中。中。SELECT姓名,性别,出生日期,专业FROM学籍;ORDERBY出生日期DESC;TOCIRSPRSJ(3)保存到文本文件保存到文本文件例例3.查询查询“学籍学籍”表姓名,性别,出生日期和专业字段内容,表姓名,性别,出生日期和专业字段内容,按出生日期字段降序输出,结果保存到文本文件按出生日期字段降序输出,结果保存到文本文件WB.TXT中。中。SELECT姓名,性别,出生日期,专业FROM学籍;ORDERBY出生日期DESC;TOFILEWBSQL数据查询(

40、4)在系统窗口中显示查询结果)在系统窗口中显示查询结果例例4.查询查询“学籍学籍”表姓名,性别,出生日期和专业字段内容,表姓名,性别,出生日期和专业字段内容,按出生日期字段降序输出,结果输出在系统窗口中。按出生日期字段降序输出,结果输出在系统窗口中。SELECT姓名,性别,出生日期,专业FROM学籍;ORDERBY出生日期DESC;TOSREEN(5)保存到文本文件保存到文本文件例例5.查询查询“学籍学籍”表姓名,性别,出生日期和专业字段内容,表姓名,性别,出生日期和专业字段内容,按出生日期字段降序输出,结果打印出来。按出生日期字段降序输出,结果打印出来。SELECT姓名,性别,出生日期,专业

41、FROM学籍;ORDERBY出生日期DESC;TOPRINTERSQL数据查询格式格式(完整完整):SELECTAll|DistinctTopPercent|AS列名称列名称;,|AS列名称列名称;FROMWHEREAND|OR;,AscDesc,;GroupByHaving;UnionSelect命令命令OrderByAscDescINTO目标目标TOFILE文件名;文件名;ADDITIVE|TOPRINTER|TOSCREEN;高考链接【2011年】3查询“学生”表中“籍贯”是“上海”的学生的班级号、学号、姓名和籍贯字段,按“班级号”升序输出。(用SQL语句)SELECT班级号,学号,姓名

42、,籍贯FROM学生where籍贯=“上海”ORDERBY班级ASC高考链接【2012年】计算每个系部职工的平均年龄,并显示在屏幕上。(用SQL语句)“职工.dbf”有字段:系部名称(C,20)、姓名(C,8)、职工号(C,9)、性别(C,2)、职称(C,8)、年龄(N,2)SELECT系部名称,avg(年龄)FROM职工groupby系部名称toSCREEN【2013年】5查询books.dbf表中“价格”大于28的记录,包括“书名”、“出版社”,“价格”字段内容,按“价格”字段降序排列,结果保存到文本文件GAO.txt中(用SQL语句)Select书名,出版社,价格FROMbookswhere价格28orderby价格DESCtofilegao【2014年】5查询统计“gzb.dbf”表中每个部门(职工基本工资的平均值。(用SQL语句)SELECT部门,avg(基本工资)fromgzb.dbfgroupby部门【2015年】查询“order_list”表中“客户号”为”10001”,总金额小于等于10000的记录,按总金额降序输出,结果保存到JG.dbf表中。SELECT*FROMorder_listWHERE客户号=“10001”AND总金额=1000orderby总金额DESCTOTABLEjbThanks!结束结束

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号