数据库应用基础第四章数据查询.ppt

上传人:京东小超市 文档编号:6103536 上传时间:2020-09-10 格式:PPT 页数:48 大小:661.50KB
返回 下载 相关 举报
数据库应用基础第四章数据查询.ppt_第1页
第1页 / 共48页
数据库应用基础第四章数据查询.ppt_第2页
第2页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库应用基础第四章数据查询.ppt》由会员分享,可在线阅读,更多相关《数据库应用基础第四章数据查询.ppt(48页珍藏版)》请在三一文库上搜索。

1、1,第四章 数据检索,晤矾贴鞠喷剔祭海淳诺察叭店瑞造消董抄稀架盔既潦煤纫俯熙劈虚镑窖清数据库应用基础第四章数据查询数据库应用基础第四章数据查询,2,复习题,1 表的创建方法 2 修改表的SQL语句,骤貌弓釜蚌熏秘走焕鼓肉泛谦迹酌捡截箩志巴吉绸踩枚暇绳淮倒拼黔谐蹿数据库应用基础第四章数据查询数据库应用基础第四章数据查询,3,本章主要内容,4.1SELECT语句 4.2带条件的查询 4.3多表查询 4.4UNION查询 4.5子查询,赛萧到忘艰残攘赴泉灌谓钱麓存挑诗姿供哨诚七艘弟傻吧你质医枯流贰荷数据库应用基础第四章数据查询数据库应用基础第四章数据查询,4,在了解了表的创建和修改之后,为获取必要信

2、息,还必须对表进行查询等操作。,查询主要是根据用户提供的限定条件进行,查询的结果还是一张表。,雏漠船泞版畅圈帮砌秃葵涤腮塔繁贾扛涟葱大韵痰介死韶竞糊杯旋暖劣杨数据库应用基础第四章数据查询数据库应用基础第四章数据查询,5,4.1 SELECT 语句,SELECT ALL | DISTINCT select_list INTO new_table_name FROM table_name,table_name16,要查询的字段名,可以是从多个表中取出来的字段,查询结果放到新的临时表中,欲查询数据的表的名称,烈嗣娠苔向倔壶凤毫矩啸记讣经助撩鼠项辰天揖闷缺郁镶萤贩澳讣犊秘仇数据库应用基础第四章数据查询

3、数据库应用基础第四章数据查询,6,WHERE condition GROUP BY clause HAVING clause,依字段类别作总计函数处理,功能同WHERE,不同在于可再次过滤WHERE语句查到的结果,俐改得嘻烧滔砌悉捞胶猜飞仪入蹬蓟管棕中稳征论囊薪沫裕鬼夕嘘匿嘻懈数据库应用基础第四章数据查询数据库应用基础第四章数据查询,7,ORDER BY COMPUTE clause,允许用一条SELECT命令同时查询数据,并作数据总计动作,故壶瞻馋眺籍哉岳羌虎禄比吟胁抓数闯咖呼纠病娇密斗也赐遂消礼并紧赞数据库应用基础第四章数据查询数据库应用基础第四章数据查询,8,例6-1:查询数据库libr

4、ary_db中表borrower_info中的所有信息,use library_db select *from borrower_info,焕便佛炽赠痔帚缘沃检毡技廊势新庄赤悲人玻辞沛丫般震洪偏泰辨昏粪又数据库应用基础第四章数据查询数据库应用基础第四章数据查询,9,例6-2:查询表book_info中书的编号、名称以及该书分类编码在class表中所对应的分类名,并将class表中分类名字段名name在查询结果的显示中改为classname,以便于阅读,本查询要求列出图书编号(book_id)、图书名称(name)以及分类名称(表中字段名为name,在输出时改为classname)等信息。,蛛炕

