SQL语句中常用关键词及其解释如下:

1)SELECT

将资料从数据库中的表格内选出,两个关键字:从 (FROM) 数据库中的表格内选出 (SELECT)。语法为
SELECT "栏位名" FROM "表格名"。

2)DISTINCT
在上述 SELECT 关键词后加上一个 DISTINCT 就可以去除选择出来的栏位中的重复,从而完成求得这个表格/栏位内有哪些不同的值的功能。语法为
SELECT DISTINCT "栏位名" FROM "表格名"。

3)WHERE
这个关键词可以帮助我们选择性地抓资料,而不是全取出来。语法为
SELECT "栏位名" FROM "表格名" WHERE "条件"

4)AND OR
上例中的 WHERE 指令可以被用来由表格中有条件地选取资料。这个条件可能是简单的 (像上一页的例子),也可能是复杂的。复杂条件是由二或多个简单条件透过 AND 或是 OR 的连接而成。语法为:
SELECT "栏位名"  FROM "表格名"  WHERE "简单条件"  {[AND|OR] "简单条件"}+

5)IN
在 SQL 中,在两个情况下会用到 IN  这个指令;这一页将介绍其中之一:与 WHERE 有关的那一个情况。在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知道的值都放入 IN  这个子句。语法为:
SELECT "栏位名"  FROM "表格名"  WHERE "栏位名" IN ('值一', '值二', ...)

6)BETWEEN
IN 这个指令可以让我们依照一或数个不连续 (discrete)的值的限制之内抓出资料库中的值,而 BETWEEN 则是让我们可以运用一个范围 (range)  内抓出资料库中的值,语法为:
SELECT "栏位名"  FROM "表格名" WHERE "栏位名" BETWEEN '值一' AND '值二'

7)LIKE
LIKE 是另一个在 WHERE  子句中会用到的指令。基本上, LIKE  能让我们依据一个模式(pattern) 来找出我们要的资料。语法为:
SELECT "栏位名"  FROM "表格名"  WHERE "栏位名" LIKE {模式}

8)ORDER BY
我们经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending)  或是由大往小(descending)。在这种情况下,我们就可以运用 ORDER BY 这个指令来达到我们的目的。语法为:
SELECT "栏位名"  FROM "表格名 [WHERE "条件"] ORDER BY "栏位名" [ASC, DESC]

9)函数
函数允许我们能够对这些数字的型态存在的行或者列做运算,包括 AVG (平均)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM (总合)。语法为:
SELECT "函数名"("栏位名") FROM "表格名"

10)COUNT
这个关键词能够帮我我们统计有多少笔资料被选出来,语法为:
SELECT COUNT("栏位名") FROM "表格名"

11)GROUP BY
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。语法为:
SELECT "栏位1", SUM("栏位2")  FROM "表格名"  GROUP BY "栏位1"

12)HAVING
该关键词可以帮助我们对函数产生的值来设定条件。语法为:
SELECT "栏位1", SUM("栏位2")  FROM "表格名"  GROUP BY "栏位1"  HAVING (函数条件)

13)ALIAS
我们可以通过ALIAS为列名称和表名称指定别名,语法为:
SELECT "表格别名"."栏位1" "栏位别名"  FROM "表格名" "表格别名"

下面为一个例子,通过它我们应该能很好地掌握以上关键词的使用方法。

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表

问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.S#
from (select s#,score from SC where C#=’001′) a,
(select s#,score from SC where C#=’002′) b
where a.score>b.score and a.s#=b.s#;

2、查询平均成绩大于60分的同学的学号和平均成绩;
select S#,avg(score)
from sc
group by S# having avg(score) >60;

3、查询所有同学的学号、姓名、选课数、总成绩;
select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname

4、查询姓“李”的老师的个数;
select count(distinct(Tname))
from Teacher
where Tname like ‘李%’;

5、查询没学过“叶平”老师课的同学的学号、姓名;
select Student.S#,Student.Sname
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’);

6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
select Student.S#,Student.Sname
from Student,SC

where Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);

7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
select S#,Sname
from Student
where S# in
(select S#
from SC ,Course ,Teacher
where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’ group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname=’叶平’));

8、查询所有课程成绩小于60分的同学的学号、姓名;
select S#,Sname
from Student
where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

9、查询没有学全所有课的同学的学号、姓名;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S#
group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);

10、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
select S#,Sname
from Student,SC
where Student.S#=SC.S# and C# in (select C# from SC where S#='1001');

11、删除学习“叶平”老师课的SC表记录;
Delect SC
from course ,Teacher
where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';

12、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
SELECT L.C# 课程ID,L.score 最高分,R.score 最低分
FROM SC L ,SC R
WHERE L.C# = R.C#
and
L.score = (SELECT MAX(IL.score)
FROM SC IL,Student IM
WHERE IL.C# = L.C# and IM.S#=IL.S#
GROUP BY IL.C#)
and
R.Score = (SELECT MIN(IR.score)
FROM SC IR
WHERE IR.C# = R.C#
GROUP BY IR.C# );

13、查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩)
FROM (SELECT S#,AVG(score) 平均成绩
FROM SC
GROUP BY S# ) T1
WHERE 平均成绩 > T2.平均成绩) 名次, S# 学生学号,平均成绩
FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) T2
ORDER BY 平均成绩 desc;

