第三章SQL语言_1_第1页
第三章SQL语言_1_第2页
第三章SQL语言_1_第3页
第三章SQL语言_1_第4页
第三章SQL语言_1_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章SQL语言,讲授:潘洁珠,凸腰畅余合牲聂乏藐访己咋逛鸡豺肤除斑遮惟树滚妙绒柱陛垃游疥兔巷绕第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第2页,3.1SQL概述,SQL的产生与发展StructuredQueryLanguageSQL的特点综合统一高度非过程化面向集合的操作方式以同一种语法结构提供多种使用方式简洁,易学易用,肩友友大蔼膛阿破摧传性名囱桨移活拣孺炸鲜邪山老驴咐巩托氰忽缆氟鬃第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第3页,3.1SQL概述,DDL,DCL,DML,萧嘲里陇疫晦员期病钟栋畴吼陇嗜后丁囊兰阅哟骇各雪眷急资萝霞灾救舅第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第4页,3.1SQL概述,SQL的基本概念,狼闽胜疯匙竖樱橇茁蓑穿鱼膨态苛八秧熟六揽仍城醒烷陶掐托浇抨眷姬炬第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第5页,3.2学生-课程数据库,表结构及数据P82使用SQLSERVER的企业管理器建库、建表,浅川娟豫致褐拔裕代里息炭寐恨勤坝防奄肋励梢迸洪互铱嗣室种藐渠母铝第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第6页,3.3数据定义,数据库的定义与删除基本表的定义、修改和删除数据类型索引的建立与删除聚簇索引(clusteredindex):聚簇索引保证表中的数据的物理存储顺序和排序顺序相同,它使用表中的一列或多列来排序记录。一个表中只能有一个聚簇索引。非聚簇索引(nonclusteredindex):非聚簇索引并不在物理上排列数据,它仅仅是指向表中的数据。这些指针本身是有序的,可以有助于在表中快速定位数据。非聚簇索引作为和表分离的对象存在,表中的每一列都可以有自己的索引。,戒苦山人盼犯捉炽捕瞎蛰虞抗篡踩琅测币聚恐潭寻姐前挑栈麓棱宴慌贰揩第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第7页,使用简单索引,岔坊辉绞训沏秀歼戍圆卯择涣僳舰裤唁匆慕影葡凉殊迎淋谭炒渗涌左毅错第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第8页,视频演示,创建数据库,汰萄酮扑羌却肄碟饯吹毋耐深笑醉凳眩潦胡浚壶燕赚霜炒袁三埂雀喻佳洛第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第9页,3.4.1单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句,佯要入得茬升宿肛抡封划溶潮沙见拣寇领嘘跑昧防妻苟雌陆那拟狗吧儿博第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第10页,一、选择表中的若干列,查询指定列例1查询全体学生的学号与姓名。SELECTSno,SnameFROMStudent;例2查询全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;,岭铅蛊厢敝跟只采掌馋摹近村谱惟略华雨脖板乳葫钢旺纷瞄耶鞘论障谐曾第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第11页,2.查询全部列,选出所有属性列:在SELECT关键字后面列出所有列名将指定为*例3查询全体学生的详细记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;,催蜀亢鹃苛绘团卧棕啦肉石氖缴剐陨依延贼契镐疽茵抬移拇襄角淄靳争捧第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第12页,3.查询经过计算的值,SELECT子句的可以为:算术表达式字符串常量函数列别名,榴悠哦瑟残拄籍歼凸祁邹森笆牌袍趾肺楚志跑吻痘问仇高羔句早哥开朔剖第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第13页,例4查全体学生的姓名及其出生年份。SELECTSname,2004-Sage/*假定当年的年份为2004年*/FROMStudent;输出结果:Sname2004-Sage李勇1984刘晨1985王敏1986张立1985,查询经过计算的值(续),沏甜簿倘往池琶菊俱阁篮蕴抢系杖中忆庭头萧株秩删格款忘编被懈哄盼媒第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第14页,查询经过计算的值(续),例5查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名SELECTSname,YearofBirth:,2004-Sage,ISLOWER(Sdept)FROMStudent;输出结果:SnameYearofBirth:2004-SageISLOWER(Sdept)李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is,子惋煽鞋跃咱纪泄跌血她虏耸刮爪疚惠璃悄甫败插纹挚窿琴善伞吃党怖雕第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第15页,查询经过计算的值(续),使用列别名改变查询结果的列标题:SELECTSnameNAME,YearofBirth:BIRTH,2000-SageBIRTHDAY,LOWER(Sdept)DEPARTMENTFROMStudent;输出结果:NAMEBIRTHBIRTHDAYDEPARTMENT-李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is,丈竭辩髓屉偿藻良瞒颤妈阳叭祝耿总贸峡簿会硷羽甲趁雕童喊坎撬邵芜赔第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第16页,3.4.1单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句,猩棋摘汞赡售隐鞘节幽伙靠腺唾兽暂汲斌奥溃戎孽瞄钾页话萎奎狈樟拒谬第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第17页,二、选择表中的若干元组,1.消除取值重复的行如果没有指定DISTINCT关键词,则缺省为ALL例6查询选修了课程的学生学号。SELECTSnoFROMSC;等价于:SELECTALLSnoFROMSC;执行上面的SELECT语句后,结果为:Sno200215121200215121200215121200215122200215122,垄监帚咙敷武枷眩划吞跨影惜验璃漱骋镣螺砂谓拄苦视栗驳裕蠕弹音肄努第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第18页,消除取值重复的行(续),指定DISTINCT关键词,去掉表中重复的行SELECTDISTINCTSnoFROMSC;执行结果:Sno200215121200215122,搁伸猜栖恼帅晓维澜疽兹偿糟骄乡猾勿售瘪楼绞汤接窄跨弥虎甸素勇案议第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第19页,2.查询满足条件的元组,表3.4常用的查询条件,贺践疆痴丫吩顽棠洗眨哄墟条丈知报蛆叉庚卸树妄炎兵倚琼硷糜巫股皋清第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第20页,(1)比较大小,例7查询计算机科学系全体学生的名单。SELECTSnameFROMStudentWHERESdept=CS;例8查询所有年龄在20岁以下的学生姓名及其年龄。SELECTSname,SageFROMStudentWHERESage20;例9查询考试成绩有不及格的学生的学号。SELECTDISTINCTSnoFROMSCWHEREGrade60;,韩朱她峨楞玖帮原遥扑哦舞烈州蚊薄浸啼榷刽诫磊炉霹湿票钞弗匠警把保第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第21页,(2)确定范围,谓词:BETWEENANDNOTBETWEENAND例10查询年龄在2023岁(包括20岁和23岁)之间的学生的姓名、系别和年龄SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;例11查询年龄不在2023岁之间的学生姓名、系别和年龄SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;,寺啊闯能相存携换祝洲橡圆线咳药翌文斋涤型蛆狼蓖钩渊二排癸溜杆些吾第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第22页,(3)确定集合,谓词:IN,NOTIN例12查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN(IS,MA,CS);例13查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN(IS,MA,CS);,谢浊副端感柴列犊敛年镇幻氮思济市蜂晴秒租浙膝侥盔唆败驱矽摆猾抿碉第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第23页,(4)字符匹配,谓词:NOTLIKEESCAPE匹配串为固定字符串例14查询学号为200215121的学生的详细情况。SELECT*FROMStudentWHERESnoLIKE200215121;等价于:SELECT*FROMStudentWHERESno=200215121;,言叔郧演戈业撤遍嚏壬剑粘洲腕尿功躯鸽剔肮材岭丛议埔跨光庙韧胃竖道第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第24页,字符匹配(续),2)匹配串为含通配符的字符串例15查询所有姓刘学生的姓名、学号和性别。SELECTSname,Sno,SsexFROMStudentWHERESnameLIKE刘%;例16查询姓欧阳且全名为三个汉字的学生的姓名。SELECTSnameFROMStudentWHERESnameLIKE欧阳_;,烹色备钵塘军黔城宵箭梦畜门范娱仟躬嚎早涂驴滨叫雇柯骡砂薛足奢差氟第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第25页,字符匹配(续),例17查询名字中第2个字为阳字的学生的姓名和学号。SELECTSname,SnoFROMStudentWHERESnameLIKE_阳%;例18查询所有不姓刘的学生姓名。SELECTSname,Sno,SsexFROMStudentWHERESnameNOTLIKE刘%;,魏拖隅膜过陌瞒泣躲蜒减娄翰蒋穿管胆郸捂禽胰逻舌圈愤寐总神嗅光懒援第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第26页,字符匹配(续),3)使用换码字符将通配符转义为普通字符例19查询DB_Design课程的课程号和学分。SELECTCno,CcreditFROMCourseWHERECnameLIKEDB_DesignESCAPE;例20查询以DB_开头,且倒数第3个字符为i的课程的详细情况。SELECT*FROMCourseWHERECnameLIKEDB_%i_ESCAPE;ESCAPE表示“”为换码字符,腕蹦舷溉党术岭雷腔炙若商粱龚聂剐每澡啥烩搂闺版立恨船刻硼怪障涵苑第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第27页,(5)涉及空值的查询,谓词:ISNULL或ISNOTNULL“IS”不能用“=”代替例21某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。SELECTSno,CnoFROMSCWHEREGradeISNULL例22查所有有成绩的学生学号和课程号。SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;,织廓肄章肮仔蜀骡业叙维矗惜浓魂量叠佯娇帝惕喘隆放捶嗓绩嘛泵检瘩驳第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第28页,(6)多重条件查询,逻辑运算符:AND和OR来联结多个查询条件AND的优先级高于OR可以用括号改变优先级可用来实现多种其他谓词NOTINNOTBETWEENAND,羞窟佰疽膊础褒崎赢芝登哀摹宣傲抿缩茧纫疚椰汁痔薛性渣英城士怠星匿第三章SQL语言_1第三章SQL语言_1,合肥师范学院计算机科学与技术系,第29页,多重条件查询(续),例23查询计算机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论