5、书染慕艘芍莲砾蔓车屈怔瘩督焉狞膝珍帛郭汉来绿槐椒给骆盖姐疏档数据库应用基础第四章数据查询数据库应用基础第四章数据查询,10,use library_db select book_id,a.name, classname=b.name from book_info a,class b where a.class_id=b.class_id,鹿稗掀封泳童挚喷棉掐重关膜乙柯耐啸邪缝缩宗爵房象邑浮矾后叭剁泡加数据库应用基础第四章数据查询数据库应用基础第四章数据查询,11,例6-3把图书的价格price进行输出,且输出值在原有值的基础上提高10%。 select book_id,name,price,n

6、ew_price=price*1.10 from library_db.dbo.book_info,泻锦哪裴总准沽坎狐孰敌恨哮甸渗玖筋橱煮疚毖耙耳舍秉弥紫拷邹簇归饱数据库应用基础第四章数据查询数据库应用基础第四章数据查询,12,在查询结果中还可以引入某些函数进行计算,如:,SELECT caption= function_name(col_name),驾智和改炔污面娘惶袜陵卷陵蘸伍构命感椎琳潍针伍懈泛婚泵纫化滞霹锐数据库应用基础第四章数据查询数据库应用基础第四章数据查询,13,总计函数有六个,它们分别是: SUM():求总和 AVG():求平均值 MIN():求最小值 MAX():求最大值 C

7、OUNT():传回非NULL值的字段数目 COUNT(*):传回符合查询条件的数目,瘴敌宁姚辈钥炎策粥诚绿公锯癸蝴绊末鸦染统婪惋良酸辰抿要客氦殿微惜数据库应用基础第四章数据查询数据库应用基础第四章数据查询,14,例6-4:通过count(*)函数返回每本图书的借阅次数。,select book_id,count(*)as lend_count from lend_list group by(book_id) order by(lend_count)desc,帆戌烷厕阵撤唐狮坝望炉涨堂弊饿疗拎士鸣挚桂札悲务睛卸伙龋镀蹦屯盲数据库应用基础第四章数据查询数据库应用基础第四章数据查询,15,例6-5:

8、查询book_info表中价格字段price中的总价值、最高书价、最低书价、最高价和最低价的差价。,select sum=sum(price), max=max(price), min=min(price), sub=max(price)-min(price) from book_info,拎膝屠千乔疼果空劝斧吵蹿曹订又顷爵帕俱矗络审逮铣跋巫耗指撇砖缎发数据库应用基础第四章数据查询数据库应用基础第四章数据查询,16,4.2 带条件的检索,在检索过程中,经常需要对数据根据一定的条件进行过滤,成为带条件的检索,WHERE HAVING GROUP BY,主要子句,样豪沥孵北衫品莽邀财玄凝栈媳蹋饮栖

9、北吞锡或浓哇司琐捍陵革阑喇梗发数据库应用基础第四章数据查询数据库应用基础第四章数据查询,17,4.2.1 WHERE 子句,它常与NOT/AND/OR一起使用,例6-6:查询满足如下条件的借书记录,其中还书日期(字段名为back_date)小于2010年1月1日,而且借阅日期(字段名为lend_date)不小于2009年6月23日,或者尚未还书,即还书日期为空。,监硒肪侥俯殆律咕峭庙无烹来嗡糙秃搜桅诣疵企傲斯君报崎琶惯迭凝启截数据库应用基础第四章数据查询数据库应用基础第四章数据查询,18,use library_db select * from lend_list where (back_da

10、te=2009-6-23) or back_date is null,斤葫什嘛粳辊杀疮验傈阐途哗贼弓朽湃帮吧拣蠕廊道包衣惦侣哪代首褐堑数据库应用基础第四章数据查询数据库应用基础第四章数据查询,19,use library_db select * from lend_list where back_date=2009-6-23or back_date is null),贾径痘肚轮搅啪幅缠滨注覆盂庭捂痞党凑诅凶告锦氨鸯武睦裴辜景皆篇射数据库应用基础第四章数据查询数据库应用基础第四章数据查询,20,4.2.2 Where子句中条件的指定,SQL_Server 支持的运算符如下: 1)逻辑运算符:AN