14、查询各科成绩前三名的记录:(不考虑成绩并列情况)
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 3 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC)
ORDER BY t1.C#;

15、查询每门功成绩最好的前两名
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 2 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC )
ORDER BY t1.C#;

转载于:https://www.cnblogs.com/suncoolcat/p/3301853.html

找工作笔试面试那些事儿(10)---SQL语句总结相关推荐

  1. 找工作笔试面试那些事儿(15)---互联网公司面试的零零种种和多家经验

    作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11400719. 声明:版权所有,转载请注明出处,谢谢 ...

  2. 找工作笔试面试那些事儿(13)---操作系统常考知识点总结

    上一节对数据库的知识做了一个小总结,实际找工作过程中,因为公司或单位侧重点不一样,考察的知识也是不尽相同的,但是作为计算机类的学生,操作系统的知识也是必不可少的,去年参加笔试面试的时候,腾讯微软阿里等 ...

  3. 找工作笔试面试那些事儿(17)---linux测试题

    作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11908189. 声明:版权所有,转载请注明出处,谢谢 ...

  4. 找工作笔试面试题目集(硬件篇)----持续更新

    将自己面试.笔试遇到的题目进行一个记录,并尝试进行解答. 文章目录 一.信号完整性分析 1.有没有读过关于信号完整性分析之类的书? 2.什么是特性阻抗? 3.特性阻抗和什么有关? 4.常见的传输线有哪 ...

  5. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  6. 新编php找工作常见面试笔试汇总

    今天偶然看到了一篇文章,说是php程序员在找工作当中常见的问题汇总,我觉得不错.特意转来了.收藏. form表单 1.简述 POST 和 GET 传输的最大容量分别是多少? GET 方法提交的表单数据 ...

  7. 春节后找工作被面试的经历,好岗位分享给还在找工作中的软件开发爱好者们...

    这几年在杭州东蓝科技工作还是很快乐.很开心,跟同事之间也很融洽,但是由于老婆怀孕了.再加上有严重的过敏鼻炎.同时眼睛也变得越来越脆弱了,很容易被感染通红通红的很恐怖,再也受不了天天出差做软件项目了,去 ...

  8. [浙大网新易盛] 春节后找工作被面试的经历,好岗位分享给还在找工作中的软件开发爱好者们

    这几年在杭州东蓝科技工作还是很快乐.很开心,跟同事之间也很融洽,但是由于老婆怀孕了.再加上有严重的过敏鼻炎.同时眼睛也变得越来越脆弱了,很容易被感染通红通红的很恐怖,再也受不了天天出差做软件项目了,去 ...

  9. 最近找工作的面试经历

           来到广州已经一个星期了,招聘会参加了两场,面试了三间公司,但都是通知回去等结果.回想一下这几天的面试经历,感觉自己要学的东西还很多. <?xml:namespace prefix ...

最新文章

  1. C++/C++11中头文件algorithm的使用
  2. redux的compose源码,中文注释
  3. Devexpress GridControl中 repositoryItemCheckEdit作为选择列以及作为显示列的使用方法
  4. JAVA 对象序列化(二)——Externalizable
  5. bzoj 1007 : [HNOI2008]水平可见直线 计算几何
  6. 注意2018年数据中心的这5大发展趋势
  7. BASH启动脚本及其启动顺序
  8. 配置 Hdp 4 Window 中的一些问题
  9. 使用指针在函数中交换数值
  10. mysql实战数据.sql_Mysql实战(DML增删改+Select)
  11. 遥感分类误差矩阵_遥感卫星影像之分类精度评价
  12. 如何自学python知乎-你是如何自学 Python 的?
  13. 熊猫猪新系统測试之二:Mac OS X 10.10 优胜美地
  14. 多商户商城小程序系统(附微信抖音小程序商城分销系统源码)
  15. LEACH算法无线传感器网络路由协议
  16. STM32入门笔记(02):麦克纳姆轮、TB6612电机驱动、PID电机控制和编码器学习记录
  17. 杭州电子科技大学计算机学硕复试,杭州电子科技大学2020年研究生复试常见问题解答...
  18. linux cat -A 隐藏符号显示
  19. PgAdmin出现Utility file not found. Please correct the Binary Path in the Preferences dialog的解决办法
  20. 智能手机查看上网IP地址的多种方法

热门文章

  1. Mybatis DAO开发--Mapper动态代理开发方式
  2. Junit测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
  3. centos7完全卸载删除nginx
  4. stateflow中向量与矩阵
  5. mag6000变送器怎么使用_变送器的迁移原理和故障分析
  6. 容器(Collection/Map)、容器中的设计模式
  7. arduino使用oled代码_Arduino提高篇06—温湿度OLED显示
  8. 贪吃蛇程序 php,php Web程序 - 贪吃蛇学院-专业IT技术平台
  9. php可以独立运行,【判断题】PHP不能独立运行,只能和Apache服务器一同使用( )。...
  10. 贪心问题JAVA_java背包问题(贪心法)