![使用SQL语句查询表数据_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/649cdc93-1d40-47d8-a96f-b9cfe5783c9b/649cdc93-1d40-47d8-a96f-b9cfe5783c9b1.gif)
![使用SQL语句查询表数据_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/649cdc93-1d40-47d8-a96f-b9cfe5783c9b/649cdc93-1d40-47d8-a96f-b9cfe5783c9b2.gif)
![使用SQL语句查询表数据_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/649cdc93-1d40-47d8-a96f-b9cfe5783c9b/649cdc93-1d40-47d8-a96f-b9cfe5783c9b3.gif)
![使用SQL语句查询表数据_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/649cdc93-1d40-47d8-a96f-b9cfe5783c9b/649cdc93-1d40-47d8-a96f-b9cfe5783c9b4.gif)
![使用SQL语句查询表数据_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/649cdc93-1d40-47d8-a96f-b9cfe5783c9b/649cdc93-1d40-47d8-a96f-b9cfe5783c9b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.3 SQL5.3 SQL语言语言5.3.3 5.3.3 使用使用SQLSQL语句查询表数据语句查询表数据 SQL SQL语句最主要的功能是查询,即把数据表中的数据查语句最主要的功能是查询,即把数据表中的数据查找出来,以便浏览和使用。找出来,以便浏览和使用。SQLSQL语句中查询表数据使用的是语句中查询表数据使用的是 SELECTSELECT语句。语句。SELECTSELECT语句的基本形式分为语句的基本形式分为3 3部分:查什么数部分:查什么数据、由哪儿查数据、查的条件是什么,即据、由哪儿查数据、查的条件是什么,即SELECTSELECTFROMFROMWHEREWHERE。 1)1)基本
2、的基本的SELECTSELECT语句语句 格式:格式:SELECT SELECT 1,2; ; FROM FROM 数据库名称!数据库名称! 功能:从指定表或视图中查询全部记录的指定字段值。功能:从指定表或视图中查询全部记录的指定字段值。5.3.3 5.3.3 使用使用SQLSQL语句查询表数据语句查询表数据 【例【例5.145.14】查询】查询dabdab中所有学生。中所有学生。 SELECT SELECT * * FROM dab FROM dab 结果如下图所示。其中结果如下图所示。其中“* *”是通配符,表示所有是通配符,表示所有字段,该命令等价于:字段,该命令等价于:SELECT S
3、ELECT 学号学号, ,姓名姓名, ,性别性别, ,出生日期出生日期, ,专业班级专业班级 FROM dabFROM dab【例【例5.155.15】 查询查询dabdab中中“姓名姓名”、“性别性别”字段。字段。SELECT SELECT 姓名姓名, ,性别性别 FROM dabFROM dab结果将仅显示如图中的第结果将仅显示如图中的第2 2列、列、第第3 3列数据。列数据。2)2)唯一性查询唯一性查询 唯一性查询指对于要显示的结果,若有重复出现时,则唯一性查询指对于要显示的结果,若有重复出现时,则只显示重复行中的一行。这可通过在基本只显示重复行中的一行。这可通过在基本SELECTSEL
4、ECT语句中加入语句中加入DISTINCTDISTINCT关键字的方法实现。若不加此关键字,则显示全部关键字的方法实现。若不加此关键字,则显示全部行。行。 【例【例5.165.16】查询】查询dabdab中中“专业班级专业班级”字段,要求数据重字段,要求数据重复时,仅显示相重复的一条记录。复时,仅显示相重复的一条记录。SELECT SELECT 专业班级专业班级 FROM dab DISTINCTFROM dab DISTINCT结果如图所示。结果如图所示。3)3)带条件的查询带条件的查询 在在SELECTSELECT语句中,可以通过语句中,可以通过WHEREWHERE子句为查询规子句为查询规
5、定条件定条件WHEREWHERE子句的格式:子句的格式:WHERE WHERE 1AND AND 2功能:查询指定表或视图中满足查询条件的记录。功能:查询指定表或视图中满足查询条件的记录。其中其中 可以是关系表达式,也可以是逻可以是关系表达式,也可以是逻辑表达式,下表列出了组成辑表达式,下表列出了组成 常用的运常用的运算符。算符。运算符类别运算符类别运算符运算符实例实例关系运算符关系运算符= =、 、 =、=、成绩成绩=60=60逻辑运算符逻辑运算符NOTNOT、 ANDAND、 OROR成绩成绩=60 AND=60 AND成绩成绩70=70 AND =70 AND 成绩成绩=90=90【例【
6、例5.205.20】 查询查询dabdab中所有姓中所有姓“张张”的学生。的学生。SELECT SELECT * * FROM dab WHERE FROM dab WHERE 姓名姓名 LIKE LIKE 张张%结果如下图所示。结果如下图所示。 LIKE LIKE子句中可以用通配符:下划线子句中可以用通配符:下划线“_”_”,表示任何,表示任何一个字符;百分号符一个字符;百分号符“%”%”,表示一串字符。,表示一串字符。【例【例5.215.21】 查询查询xkcjbxkcjb中选修课程号为中选修课程号为“001”001”的的学生。学生。SELECT SELECT * * FROM xkcjb
7、 FROM xkcjb WHERE WHERE 课程号课程号 IN IN (001)(001)结果有结果有3 3条记录,学号分别为条记录,学号分别为“20050010”20050010”、“20050020”20050020”和和“20045643”20045643”。 4 4)排序查询)排序查询 通过通过ORDER BYORDER BY子句可以实现查询结果的排序输出,允子句可以实现查询结果的排序输出,允许按一列或多列排序。许按一列或多列排序。 格式:格式: ORDER BY ORDER BY 1ASC|DESCASC|DESC, ,2ASC|DESCASC|DESC 其中,其中,ASCASC
8、表示升序排序(缺省方式),表示升序排序(缺省方式),DESCDESC表示降表示降序排序。序排序。【例【例5.225.22】 按课程的学分升序查询出全部课程信息。按课程的学分升序查询出全部课程信息。SELECT SELECT * * FROM kcb FROM kcb ORDER BY ORDER BY 学分学分【例【例5.235.23】 按学号升序,相同学号再按成绩降序查询出按学号升序,相同学号再按成绩降序查询出全部学生成绩情况。全部学生成绩情况。SELECT SELECT * * FROM xkcjb FROM xkcjb ORDER BY ORDER BY 学号学号, ,成绩成绩 DESC
9、 DESC 结果如下图所示。结果如下图所示。 5 5)带计算函数的查询)带计算函数的查询 在在SELECTSELECT语句中,使用语句中,使用SQLSQL语言提供的一些查询计算语言提供的一些查询计算函数,可以增强查询功能。基本的查询计算函数的格式函数,可以增强查询功能。基本的查询计算函数的格式及功能如下表所示。及功能如下表所示。函数的格式函数的格式函数功能函数功能COUNT(COUNT(* *) )计算记录条数计算记录条数SUM(SUM(字段名字段名) )求字段名所指定字段值的总和求字段名所指定字段值的总和AVG(AVG(字段名字段名) )求字段名所指定字段的平均值求字段名所指定字段的平均值M
10、AX(MAX(字段名字段名) )求字段名所指定字段的最大值求字段名所指定字段的最大值MIN(MIN(字段名字段名) )求字段名所指定字段的最小值求字段名所指定字段的最小值【例【例5.245.24】 求所有课程的总学分。求所有课程的总学分。SELECT SUM(SELECT SUM(学分学分) FROM kcb) FROM kcb 结果是:结果是:Sum_Sum_学分学分3131【例【例5.255.25】 求学生总人数。求学生总人数。SELECT COUNT(SELECT COUNT(* *) FROM dab ) FROM dab 结果是:结果是:CntCnt1212【例【例5.265.26】
11、 求学生平均年龄。求学生平均年龄。SELECT AVG(YEAR(DATE()-YEAR(SELECT AVG(YEAR(DATE()-YEAR(出生日期出生日期) FROM dab) FROM dab结果是:结果是:Avg_exp_1Avg_exp_119.3319.33【例【例5.275.27】 求选修课程的最高成绩和最低成绩。求选修课程的最高成绩和最低成绩。SELECT MAX(SELECT MAX(成绩成绩) ,MIN() ,MIN(成绩成绩) FROM xkcjb) FROM xkcjb 结果是:结果是:Max_Max_成绩成绩 Min_Min_成绩成绩100.0 38.0100.0
12、 38.0 6) 6)用别名输出列标题(字段名)用别名输出列标题(字段名) 将列名用含义更明确的别名输出,便于理解,可以通过将列名用含义更明确的别名输出,便于理解,可以通过ASAS关键字实现。关键字实现。 格式:格式: AS AS 功能:将查询输出的列名以列别名输出。其中,列别名若为功能:将查询输出的列名以列别名输出。其中,列别名若为常字串,则无须加定界符。常字串,则无须加定界符。【例【例5.285.28】求选修课程的最高成绩和最低成绩。】求选修课程的最高成绩和最低成绩。SELECT MAX (SELECT MAX (成绩成绩) AS ) AS 最高成绩最高成绩, ,;MIN(MIN(成绩成绩
13、) AS ) AS 最低成绩最低成绩 FROM xkcjbFROM xkcjb 结果是:结果是:最高成绩最高成绩 最低成绩最低成绩100.0 38.0100.0 38.0 7)7)分组查询分组查询 通过通过GROUP BYGROUP BY子句可以实现分组查询。子句可以实现分组查询。 格式:格式: GROUP BY GROUP BY 1,2 HAVING HAVING 其中,其中, 可以是表的字段名、字段函数名可以是表的字段名、字段函数名或标识列的数值型表达式;或标识列的数值型表达式;HAVING HAVING 子句子句进一步限定分组的条件。进一步限定分组的条件。 注意:若只有注意:若只有HAV
14、INGHAVING子句而无子句而无GROUP BYGROUP BY子句,则子句,则HAVINGHAVING子句相当于子句相当于WHEREWHERE子句。子句。【例【例5.295.29】求各门课程的平均成绩。】求各门课程的平均成绩。SELECT SELECT 课程号课程号,AVG(,AVG(成绩成绩) ); FROM xkcjbFROM xkcjb GROUP BY GROUP BY 课程号课程号结果如图所示。结果如图所示。【例【例5.305.30】求至少选修了】求至少选修了2 2门课程的学生的信息。门课程的学生的信息。 SELECT dab.SELECT dab.学号学号, ,姓名姓名, ,课
15、程号课程号 FROM dab,xkcjbFROM dab,xkcjb WHERE WHERE dab.dab.学号学号=xkcjb=xkcjb. .学号学号; ;GROUP BY dab.GROUP BY dab.学号学号 HAVING COUNT(HAVING COUNT(* *)=2)=2结果如图所示。结果如图所示。 8)8)多表联接查询多表联接查询 SELECTSELECT语句可以实现对语句可以实现对Visual FoxPro 6.0Visual FoxPro 6.0的的4 4种联接类型的查询:种联接类型的查询:内部联接(内部联接(Inner JoinInner Join): :只有只有
16、2 2个表的字段都个表的字段都满足联接条件时,才将此记录选入查询结果中。满足联接条件时,才将此记录选入查询结果中。左联接左联接(Left Outer Join)(Left Outer Join):联接条件左边表中:联接条件左边表中的记录都包含在查询结果中,而右边表中的记的记录都包含在查询结果中,而右边表中的记录只有满足联接条件时,才选入查询结果中。录只有满足联接条件时,才选入查询结果中。右联接(右联接(Right Outer JoinRight Outer Join):与左联接正好):与左联接正好相反。相反。完全联接(完全联接(Full JoinFull Join):无论):无论2 2个表中的
17、记录个表中的记录是否满足联接条件,都将全部记录选入查询结是否满足联接条件,都将全部记录选入查询结果中。果中。联接类型联接类型 通常有通常有3 3种方法实现多表联接查询,一是在查种方法实现多表联接查询,一是在查询命令中显示地指定联接类型;二是在查询命令询命令中显示地指定联接类型;二是在查询命令中使用中使用WHEREWHERE子句;三是使用嵌套查询。子句;三是使用嵌套查询。 (1 1)指定联接类型实现多表间的联接查询)指定联接类型实现多表间的联接查询 格式:格式:SELECT SELECT FROM FROM INNER|LEFT|RIGHT|FULL INNER|LEFT|RIGHT|FULL
18、JOIN JOIN ON ON WHERE WHERE 功能:通过指定的联接类型建立多表间的功能:通过指定的联接类型建立多表间的联接。联接。注意:若注意:若SELECTSELECT后要查询的列名(字段名)后要查询的列名(字段名)在在2 2个表中都有,则必须采用个表中都有,则必须采用“表名表名. .字段字段名名”,若字段名唯一,则可仅写出字段名。,若字段名唯一,则可仅写出字段名。 【例【例5.315.31】显示】显示dabdab和和xkcjbxkcjb中成绩不及格的学生姓名、中成绩不及格的学生姓名、学号、课程号及成绩。学号、课程号及成绩。SELECT dab.SELECT dab.学号学号, ,
19、 姓名姓名, ,课程号课程号, ,成绩成绩 FROM xkcjbFROM xkcjb; ; INNER JOIN dab ON dab.INNER JOIN dab ON dab.学号学号=xkcjb=xkcjb. .学号学号; ;WHERE WHERE 成绩成绩6060结果如图所示。结果如图所示。(2 2)用)用WHEREWHERE子句实现多表间的联接查询子句实现多表间的联接查询 用用WHEREWHERE子句实现多表间的联接查询时,无须直子句实现多表间的联接查询时,无须直接指明联接类型(隐含是内部联接),只需把联接接指明联接类型(隐含是内部联接),只需把联接条件直接写入条件直接写入WHERE
20、WHERE子句即可。子句即可。【例【例5.325.32】用】用WHEREWHERE子句完成例子句完成例5.315.31的功能。的功能。SELECT dab.SELECT dab.学号学号, ,姓名姓名, ,课程号课程号, ,成绩成绩 FROM FROM xkcjb,dabxkcjb,dab WHERE dab. WHERE dab.学号学号=xkcjb=xkcjb. .学号学号 AND AND 成绩成绩60=90) =90) 结果是蜂雪燕和张伟。结果是蜂雪燕和张伟。 9)9)查询中的几个特殊选项查询中的几个特殊选项(1)(1)使用使用TOP TOP PERCENT PERCENT短语显示部分短
21、语显示部分结果结果【例【例5.345.34】显示学分较高的】显示学分较高的2 2门课程的信息。门课程的信息。SELECT SELECT * * TOP 2 FROM KCB ORDER BY TOP 2 FROM KCB ORDER BY 学分学分 DESCDESC注意:注意:TOPTOP短语要与短语要与ORDER BYORDER BY短语同时使用才有效。短语同时使用才有效。【例【例5.355.35】显示学分最低的】显示学分最低的20%20%课程的信息。课程的信息。SELECT SELECT * * TOP 20 PERCENT FROM KCB ORDER BY TOP 20 PERCENT
22、 FROM KCB ORDER BY 学学分分(2)(2)使用使用INTO ARRAY INTO ARRAY 将查询结果存放到数将查询结果存放到数组中。组中。【例【例5.365.36】 查询学生档案信息并将结果放入数组查询学生档案信息并将结果放入数组TEMPTEMP中。中。SELECT SELECT * * FROM DAB INTO ARRAY TEMP FROM DAB INTO ARRAY TEMP(3)(3)使用使用INTO CURSOR INTO CURSOR 将查询结果存放到临将查询结果存放到临时表中。时表中。【例【例5.375.37】 查询课程表信息并将结果放入临时表查询课程表信
23、息并将结果放入临时表TEMPTEMP中。中。SELECT SELECT * * FROM KCB INTO CURSOR TEMP FROM KCB INTO CURSOR TEMP(4)(4)使用使用INTO DBF|TABLE INTO DBF|TABLE 将查询将查询结果存放到永久表中。结果存放到永久表中。【例【例5.385.38】 查询课程表信息并将结果放查询课程表信息并将结果放入永久表入永久表TEMPTEMP中。中。 SELECT SELECT * * FROM KCB INTO DBF TEMP FROM KCB INTO DBF TEMP 使用使用SQLSQL语句对表中记录进行操
24、作,无须用语句对表中记录进行操作,无须用USEUSE命令打开表,便可完成有关记录的插入、更新、命令打开表,便可完成有关记录的插入、更新、删除等相关操作。删除等相关操作。SQLSQL语句与前面介绍的添加记录、语句与前面介绍的添加记录、修改记录及删除记录命令相比较,在操作方式和修改记录及删除记录命令相比较,在操作方式和方法上有很大的不同。方法上有很大的不同。SQLSQL语句在只对一条记录的语句在只对一条记录的操作时要简捷得多,但对多条记录操作并不方便。操作时要简捷得多,但对多条记录操作并不方便。5.3.4 5.3.4 使用使用SQLSQL语句更新语句更新表表1)1)插入记录插入记录 格式:格式:INSERT INTOINSERT INTO(1, 2) VALUES() VALUES(l, 2) ) 功能:在指定表末尾添加一条新记录。功能:在指定表末尾添加一条新记录。【例【例5.395.39】向表】向表dabdab添加一条记录。添加一条记录。INSERT INTO dab (INSERT INTO dab (学号学号, ,姓名姓名, ,性别性别, ,出生日期出生日期, ,专专业班级业班级);); VALUES(20060002, VALUES(20060002,张三张三,男男,1987-10-,1987-10-10,10,计算机计算机1 1班班) ) 结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度运输车队租赁及维保一体化服务合同2篇
- 派员担任法定代表人协议书(2篇)
- 二零二五年监护协议书:监护职责与被监护人的责任3篇
- 2025年度农业机械聘用驾驶员安全协议
- 二零二五年度男方赌博离婚协议正规范本附子女成长环境保障协议
- 二零二五年度水泥砖生产工艺研发合作合同
- 二零二五版土地确权登记居间服务合同
- 二零二五年度房屋租赁合同台账数字化升级改造合同
- 2025年度智能装备制造投资入股协议
- 二零二五年度离婚协议起草与婚姻家庭法律援助合同
- 2025年度厨师职业培训学院合作办学合同4篇
- 《组织行为学》第1章-组织行为学概述
- 25版六年级寒假特色作业
- 浙江省杭州市9+1高中联盟2025届高三一诊考试英语试卷含解析
- 市场营销试题(含参考答案)
- 2024年山东省泰安市高考物理一模试卷(含详细答案解析)
- 护理指南手术器械台摆放
- 肿瘤患者管理
- 四川省成都市高新区2024年七年级上学期语文期末试卷【含答案】
- 2025年中国航空部附件维修行业市场竞争格局、行业政策及需求规模预测报告
- 《应收培训》课件
评论
0/150
提交评论