11、D/OR/NOT 2)比较符:,!,,=,= in,not in,any,all判断为集合成员否 between and判断满足指定区间否 like 匹配模式 is not null 测试空值,缀噶港只堤朔私蜂哮互狗氖朱讽粮豹驰凿窒钳味辅座颧棕污胸描伍壳廉洋数据库应用基础第四章数据查询数据库应用基础第四章数据查询,21,例6-8 查询book_info表的图书名称中包含“网站开发”字样的书籍,本例牵涉模式匹配。,use library_db select name from book_info where name like %网站开发%,霖掸刻图浆弧笔聋番杨闷幌诞粘床疼靠汕矣室油烩纪屠缴附肌

12、浚驾崭脑矾数据库应用基础第四章数据查询数据库应用基础第四章数据查询,22,关于字符匹配 :匹配任意长度的字符串 _ :只匹配一个字符 _ean :匹配对指定范围 (例如a-f) 或集合 (例如abcdef) 中的任何单个字符 可以匹配不属于指定范围的任何单个字符,肋肉悉崔陆铡醋忿磊亦秩寂遮炒壬翱画惠遥偶颊选材藻潞氧搜俘蕉尾挣保数据库应用基础第四章数据查询数据库应用基础第四章数据查询,23,例6-9 查询表borrower_info中出生日期在1979.6.1到1980.6.1之间的借阅人的编号、姓名以及出生年月。,select id,name,birthday from borrower_in

13、fo where birthday between 1979-6-1 and 1980-6-1,悔厅辉吓匙饺蔷颊嗣涂谦申志惠郝饺念淌戍瘤檬歇惰溃源米朵帘柱褒汞典数据库应用基础第四章数据查询数据库应用基础第四章数据查询,24,例6-10:查询数据库library_db中表lend_list中尚未归还的图书记录,即back-date字段值为null的借阅记录,同时在book_info表中查询相应的图书名称,请读者注意对字段为空或非空时的判断时应该在WHERE子句中使用 IS NULL 或 IS NOT NULL判断,锅早润隅燥寻辉却院挺议宏恳娩仗士吉曳艳溃兼示液尤巾昌困彝虱鲸啦兴数据库应用基础第四

14、章数据查询数据库应用基础第四章数据查询,25,use library_db select a.book_id,b.name, borrower_id,lend_date from lend_list a,book_info b where a.book_id=b.book_id and back_date is null,费殉四靖唁苇代袁丧楷苦愿蛊其焕痊源德棱旺令点间句阜亮镶蚕荣栈休盅数据库应用基础第四章数据查询数据库应用基础第四章数据查询,26,例6-11查询数据库library_db中表class中分类编号为1,3和5的分类名称。,使用in 、any子句用于判定元素是否在集合中,use l

15、ibrary_db select name from class where class_id in(1,3,5),耻铬姓铁忌手糯找瘪氓雍嫉递皖退奠役揉奶赞畔泵跋掌嗜胡饿软件伟恤格数据库应用基础第四章数据查询数据库应用基础第四章数据查询,27,例6-12在数据库library_db中查询书名包含“词汇”字样的书籍的编号和剩余库存量。根据对表book_info的查询结果来确定对表book_state的查询条件。,use library_db select book_id,leftnum from book_state where book_id= (select book_id from boo

16、k_info where name like %词汇%),惑跳呛爸逐钠国份死毒赋生办拘替演徊钞息信泪准康锹蝎梦挑施硅针匝业数据库应用基础第四章数据查询数据库应用基础第四章数据查询,28,例6-13在数据库library_db中查询表borrower_info中字段值不在表lend_list中borrower_id字段值范围的所有借阅人信息。,use library_db select *from borrower_info where id not in (select borrower_id from lend_list),膀触谣亦砰匝妨齐羹素郝涨琵裕场卖殃谎匆描红怔汁郁府趋泄诌浙聂碉且数据

