注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

SQL语句学习手册实例版(3)  

2011-05-14 09:28:59|  分类: SQL Server |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

多表操作

 

23 找出成绩为 95 分的学生的姓名。(子查询)

        SELECT SNAME

        FROM   STUDENTS

        WHERE   SNO

              (SELECT SNO

               FROM   ENROLLS

               WHERE GRADE 95)

24 找出成绩在 90 分以上的学生的姓名。

       SELECT SNAME

        FROM   STUDENTS

        WHERE SNO IN

                (SELECT SNO

                FROM ENROLLS

                WHERE GRADE 90)

       

        SELECT SNAME

        FROM   STUDENTS

        WHERE SNO ANY

                (SELECT SNO

                FROM ENROLLS

                WHERE GRADE 90)

25 查询全部学生的学生名和所学课程号及成绩。(连接查询)

        SELECT SNAME, CNO, GRADE

        FROM   STUDENTS, ENROLLS

        WHERE STUDENTS.SNO ENROLLS.SNO

26 找出籍贯为山西或河北,成绩为 90 分以上的学生的姓名、籍贯和成绩。(当构造多表连接查询命令时,必须遵循两条规则。第一,连接条件数正好比表数少 1 (若有三个表,就有两个连接条件 ) ;第二,若一个表中的主关键字是由多个列组成,则对此主关键字中的每一个列都要有一个连接条件(也有少数例外情况))

        SELECT SNAME, BPLACE, GRADE

        FROM   STUDENTS, ENROLLS

        WHERE BPLACE IN (‘ 山西 河北 ’) AND GRADE >= 90 AND   STUDENTS.SNO=ENROLLS.SNO

28 查出课程成绩在 80 分以上的女学生的姓名、课程名和成绩。( FROM 子句中的子查询)

        SELECT SNAME,CNAME, GRADE

        FROM   (SELECT SNAME, CNAME , GRADE

                        FROM STUDENTS, ENROLLS,COURSES

                        WHERE SEX ' ')

        AS TEMP (SNAME, CNAME,GRADE)

        WHERE GRADE 80

 

表达式与函数的使用

 

29 查询各课程的学时数。(算术表达式由算术运算符+、-、 * 、/与列名或数值常量所组成。)

        SELECT CNAME,COURSE_TIME CREDIT*16

        FROM   COURSES

30 找出教师的最小年龄。(内部函数: SQL 标准中只使用 COUNT SUM AVG MAX MIN 函数,称之为聚集函数( Set Function )。 COUNT 函数的结果是该列统计值的总数目, SUM 函数求该列统计值之和, AVG 函数求该列统计值之平均值, MAX 函数求该列最大值, MIN 函数求该列最小值。)

        SELECT MIN(AGE)

        FROM   TEACHERS

31 统计年龄小于等于 22 岁的学生人数。(统计)

        SELECT COUNT(*)

        FROM   STUDENTS

        WHERE AGE < 22

32 找出学生的平均成绩和所学课程门数。

        SELECT SNO, AVG(GRADE), COURSES COUNT(*)

        FROM   ENROLLS

        GROUP BY SNO

 

34 找出年龄超过平均年龄的学生姓名。

SELECT SNAME

FROM STUDENTS

WHERE AGE

      (SELECT AVG(AGE)

        FROM   STUDENTS)


 

35 找出各课程的平均成绩,按课程号分组,且只选择学生超过 3 人的课程的成绩。( GROUP BY HAVING

        GROUP BY 子句把一个表按某一指定列(或一些列)上的值相等的原则分组,然后再对每组数据进行规定的操作。

        GROUP BY 子句总是跟在 WHERE 子句后面,当 WHERE 子句缺省时,它跟在 FROM 子句后面。

        HAVING 子句常用于在计算出聚集之后对行的查询进行控制。)

         SELECT CNO, AVG(GRADE), STUDENTS COUNT(*)

         FROM ENROLLS

         GROUP BY CNO

         HAVING COUNT(*) >= 3 

  评论这张
 
阅读(284)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016