已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,查询,.,数据查询,语句格式SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;,.,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句,.,1、选择表中的若干列,查询指定列查询全体学生的学号与姓名。SELECTSno,SnameFROMStudent;查询全体学生的姓名、学号、所在系。SELECTSname,Sno,SdeptFROMStudent;,.,2.查询全部列,选出所有属性列:在SELECT关键字后面列出所有列名将指定为*查询全体学生的详细记录。SELECTSno,Sname,Ssex,Sage,SdeptFROMStudent;或SELECT*FROMStudent;,.,3.查询经过计算的值,SELECT子句的可以为:算术表达式字符串常量函数列别名,.,查全体学生的姓名及其出生年份。SELECTSname,2004-Sage/*假定当年的年份为2004年*/FROMStudent;输出结果:Sname2004-Sage李勇1984刘晨1985王敏1986张立1985,查询经过计算的值(续),.,查询经过计算的值(续),查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名SELECTSname,YearofBirth:,2004-Sage,LOWER(Sdept)FROMStudent;输出结果:SnameYearofBirth:2004-SageISLOWER(Sdept)李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is,.,查询经过计算的值(续),使用列别名改变查询结果的列标题:SELECTSnameNAME,YearofBirth:BIRTH,2000-SageBIRTHDAY,LOWER(Sdept)DEPARTMENTFROMStudent;输出结果:NAMEBIRTHBIRTHDAYDEPARTMENT-李勇YearofBirth:1984cs刘晨YearofBirth:1985is王敏YearofBirth:1986ma张立YearofBirth:1985is,.,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句,.,选择表中的若干元组,1.消除取值重复的行如果没有指定DISTINCT关键词,则缺省为ALL查询选修了课程的学生学号。SELECTSnoFROMSC;等价于:SELECTALLSnoFROMSC;执行上面的SELECT语句后,结果为:Sno200215121200215121200215121200215122200215122,.,消除取值重复的行(续),指定DISTINCT关键词,去掉表中重复的行SELECTDISTINCTSnoFROMSC;执行结果:Sno200215121200215122,.,2.查询满足条件的元组,表3.4常用的查询条件,.,(1)比较大小,查询计算机科学系全体学生的名单。SELECTSnameFROMStudentWHERESdept=CS;查询所有年龄在20岁以下的学生姓名及其年龄。SELECTSname,SageFROMStudentWHERESage20;查询考试成绩有不及格的学生的学号。SELECTDISTINCTSnoFROMSCWHEREGrade60;,.,(2)确定范围,谓词:BETWEENANDNOTBETWEENAND查询年龄在2023岁(包括20岁和23岁)之间的学生的姓名、系别和年龄SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;查询年龄不在2023岁之间的学生姓名、系别和年龄SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;,.,(3)确定集合,谓词:IN,NOTIN查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN(IS,MA,CS);查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN(IS,MA,CS);,.,(4)字符匹配,谓词:NOTLIKEESCAPE匹配串为固定字符串查询学号为200215121的学生的详细情况。SELECT*FROMStudentWHERESnoLIKE200215121;等价于:SELECT*FROMStudentWHERESno=200215121;,.,字符匹配(续),2)匹配串为含通配符的字符串,SQLServer提供了四种通配符:%代表任意多个字符,_(下划线)代表单个字符,代表指定范围内的单个字符,代表不在指定范围内的单个字符。查询所有姓刘学生的姓名、学号和性别。SELECTSname,Sno,SsexFROMStudentWHERESnameLIKE刘%;查询姓欧阳且全名为三个汉字的学生的姓名。SELECTSnameFROMStudentWHERESnameLIKE欧阳_;,.,字符匹配(续),查询名字中第2个字为阳字的学生的姓名和学号。SELECTSname,SnoFROMStudentWHERESnameLIKE_阳%;查询所有不姓刘的学生姓名。SELECTSname,Sno,SsexFROMStudentWHERESnameNOTLIKE刘%;,.,字符匹配(续),3)使用换码字符将通配符转义为普通字符查询DB_Design课程的课程号和学分。SELECTCno,CcreditFROMCourseWHERECnameLIKEDB_DesignESCAPE;查询以DB_开头,且倒数第3个字符为i的课程的详细情况。SELECT*FROMCourseWHERECnameLIKEDB_%i_ESCAPE;ESCAPE表示“”为换码字符,.,(5)涉及空值的查询,谓词:ISNULL或ISNOTNULL“IS”不能用“=”代替某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。SELECTSno,CnoFROMSCWHEREGradeISNULL查所有有成绩的学生学号和课程号。SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;,.,(6)多重条件查询,逻辑运算符:AND和OR来联结多个查询条件AND的优先级高于OR可以用括号改变优先级可用来实现多种其他谓词NOTINNOTBETWEENAND,.,多重条件查询(续),查询计算机系年龄在20岁以下的学生姓名。SELECTSnameFROMStudentWHERESdept=CSANDSage20;,.,多重条件查询(续),改写查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN(IS,MA,CS)可改写为:SELECTSname,SsexFROMStudentWHERESdept=ISORSdept=MAORSdept=CS;,.,单表查询,查询仅涉及一个表:一、选择表中的若干列二、选择表中的若干元组三、ORDERBY子句四、聚集函数五、GROUPBY子句,.,ORDERBY子句,ORDERBY子句可以按一个或多个属性列排序升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示DESC:排序列为空值的元组最先显示,.,ORDERBY子句(续),查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno=3ORDERBYGradeDESC;查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC;,.,嵌套查询,嵌套查询概述一个SELECT-FROM-WHERE语句称为一个查询块将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询,.,嵌套查询(续),SELECTSname/*外层查询/父查询*/FROMStudentWHERESnoIN(SELECTSno/*内层查询/子查询*/FROMSCWHERECno=2);,.,插入,.,插入数据,两种插入数据方式1.插入元组2.插入子查询结果可以一次插入多个元组,.,一、插入元组,语句格式INSERTINTO(,)VALUES(,)功能将新元组插入指定表中,.,插入元组(续),INTO子句属性列的顺序可与表定义中的顺序不一致没有指定属性列指定部分属性列VALUES子句提供的值必须与INTO子句匹配值的个数值的类型,.,插入元组(续),例1将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。INSERTINTOStudent(Sno,Sname,Ssex,Sdept,Sage)VALUES(200215128,陈冬,男,IS,18);,.,插入元组(续),例2将学生张成民的信息插入到Student表中。INSERTINTOStudentVALUES(200215126,张成民,男,18,CS);,.,插入元组(续),例3插入一条选课记录(200215128,1)。INSERTINTOSC(Sno,Cno)VALUES(200215128,1);RDBMS将在新插入记录的Grade列上自动地赋空值。或者:INSERTINTOSCVALUES(200215128,1,NULL);,.,二、插入子查询结果,语句格式INSERTINTO(,)子查询;功能将子查询结果插入指定表中,.,插入子查询结果(续),INTO子句(与插入元组类似)子查询SELECT子句目标列必须与INTO子句匹配值的个数值的类型,.,插入子查询结果(续),例4对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表CREATETABLEDept_age(SdeptCHAR(15)/*系名*/Avg_ageSMALLINT);/*学生平均年龄*/,.,插入子查询结果(续),第二步:插入数据INSERTINTODept_age(Sdept,Avg_age)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;,.,插入子查询结果(续),RDBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则实体完整性参照完整性用户定义的完整性NOTNULL约束UNIQUE约束值域约束,.,修改,.,修改数据,语句格式UPDATESET=,=WHERE;功能修改指定表中满足WHERE子句条件的元组,.,修改数据(续),SET子句指定修改方式要修改的列修改后取值WHERE子句指定要修改的元组缺省表示要修改表中的所有元组,.,修改数据(续),三种修改方式1.修改某一个元组的值2.修改多个元组的值3.带子查询的修改语句,.,1.修改某一个元组的值,例5将学生200215121的年龄改为22岁UPDATEStudentSETSage=22WHERESno=200215121;,.,2.修改多个元组的值,例6将所有学生的年龄增加1岁UPDATEStudentSETSage=Sage+1;,.,3.带子查询的修改语句,例7将计算机科学系全体学生的成绩置零。UPDATESCSETGrade=0WHERECS=(SELETESdeptFROMStudentWHEREStudent.Sno=SC.Sno);,.,修改数据(续),RDBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则实体完整性主码不允许修改用户定义的完整性NOTNULL约束UNIQUE约束值域约束,.,删除,.,删除数据,语句格式DELETEFROMWHERE;功能删除指定表中满足WHERE子句条件的元组WHERE子句指定要删除的元组缺省表示要删除表中的全部元组,表的定义仍在字典中,.,删除数据(续),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年家庭护理服务平台可行性研究报告及总结分析
- 2025年老旧小区改造与文化空间再造项目可行性研究报告及总结分析
- 2025年基于区块链的供应链管理系统项目可行性研究报告及总结分析
- 2025年线上线下融合零售模型项目可行性研究报告及总结分析
- 2025年二级建造师继续教育考试题库及答案
- 2025年门窗防盗加固协议
- 2025年众筹平台建设可行性研究报告及总结分析
- 2025年清洁能源汽车产业链研究可行性报告
- 2025年湖南省永州市江永县保安员招聘考试题库附答案解析
- 2025年化学分析工技能竞赛理论考试题库 含答案
- 中华人民共和国海上交通安全法
- 《机械设计基础》 刘文光 习题解答
- 2024年生物质燃料购销合同范本
- 个人简历模板(空白简历表格)
- 新生儿重度窒息亚低温个案
- 果树改造项目实施方案范本
- TB10443-2016铁路建设项目资料管理规程
- 胫骨高位截骨术课件
- 机械用无缝碳钢管合金钢管的标准规范
- GB/T 19837-2005城市给排水紫外线消毒设备
- GB/T 17257.2-2009集尿袋第2部分:要求和检验方法
评论
0/150
提交评论