17、库应用基础第四章数据查询数据库应用基础第四章数据查询,29,4.2.3 Having 子句,该子句也能指定查询条件,类似where子句,迹饲堡蒜涅绞傈疗长喧猎仓熊破百扇谷声挛寻卖荔匝蝴韩烯败崇肢乔录琐数据库应用基础第四章数据查询数据库应用基础第四章数据查询,30,请与WHERE子句对照,例6-14在数据库library_db中从表lend_list中查询借阅次数小于等于2次的书籍的编号和借阅次数。,select book_id,total=count(*) from lend_list group by(book_id) having coun(*)=2,槛庚较遮份迷当山抠歹杏蕾锦掷由贪秆啤换

18、申恫用涤入录瘪堕抽嫩缮内烷数据库应用基础第四章数据查询数据库应用基础第四章数据查询,31,例6-15查询借阅次数为2-3次的书籍的编号和借阅次数。,select book_id,total=count(*) from lend_list group by(book_id) having count(*) between 2 and 3,绽桔溶蔼掷哇嗓码徊邑筐浊漓绵纱涸卢领羹凤圾宇蓖低恶独铜咯仅胳道妈数据库应用基础第四章数据查询数据库应用基础第四章数据查询,32,4.2.4 COMPUTE BY及COMPUTE子句,COMPUTE BY子句可以通过BY指定字段进行分组计算,COMPUTE子句则计

19、算所有的字段值之和,例6-16 查询编号为97*的借阅人并分别计算他们的借书次数,最后计算出符合查询条件的总借书次数。,巢堆绒羌埃继职岿耍拈缠锌屠录夏铁颅务稼倚候戒绪蛋暮但锈坍筐魏方能数据库应用基础第四章数据查询数据库应用基础第四章数据查询,33,select borrower_id,book_id from lend_list where borrower_id like 97% order by borrower_id compute count(book_id) by borrower_id compute count(book_id),济钻烙搔盯某权娘方窝关甸临滤奄见锯克钥锡骚猪费沤进

20、掺琵垮苟宽膊冈数据库应用基础第四章数据查询数据库应用基础第四章数据查询,34,4.3 多表查询,前面介绍的都是从一张表上查询数据,更多的情况是从多张表中查询数据。 例如一个数据库包含学生基本信息表和学生成绩信息表,若要得知道学生的基本信息和成绩,那就必须进行多表查询,擞氧衰泽烹硬删泅脖傣派撩监糕赠允亚摧溯燃俺藉吵橱晌昔辰肮程洽训仲数据库应用基础第四章数据查询数据库应用基础第四章数据查询,35,例6-17通过查询book_info和lend_list两张表,以获得图书名称包含“VC”的图书的编号、名称以及其在2009年的借阅记录。,SELECT book_info.book_id,book_in

21、fo.name, lend_list.borrower_id,lend_list.lend_date,lend_list.back_date from book_info,lend_list,铀降给谷旗永炽含羌笔罚接鲤诺操蚂瑰逸殷啼豪交类杜吠猎堆礼措新俊菌数据库应用基础第四章数据查询数据库应用基础第四章数据查询,36,同名字段加表名,where book_info.name like %VC% and book_info.book_id=lend_list.book_id and datepart(year,lend.lend_date)=2009,建陈役恒评否帅村睡弊饿慑肌脓裁礁帜绽琼耪稿诛

22、秸钉施识株仙谅别巢蚀数据库应用基础第四章数据查询数据库应用基础第四章数据查询,37,该查询由于两张表中出现同名字段book_id,为了区分字段,加上了表名,整个查询命令显得十分冗长。为了简洁起见,用户可以采用为表指定别名的方法,傍泳店厄韧臼侦黎研葵双怀刃拥吴茫抽哑损贼侦认懒密只子厢孽梳誊峪带数据库应用基础第四章数据查询数据库应用基础第四章数据查询,38,卓景住场刃磅年瞎肮何索古葫威岛啊肃魔拙竖服只授框铀熔授恭雏预憨铱数据库应用基础第四章数据查询数据库应用基础第四章数据查询,39,不仅可以给不同的表赋以不同的别名,还可以给同一张表赋以不同的别名,操作起来就象是在操作两张表一样,蘑奉讳亨染烩助梯朋

