例题1-42.doc_第1页
例题1-42.doc_第2页
例题1-42.doc_第3页
例题1-42.doc_第4页
例题1-42.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

-【例21】-在查询窗口中执行如下SQL语句:USE XkGOSELECT StuNo,StuNameFROM StudentWHERE StuNo=00000001GO-【例22】-在查询窗口中执行如下SQL语句:USE XkGOSELECT *FROM CourseGO-【例23】-在查询窗口中执行如下SQL语句:USE XkGOSELECT KindFROM CourseGO-【例24】-在查询窗口中执行如下SQL语句:USE XkGO-消除Kind列值都相同的那些重复行SELECT DISTINCT KindFROM Course GO-消除Kind列和Credit列值都相同的那些重复行SELECT DISTINCT Kind,CreditFROM Course GO-【例25】-显示查询结果的前6行,在查询窗口中执行如下SQL语句:USE XkGOSELECT TOP 6 *FROM StudentGO-显示查询结果的前6%行,在查询窗口中执行如下SQL语句:USE XkGOSELECT TOP 6 PERCENT *FROM StudentGO-【例26】-方法1,在查询窗口中执行如下SQL语句:USE XkGOSELECT 课程编码=CouNo,课程名称=CouName,教师=Teacher,上课时间=SchoolTime,限制选课人数=LimitNum,报名人数=WillNumFROM CourseGO-方法2,在查询窗口中执行如下SQL语句:USE XkGOSELECT CouNo 课程编号,CouName 课程名称,Teacher 教师,SchoolTime 上课时间,LimitNum 限制选课人数, WillNum 报名人数FROM CourseGO-方法3,在查询窗口中执行如下SQL语句:USE XkGOSELECT CouNo AS 课程编号,CouName AS 课程名称,Teacher AS 教师,SchoolTime AS 上课时间,LimitNum AS 限制选课人数, WillNum AS 报名人数FROM CourseGO-【例27】USE XkGOSELECT 课程名称=CouName,课程编号为:,课程编号=CouNoFROM CourseGO-【例28】USE XkGOSELECT * FROM CourseWHERE Kind=信息技术 AND Credit=2GO-【例29】USE XkGOSELECT *,WillNum/LimitNumFROM CourseGO-【例210】USE XkGOSELECT 最小的报名人数=MIN(WillNum),最大的报名人数=MAX(WillNum),平均报名人数=AVG(WillNum)FROM CourseGO-【例211】查询课程信息、报名人数与限选人数之比。要求查询结果按照报名人数进行升序排序-(1)ORDER BY后面为列名USE XkGOSELECT *,WillNum/LimitNum 报名人数与限选人数之比FROM Course ORDER BY WillNumUSE XkGO-(2)ORDER BY后面为中文标题USE XkGOSELECT *,WillNum/LimitNum 报名人数与限选人数之比FROM Course ORDER BY 报名人数与限选人数之比GO-【例212】查询课程表的教师名、课程编号、课程名,要求查询结果首先按照教师名降序排序,教师名相同时,则按课程编号升序排序。USE XkGOSELECT Teacher AS 教师名,CouNo AS 课程编号,CouName AS 课程名FROM CourseORDER BY Teacher DESC,CouNoGO-或者:USE XkGOSELECT Teacher AS 教师名,CouNo AS 课程编号,CouName AS 课程名FROM CourseORDER BY 教师名 DESC,课程编号GO-【例213】查询课程编号为004、007、013的课程信息。USE XkGOSELECT *FROM CourseWHERE CouNo=004 OR CouNo=007 OR CouNo=013GO-使用IN关键字的SQL语句如下:USE XkGOSELECT *FROM CourseWHERE CouNo IN(004,007,013)GO-【例214】查询课程编号不为004、007、013的课程信息。USE XkGOSELECT CouNo,CouNameFROM CourseWHERE CouNo NOT IN(004,007,013)GO-或者:USE XkGOSELECT *FROM CourseWHERE CouNo004 AND CouNo007 AND CouNo013GO-【例215】查询课程名以字母D开始的课程信息。USE XkGOSELECT *FROM CourseWHERE CouName LIKE D%GO-【例216】查询课程名以制作两字结尾的课程信息USE XkGOSELECT *FROM CourseWHERE CouName LIKE %制作GO-【例217】查询姓名第二个字为宝的学生信息.USE XkGOSELECT * FROM StudentWHERE StuName LIKE _宝%GO-【例218】 查询不姓刘的学生信息。-使用USE XkGOSELECT *FROM StudentWHERE StuName LIKE 刘%GO-使用NOT LIKEUSE XkGOSELECT *FROM StudentWHERE StuName NOT LIKE 刘%GO-【例219】查询教师表中教师姓名未定的课程信息。USE XkGOSELECT *FROM CourseWHERE Teacher IS NULLGO-【例220】查询报名人数少于15人的课程信息。USE XkGOSELECT *FROM CourseWHERE WillNum15 AND WillNum25GROUP BY KindGO-使用HAVING子句的SELECT语句:USE XkGOSELECT Kind AS 课程类别,AVG(WillNum) AS 每类平均报名人数FROM CourseGROUP BY KindHAVING AVG(WillNum)25GO一、使用子查询1、查询报名人数大于平均报名人数的课程信息。例2-29USE XkGOSELECT * FROM CourseWHERE WillNum(SELECT AVG(WillNum) FROM Course)GO二、使用union联合运算符合并多个查询结果注意:所有查询中的列数和列的顺序必须相同,所有查询中按顺序对应列的数据类型必须相同或者兼容。查询结果列的标题显示第一个查询语句的,如果希望改变则必须改变第一个的。如果希望重新排序多个查询结果的合并,则在最后的select语句中使用order by子句。2、从班级表中查询班级名,从系部表中查询系部名称,使用union运算符合并两个查询结果。USE XkGOSELECT ClassName FROM ClassUNIONSELECT DepartName FROM DepartmentGO-如果希望改变列标题USE XkGOSELECT ClassName AS 所有班名和所有系名 FROM ClassUNIONSELECT DepartName FROM DepartmentGO3、从班级表中查询班级名,从系部表中查询系部名称,使用union运算符合并两个查询结果。要求按降序排序。USE XkGOSELECT ClassName AS 所有班名和所有系名 FROM ClassUNIONSELECT DepartName FROM DepartmentORDER BY ClassName DESCGO三、多表查询:查询时必须使用where将表与表进行连接,要写出连接条件。如:select * from class,student 查询结果总列数为3+4=7列,行数=18*180=3240(笛卡儿积)为了避免产生笛卡儿积,消除查询结果中大量的没有意义的数据,在进行多表查询时必须使用where给出多表之间的连接条件4、查询班级信息,要求显示班级编号、班级名称、班级所在系部编号、系部名称。USE XkGOSELECT ClassNo, ClassName, Class.DepartNo, DepartNameFROM Class, DepartmentWHERE Class.DepartNo=Department.DepartNoGO表与表之间的连接有内连接、外连接、交叉连接内连接:相等连接、自然连接、比较连接。外连接:左外连接、右外连接、全连接四、相等连接与自然连接5、查询学生的信息,显示信息包括学生基本信息和班级名称。(自然连接)USE XkGOSELECT Student.*, ClassNameFROM Class, StudentWHERE Class.ClassNo=Student.ClassNoGO-使用ANSI连接语法的SELECT语句:USE XkGOSELECT Student.*, ClassNameFROM Class JOIN StudentON Class.ClassNo=Student.ClassNoGO相等连接:select student.*,class.*得到的查询结果会有两列值完全相同的classno列6、查询学生选课信息,要求显示姓名、课程名称、志愿号,按姓名和志愿号排序。USE XkGOSELECT StuName,CouName,WillOrder FROM StuCou,Student,CourseWHERE StuCou.StuNo=Student.StuNo AND StuCou.CouNo=Course.CouNoORDER BY StuName,WillOrderGO-使用ANSI连接语法的SELECT语句:USE XkGOSELECT StuName,CouName,WillOrder FROM StuCouJOIN Student ON StuCou.StuNo=Student.StuNoJOIN Course ON StuCou.CouNo=Course.CouNoORDER BY StuName, WillOrderGO7、查询学生报名“计算机应用工程系”开设的选修课程情况,显示信息包括学生姓名、课程名称和授课教师。USE XkGOSELECT StuName,CouName,TeacherFROM StuCou,Student,Course,DepartmentWHERE StuCou.StuNo=Student.StuNo AND StuCou.CouNo=Course.CouNo AND Course.DepartNo=Department.DepartNoAND DepartName LIKE 计算机应用工程系GO8、查询每个班级可以选修的、不是自己所在系部开设的选修课程的信息,显示信息包括班级、课程名、课程类别、学分、老师、上课时间和报名人数。(比较连接)USE XkGOSELECT ClassName AS 班级,CouName AS 课程名,Kind AS 课程类别,Credit AS 学分,Teacher AS 教师,SchoolTime AS 上课时间,WillNum AS 报名人数FROM Class,CourseWHERE Course.DepartNoClass.DepartNoGO自连接:一个表和他自身进行连接,属于多表连接的特殊情况。9、查询课程类别相同但开课系部不同的课程信息,要求显示课程编号、课程名称、课程类别和系部编号,并按照课程编号升序排序查询结果。USE XkGOSELECT DISTINCT C1.CouNo AS 课程编号,C1.CouName AS 课程名称,C1.Kind AS 课程类别,C1.DepartNo AS 系部编号FROM Course C1,Course C2WHERE C1.Kind=C2.Kind AND C1.DepartNoC2.DepartNoORDER BY 课程编号GO左外连10、查询所有学生报名选修课程的详细情况,要求包括已报名选修课程的学生,也包括未报名选修课程的学生情况,显示内容有学号stuno、课程编号couno、课程名称couname。-使用左外连接完成,注意Course表的位置USE XkGOSELECT Course.CouNo, CouName, StuNo FROM Course LEFT JOIN StuCouON Course.CouNo=StuCou.CouNoGO-使用右外连接完成,注意Course表的位置USE XkGOSELECT Course.CouNo,CouName,StuNoFROM StuCou RIGHT JOIN Course ON Course.CouNo=StuCou.CouNoGO右外连接1

温馨提示

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

评论

0/150

提交评论