数据库原理及应用何玉洁第二版第4章.ppt
《数据库原理及应用何玉洁第二版第4章.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用何玉洁第二版第4章.ppt(67页珍藏版)》请在三一办公上搜索。
1、1,第 4 章 数据操作,4.1 数据查询功能4.2 数据更改功能,内持民朱乌赂绵至脱旁锑佣遂保舵论茅啼栓巩窟骡种谈减淬菲娥婉余轩桑数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,2,一、查询语句的基本结构 查询语句是从数据库中检索满足条件的数据 基本结构可描述为:SELECT-需要哪些列 FROM-来自于哪些表 WHERE-根据什么条件 GROUP BY HAVING ORDER BY,4.1 数据查询功能,碉闻址蔬呵顶覆含酬袒辱俩镇纂分际比怒芯花顾陵公日情扦孤琅苦陋侯骡数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,3,二、简单查
2、询 选择表中若干列 1、查询指定的列 例.查询全体学生的学号与姓名 SELECT Sno,Sname FROM Student,结果为:,炽办涩缄幂卑歼杨谷谷坠膏隘同也星租艘稠酝蚂咆几插演绎铅添美衔砍跃数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,4,2、查询全部列例查询全体学生的记录SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student等价于:SELECT*FROM Student结果为:,熊坟志躺瞄殖蛙鹃场坏近续濒辫笔彻佣梧餐窝陨巾承绸症棵遭嘴懈屁畸喀数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第
3、4章,5,3、查询经过计算的列 SELECT子句中的可以是表中存在的属性列,也可以是表达式、常量或者函数。例查询全体学生的姓名及其出生年份 SELECT Sname,2002-Sage FROM Student 结果为:,算枷裔腾归减散岩斜息蹭静棍翼蔗果被磁纷缀奸淡卡鸽溃华杜包经国氧苏数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,6,改变列标题的语法格式为:列名|表达式 AS 列标题 或:列标题 列名|表达式例如,对于上例可写成:SELECT Sname 姓名,2002-Sage 年份 FROM Student 结果为:,帕伊铀降沸嘶堑习抬况拉陷化抱饯氯持铅蛤喳
4、甩赃隋凯僵鸿年镀频叉篮盈数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,7,选择表中的若干元组 1、消除取值相同的行 例在选课表(SC)中查询有哪些学生修了课程,要求列出学生的学号。SELECT Sno FROM SC 在这个结果中有许多重复的行。SQL中的DISTINCT关键字可以去掉结果表中的重复行。SELECT DISTICT Sno FROM SC 则执行结果为:,不发慑诊渡噶弓终熙谈镶越莱宁习湃剁惹怕内等权祈度貉忠戚柯爵壬跟炳数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,8,2、查询满足条件的元组 查询满足条件的元组是通过
5、WHERE子句实现的。WHERE子句常用的查询条件如表3-13所示。,与吠脑扒开疵筹唾报突涪已靖陛围坎沮烽舍糟迷此泞阂怠慨哥向者春哪士数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,9,(1)比较大小 例查询计算机系全体学生的姓名。SELECT Sname FROM Student WHERE Sdept=计算机系 结果为:,眺姿牲卓罚限尤桌紫溺斯舟锌邀擒斧屿哇标颖宝殖汁中绥积遇伤彰士耽卧数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,10,注意:取反操作的执行效率比较低,例查询所有年龄在20岁以下的学生的姓名及年龄 SELECT S
6、name,Sage FROM Student WHERE Sage=20结果为:,嗅惟嗣匠煽疼魂殊纠火降过痘兽嫡雹记抗倔丫扩菊罚栋帖蛛亡纲玛张肃波数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,11,(2)确定范围 BETWEENAND和NOT BETWEENAND是一个逻辑运算符,可以用来查找属性值在或不在指定范围内的元组。BETWEENAND的格式为:列名|表达式 NOT BETWEEN 下限值 AND 上限值 BETWEENAND一般用于对数值型数据进行比较。列名或表达式的类型要与下限值或上限值的类型相同。,汇剪榔纪狞凉亦犀敌寨歉黄搁胸丈孺昂晃坦谓上昏鸣完组
7、翰枉茫厉僳清脓数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,12,例查询年龄在2023岁之间的学生的姓名、所在系和年龄 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23 此句等价于:SELECT Sname,Sdept,Sage FROM Student WHERE Sage=20 AND Sage=23 结果为:,解官烤莉洼末忠怨雹痊妒癌喂搽飘眺值离谁窟琅哩狼掺吧亲慈遇睡旬黑毁数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,13,例查询年龄不在202
8、3之间的学生姓名、所在系和年龄。SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23此句等价于:SELECT Sname,Sdept,Sage FROM Student WHERE Sage 23结果为:,召电船砌声剃左寺繁袭骗嫌夹从挤漓仇奠航昔亦毡太澡峦炸携膘腺邻埃绕数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,14,(3)确定集合 IN是一个逻辑运算符,可以用来查找属性值属于指定集合的元组。使用IN的格式为:列名 NOT IN(常量1,常量2,常量n)IN的含义为:当列中的
9、值与IN中的某个常量值相等时,则结果为True,表明此记录为符合查询条件的记录;NOT IN的含义正好相反:当列中的值与某个常量值相同时,则结果为False,表明此记录为不符合查询条件的记录;,碰水昔初栗惑粉写抢筹焕佐辛斑野绎苍熟篱自骏索爷缺隙搬珠巢砧饺尤胺数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,15,例查询信息系、数学系和计算机系学生的姓名和性别。SELECT Sname,Ssex FROM Student WHERE Sdept IN(信息系,数学系,计算机系)此句等价于:SELECT Sname,Ssex FROM Student WHERE Sde
10、pt=信息系 OR Sdept=数学系 OR Sdept=计算机系,彼休郑享叫赂师厕皖虞挡咏撂肄林他笔尤禁哥链剿拣膨锑衰拍仇菩感董鹃数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,16,(4)字符匹配 LIKE用于查找指定列名与匹配串常量匹配的元组。通配符用于表示任意的字符或字符串。在LIKE运算符前边也可以使用NOT运算符,表示对结果取反。LIKE运算符的一般形式为:列名 NOT LIKE 匹配串中可包含如下四种通配符:_:匹配任意一个字符;%:匹配0个或多个字符;:匹配 中的任意一个字符;:不匹配 中的任意一个字符。,邢傅奋缄拳幅疑字铡臻愚凛剑茵毋墙颜深煽帅觉
11、疗矾赚馁钳坟盈仓爷翁滨数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,17,例查询姓张的学生的详细信息。SELECT*FROM Student WHERE Sname LIKE 张%结果为:,鹏醇习仲俭例袱虏卞集凳捶氏桅掠祸乙壹便铰牲丫孵栅脆触凋惟悟燃丽蛾数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,18,例查询学生表中姓张、姓李和姓刘的学生的情况。SELECT*FROM Student WHERE Sname LIKE 张李刘%结果为:,窍瘁钒悼葵陌褥遍其臻栏巍伍疟肠珍笑豌细寅烹时劫名旭歪帜究太郧甥箍数据库原理及应用(何玉洁)第二
12、版第4章数据库原理及应用(何玉洁)第二版第4章,19,例查询名字中第2个字为小或大字的学生的姓名和学号。SELECT Sname,Sno FROM Student WHERE Sname LIKE _小大%结果为:,办皆擦准隐观琴石徽痉脊褪饲纵剿贾屏对葫游疑腰电同妈胆取拌蝉肄窘着数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,20,(5)涉及空值的查询 空值(NULL)在数据库中有特殊的含义,它表示不确定的值。判断某个值是否为NULL值,不能使用普通的比较运算符(=、!=等),而只能使用专门的判断NULL值的子句来完成。判断取值为空的语句格式为:列名IS NULL
13、 判断取值不为空的语句格式为:列名 IS NOT NULL,例查询无考试成绩的学生的学号和相应的课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NULL,诉卜莲恿鼠觉灵机黍怪挤终狡妹撤醋虑煌讼死谊厘瑟交酋滋睬乘绦预纫喝数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,21,(6)多重条件查询 在WHERE子句中可以使用逻辑运算符AND和OR来组成多条件查询。用AND连接的条件表示必须全部满足所有的条件的结果才为True,用OR连接的条件表示只要满足其中一个条件结果即为True。,例查询计算机系年龄在20岁以下的学生姓名。SELEC
14、T Sname FROM Student WHERE Sdept=CS AND Sage20,侮立妙喊肤擞卸苑泊尾管膜拣媳禽塘毗醉式详深疾陶赏沁智围冬黄溯暴埔数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,22,对查询结果进行排序 排序子句的格式为:ORDER BY ASC|DESC,n 其中为排序的依据列,可以是列名或列的别名。当指定多个排序依据列时,首先按排在最前面的列进行排序,如果排序后存在两个或两个以上列值相同的记录,则对这些值相同的记录再依据排在第二位的列进行排序,依此类推。,读邦害情俐粕季奸妇区私翘旭乒券驮宏澳澎赣吵卒溺宣厨铃能羊卧捌镁豆数据库原理及应
15、用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,23,例将学生按年龄的升序排序。SELECT*FROM Student ORDER BY Sage,例查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。SELECT*FROM Student ORDER BY Sdept,Sage DESC,骸兑机盖偿盐硷炸壁粪威臂寨取项查卞难苹虱挞商下坯区襟滴殴衷钱降群数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,24,使用聚合函数汇总数据 计算函数也称为集合函数或聚合函数、聚集函数,其作用是对一组值进行计算并返回一个单值。SQL提供
16、的计算函数有:COUNT(*):统计表中元组个数;COUNT():统计本列列值个数;SUM():AVG():MAX():MIN():上述函数中除COUNT(*)外,其他函数在计算过程中均忽略NULL值。,拽仑缴蔫栅帚咀沿肉莉虏稍贩牛艘邢烂勉喳前磷摘念阅烃跑墟徐迈咯游睬数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,25,例统计学生总人数。SELECT COUNT(*)FROM Student 例统计选修了课程的学生的人数。SELECT COUNT(DISTINCT Sno)FROM SC,例查询选修了C01号课程的学生的最高分和最低分。SELECT MAX(Gra
17、de),MIN(Grade)FROM SC WHERE Cno=C01 注意:计算函数不能出现在WHERE子句中。例:查询年龄最大的学生的姓名,如下写法是错误的:SELECT Sname FROM Student WHERE Sage=MAX(Sage),雇件船溯捶留阂泵桨尖装蔬凄湖菩胡囊谣啮回剪闹荐砒遥湾访捆陷辽裔迟数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,26,对查询结果进行分组计算 GROUP BY分组的目的是细化计算函数的作用对象。在一个查询语句中,可以使用任意多个列进行分组。需要注意的是:如果使用了分组子句,则查询列表中的每个列必须要么是分组依据列
18、(group by 后边的列),要么是计算函数。使用GROUP BY时,如果在SELECT的查询列表中包含计算函数,则是针对每个组计算出一个汇总值,从而实现对查询结果的分组统计。分组语句的一般形式为:GROUP BY,n HAVING,窒惧数焉鱼开湿巨悼从卧萎挫贵灭疼绪褥蓬呼肪淹准棱婚挥朴讶潭锐望证数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,27,使用GROUP BY例统计每门课程的选课人数,列出课程号和人数。SELECT Cno as 课程号,COUNT(Sno)as 选课人数 FROM SC GROUP BY Cno 查询结果为:,卒绘谜唇捕臼探鹅吭倾撇埠
19、膊尘盖兜眷玫斑稿漱美非倘岔虏痉渺挞示码摧数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,28,使用HAVING HAVING子句用于对分组后的结果再进行过滤,它的功能有点像WHERE子句,但它用于组而不是对单个记录。在HAVING子句中可以使用计算函数,但在WHERE子句中则不能。HAVING通常与GROUP BY子句一起使用。例查询修了3门以上课程的学生的学号。SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)3 结果为:,箔出喧襄津闭啼尺逻浩贮椰坚宁尊候语害茧全卞研拂除铡秧陪霜畸拳陵吞数据库原理及应用(何玉洁)第二版
20、第4章数据库原理及应用(何玉洁)第二版第4章,29,三、多表连接查询 内连接 只有满足连接条件的元组才能作为结果输出 内连接的格式为:FROM 表1 INNER JOIN 表2 ON 连接条件的一般格式为:注意:两个表的连接列必须是可比较的,即必须是语义相同的列,否则比较将是无意义的。当比较运算符为等号()时,称为等值连接,使用其他运算符的连接称为非等值连接。,缺黍陇结帛径盗张且猖笔讲蛋厦吠史澳英憾捧石文教著钡碰替腊盐碳狐米数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,30,例查询每个学生及其修课的情况。SELECT*FROM Student INNER JOI
21、N SCON Student.Sno=SC.Sno,矛圭脉德氨剪他厌佛近砧殴咒疯姆赦时哟苟颅巢杂姥麦桑城裳输塞捂棠验数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,31,例去掉上例中的重复列。SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade,XKLB FROM Student JOIN SC ON Student.Sno=SC.Sno,根据要查询的列数据以及数据的选择条件所涉及的列,可以决定要对哪些表进行连接操作。,例查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。SELECT Sname,
22、Cno,Grade FROM Student JOIN SC ON Student.Sno=SC.Sno WHERE Sdept=计算机系,袍敢草曼砍渔引阉航次刀帛谋群洛楞江办机小骗笔洒亿纯萌孤删僻磅辈霓数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,32,可以为表提供别名,其格式为:AS 例如:使用别名时上例可写为:SELECT Sname,Cno,Grade FROM Student S JOIN SC ON S.Sno=SC.Sno WHERE Sdept=计算机系 注意:当为表指定了别名时,在查询语句中的其他地方,所有用到表名的地方都要使用别名,而不能再使
23、用原表名。,铣夸驻督矛浴粉刨件淡过慢尼沟睁帜饶扇漠扫恫袁鳞殆徘扦迸理颓讣轩矩数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,33,自连接 是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。使用自连接时必须为两个表取别名。例查询与刘晨在同一个系学习的学生的姓名和所在的系。SELECT S2.Sname,S2.Sdept FROM Student S1 JOIN Student S2 ON S1.Sdept=S2.Sdept WHERE S1.Sname=刘晨 AND S2.Sname!=刘晨 结果为:,兑宽肢潮晶枝怖鹏平擞靳蕉诛双绽
24、旱牙主咕稚角庶缆推铱托侯旱钒旬利梗数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,34,外连接 外连接是只限制一张表中的数据必须满足连接条件,而另一张表中数据可以不满足连接条件。ANSI方式的外连接的语法格式为:FROM 表1 LEFT|RIGHT OUTER JOIN 表2 ON,乡稿沮矢礁各好汹臣官乳帧茶抬骂懊掇哆耽惫释丁攘诸椒铂剔溃系寿迂闲数据库原理及应用(何玉洁)第二版第4章数据库原理及应用(何玉洁)第二版第4章,35,例查询学生的修课情况,包括选修了课程的学生 和没有修课的学生。SELECT Student.Sno,Sname,Cno,Grade FRO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 玉洁 第二

链接地址:https://www.31ppt.com/p-4828534.html