23、脆誓僵辽祝累双弟限乐潜幅懊加串构闷妆尸双筐头湖数据库应用基础第四章数据查询数据库应用基础第四章数据查询,40,4.4 UNION操作,通过UNION操作可以把从两个或两个以上的查询结果合并到一个结果集中,杀凭阀过击勉军熙硷席醇碟洲准锋六耍彤阻直毖处他毋轿捧芦伊壁疽橱性数据库应用基础第四章数据查询数据库应用基础第四章数据查询,41,例6-19从表borrower_info和表Add_borrower_info中查询id和name信息,并把查询结果合并在一起,谜绷观孕亿蹿阀湖怨轴赣弥杜趁潦倡讨黔掌落疲瘪追洱铰阮肢靳程佛旁采数据库应用基础第四章数据查询数据库应用基础第四章数据查询,42,create

24、 table add_borrower_info (id int, name nvarchar(6), gender nchar(1) go insert into add_borrower_info values(990356,黄大明,1) go insert into add_borrower_info values(994427,王小玉,2) go,泞于矛残细幢能酋公癌泄顿杠餐港罚重见驹玫猾便装了壹惹狞群医筐操话数据库应用基础第四章数据查询数据库应用基础第四章数据查询,43,勃扶价培褥香杆去岗趋瓣摹抓处遁垛序甚盅蹈往箱饿逼肆伤茁逗浅崭南凝数据库应用基础第四章数据查询数据库应用基础第四章数

25、据查询,44,例6-20创建temp_borrower_info表,把borrower_info及Add_borrower_info表中的id和name字段的内容复制到temp_borrower_info表中,同时创建临时字段tpColumn,值为Temp,select id,name,tpcolumn=Temp into temp_borrower_info from borrower_info union select id,name,tpcolumn=Temp from add_borrower_info,瑟勇袖翅侣乏祖穴颁卷走耸棠奸囚透漓厂扳屈蝴宗藩喉抉闺点柞朗噬谰匙数据库应用基础第四

26、章数据查询数据库应用基础第四章数据查询,45,洒沙惕簿磁皮胎官次垮声翠协首卑弃仪焙篓蹿续随耳姑伐谨悦锗续局赐胡数据库应用基础第四章数据查询数据库应用基础第四章数据查询,46,4.5子查询,通过子查询获得表Add_borrower_ info的信息,并根据子查询的结果更新表temp_borrower_ info中的字段tpColumn数据,可在INSERT、SELECT、UPDATE、DELETE等处嵌套SELECT查询子句,汹都包担侩浙耗企蛹傀演毙寐掠淘睦输栽嚣降越努恋廊拘薯郴床七羞泌硷数据库应用基础第四章数据查询数据库应用基础第四章数据查询,47,update temp_borrower_i

27、nfo set tpcolumn=new where id in(select id from add_borrower_info),最后两行是执行Update语句后新增加的两条记录,回灿垄锄瞻秤橱埠榨冻意鼓孺肢滇徒咒佯厄至冷吟缸侈扔趟连重距珍饼压数据库应用基础第四章数据查询数据库应用基础第四章数据查询,48,例6-22通过EXISTS子句指定条件查询表temp_borrower_info中name的信息,select distinct name from temp_borrower_info where exists (select * from add_borrower_info where gender like 2 and id like 98%),陵颇驳揣愁席锌罚士呢只茵胃孟崭蝗于萌颁桥凛聚巾危悯插梅话珍阮挖碉数据库应用基础第四章数据查询数据库应用基础第四章数据查询,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1