`

sql考试题-test

阅读更多

1 查询每门课程成绩都大于80分学生的学号

数据库 表 student
name score course
A 85  语文
A 75  数学
A 82  英语
B   75  语文
B   89  数学
B   79  英语
天使美眉90 语文
天使美眉100 数学
天使美眉100 英语

请找出每门课程都超过80分的那个人名字的SQL语句

SQL1:

select name from test.stu
group by name
having count(score) =sum(case  when score>80 then 1 else 0 end )

SQL2:

select name from stu
group by name
having name not in (
select name from stu
where score <80)

SQL3:

select name from test.stu
group by name
having min(score)>=80



================================================

2. 查询课程001的成绩大于课程002成绩的学号

student表:sno(学号),sname(姓名),sex(性别),dept(系) 
course课程表:cno(课程号),课程名(cname) 
sc选课表:sno,cno,grade(成绩)

select cno from sc a inner join (select * from sc where cno=(select cno from course where cname='001')) as b on a.cno>b.cno and a.cno=(select cno from course where cname='002')

<!-- google_ad_section_end -->



================================================

3、关于group by表内容:

2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负

如果要生成下列结果, 该如何写sql语句?

            胜 负
2005-05-09  2  2
2005-05-10  1  2
--------------------------------------------------------------------------------------------
1) select rq,sum(case when shengfu='胜' then 1 else 0 end) as胜,sum(case when shengfu='负' then 1 else 0 end) as负from tab3 group by rq
2) select N.rq,N. 胜,M. 负 from
(select rq,count(*) 胜 from tab3 where shengfu='胜'group by rq)N inner join
(select rq,count(*) 负from tab3 where shengfu='负'group by rq)M on N.rq=M.rq
3) select a.rq,a. 胜  as胜,b.负  as  负from
(select rq,count(shengfu) 胜from tab3 where shengfu='胜' group by rq) a,
(select rq,count(shengfu) 负from tab3 where shengfu='负' group by rq) b
where a.rq=b.rq;
4)select time, sum(decode(status,'胜','')) 胜 ,sum(decode(status,'负','')) 负 from shengfu_table group by time; ???

======================================================


4.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
select (case when a>b then a else b end),(case when b>c then b else c end) from tab4


5.一个日期判断的sql语句请取出tab5表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)
select * from tab5 t where to_char(t.SendTime,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')


6.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):
   大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
       显示格式:
       语文              数学                英语
       及格              优秀                不及格  
-------------------------------------------------------------------------------------------
select
(case when语文>=80 then '优秀' when语文>60 then '及格' else '不及格' end) as 语文,
(case when 数学>=80 then '优秀' when数学>60 then '及格' else '不及格' end) as数学,
(case when英语>=80 then '优秀' when英语>60 then '及格' else '不及格' end) as 英语
from tab5



==================================

7.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据

table1

月份mon   部门dep   业绩yj
-------------------------------
一月份      01        10
一月份      02        10
一月份      03         5
二月份      02         8
二月份      04         9
三月份      03         8

table2

部门dep      部门名称depname
--------------------------------
      01      国内业务一部
      02      国内业务二部
      03      国内业务三部
      04      国际业务部

table3 (result)

部门dep     一月份      二月份      三月份
---------------------------------------------------
      01      10        null         null
      02      10         8           null
      03      5         null          8
      04      null       9           null
-------------------------------------------------------------------------------------------
1)
select t.depname,
(select yj from tab6 where mon='一月份' and dep=t.dep) 一月份,
(select yj from tab6 where mon='二月份' and dep=t.dep) 二月份,
(select yj from tab6 where mon='三月份' and dep=t.dep) 三月份
from tab7 t

---------------------------------------------------------
2)求总销售额
select
sum(case when t1.mon='一月份' then t1.yj else 0 end) 一月份,
sum(case when t1.mon='二月份' then t1.yj else 0 end) 二月份,
sum(case when t1.mon='三月份' then t1.yj else 0 end) 三月份
from tab7 t,tab6 t1 where t.dep=t1.dep


8.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。
-------------------------------------------------------------------------------
select id,count(*) from tab8 group by id having count(*)>1

select * from (select tab8,count(id) as num from tab8 group by id) t where t.num>1

9.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.

select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh这个是分主客场的
select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh and t.bh>t1.bh这个是不分的



=================================
10.怎么把这样一个表
year  month amount
1991   1     1.1
1991   2     1.2
1991   3     1.3
1991   4     1.4
1992   1     2.1
1992   2     2.2
1992   3     2.3
1992   4     2.4
查成这样一个结果
year m1  m2  m3  m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4

a):
select t.year,
(select a.amout from tab11 a where a.month=1 and a.year=t.year) m1,
(select b.amout from tab11 b where b.month=2 and b.year=t.year) m2,
(select c.amout from tab11 c where c.month=3 and c.year=t.year) m3,
(select d.amout from tab11 d where d.month=4 and d.year=t.year) m4
from tab11 t group by t.year


11.拷贝表(拷贝数据,源表名:a 目标表名:b)

SQL: insert into b(a, b, c) select d,e,f from b;

create table test as select * from dept; --从已知表复制数据和结构 

create table test as select * from dept where 1=2; --从已知表复制结构但不包括数据



12.显示文章、提交人和最后回复时间

  select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b


13.两张关联表,删除主表中已经在副表中没有的信息
  delete from  fubiao a where a.fid not in(select id from zhubiao)


14.有两个表tab12和tab13,均有key和value两个字段,如果tab13的key在tab12中也有,就把tab13的value换为tab12中对应的value

update tab13 set value=(select value from tab12 where tab12.key=tab13.key)



15.原表:
courseid coursename score
-------------------------------------
   1       java      70
   2       oracle    90
   3       xml       40
   4       jsp       30
   5       servlet   80
-------------------------------------
为了便于阅读,查询此表后的结果显式如下(及格分数为60):
courseid coursename score mark
---------------------------------------------------
  1        java     70  pass
  2        oracle   90  pass
  3        xml      40  fail
  4        jsp      30  fail
  5        servlet  80  pass
---------------------------------------------------
select t.courseid,t.coursename,t.score,(case when score>60 then 'pass' else 'fail' end) mark from tab14 t


16.表15
a1   a2
1    a
1    b
2    x
2    y
2    z
用select能选成以下结果吗?
1 ab
2 xyz
SELECT a1, replace(max(sys_connect_by_path(a2, ' ')),' ','') NAME
  FROM (SELECT a1, a2, rn, LAG(rn) OVER(PARTITION BY a1 ORDER BY rn) rn1
          FROM (SELECT a1, a2, row_number() OVER(ORDER BY a1) rn FROM t) rn)
START WITH rn1 IS NULL
CONNECT BY rn1 = PRIOR rn
GROUP BY a1;


17.题为
有两个表, t1, t2,
Table t1:

SELLER | NON_SELLER
-----    -----
  A       B
  A       C
  A       D
  B       A
  B       C
  B       D
  C       A
  C       B
  C       D
  D       A
  D       B
  D       C

Table t2:

SELLER |  BAL
------  --------
  A       100
  B       200
  C       300
  D       400
要求用SELECT 语句列出如下结果:------如A的SUM(BAL)为B,C,D的和,B的SUM(BAL)为A,C,D的和.......
且用的方法不要增加数据库负担,如用临时表等
SELECT SELLER,a.total-t.BAL FROM t,(SELECT SUM(BAL) total FROM t)a;
分享到:
评论

相关推荐

    在线考试系统-test_online

    在线考试系统-test_online是一款基于ASP技术和SQL Server数据库的在线考试平台。这个系统旨在提供一个便捷、高效的途径,让教育机构或个人能够进行远程测试和评估。ASP(Active Server Pages)是一种微软开发的...

    T_J-TEST考题

    【T_J-TEST考题详解】 T_J-TEST是一项针对信息技术(IT)专业人士进行的专项能力测试,旨在...为了准备T_J-TEST,考生需要系统地学习相关知识,多做模拟题,并参与实际的项目实践,以增强问题解决能力和实际操作经验。

    Node.js开发学员考试系统-testSystem.zip

    《Node.js开发学员考试系统——testSystem》 Node.js,作为一个基于Chrome V8引擎的JavaScript运行环境,以其异步、非阻塞I/O和事件驱动的特性,深受开发者喜爱,尤其在构建高性能、高并发的网络应用方面表现出色。...

    gre-gmat-test-preparation-system-源码.rar

    【压缩包子文件的文件名称列表】:"gre-gmat-test-preparation-system-源码.zip"表明主文件是一个ZIP格式的压缩包,通常用于存储多个相关文件或文件夹。解压后,可能包含以下内容: 1. 项目结构:包括主程序文件、库...

    SQL2000模块考试试题答案

    SQL2000模块考试试题答案是一个针对SQL Server 2000管理知识的测试集,旨在帮助考生准备国家SQL Server 2000管理员考试。这个资源包含了解答,可能还附带了一个用于实践的数据库,使得学习者能够在实际环境中应用...

    java-test.zip_Java编程题

    【Java编程题】是本次讨论的核心,这是一份与2010年秋季Java考试相关的编程题集合,主要面向初级学习者。通过这份资料,学习者可以了解到Java编程的基础概念,常见问题解决策略以及编程规范。下面我们将深入探讨Java...

    test930试题.sql

    test930试题.sql

    sql试题+gui试题

    通过解压缩文件中的`sql2005(niit)+test.doc`,可以深入了解SQL的实际应用,而`sm1.doc`、`GUI期末复习总结.docx`和`帖子.docx`可能包含更多有关这两个主题的练习题和学习资料。对这些文档的深入研究将有助于巩固和...

    SQL Server Test Questions

    本资料集“SQL Server Test Questions”针对微软认证考试,提供了全面的复习材料,帮助备考者了解和掌握考试的关键知识点。 文件“70-442.pdf”可能涵盖了SQL Server的高级开发技术,包括T-SQL编程、性能优化和复杂...

    数据库课程的相关试题

    ### 数据库课程的相关试题知识点解析 #### 一、回滚表空间切换命令 **知识点:** ORACLE中的回滚表空间切换方法。 **解析:** 在Oracle数据库中,回滚表空间用于存储事务处理过程中未提交的更改信息。当需要将当前...

    Online-Test-Application

    3. **数据库设计**:在"Online-Test-Application"中,MySQL数据库用于存储试题、用户信息、考试记录等数据。数据库设计应考虑数据的一致性、完整性和安全性。可能的表结构包括用户表(User)、试题表(Question)、...

    SQL Server 2000试题汇编数据库

    "test_log.LDF" 和 "exam_sqlbak_Data.MDF" 是SQL Server数据库文件的典型组成部分。MDF(Master Data File)是主数据文件,包含了数据库的结构信息和用户数据。而LDF(Log Data File)则是日志文件,记录了所有对...

    s2 sql第一次内测试题

    对于“s2 sql第一次内测试题”,我们可以理解为这是一个针对SQL第二阶段(s2)的学习或考核内容,可能涉及更高级的查询和数据操作技巧。在这个场景中,我们有两个关键的数据表——【StuInfo】学员信息表和【stuMarks...

    SQL精典试题 非常不错的

    在SQL领域,试题是检验和提升技能的有效方式。以下是对提供的SQL试题的详细解答: 1. 检索出test_a表中各个id段的年龄合计值,且年龄合计值大于50: ```sql SELECT ID, SUM(YAGE) AS TotalAge FROM TEST_A GROUP BY...

    SQL精典试题及答案

    ### SQL经典试题及答案解析 #### 题目1:计算每个ID对应的年龄总和,并筛选出年龄总和大于50的记录。 ```sql SELECT ID, SUM(AGE) AS SUM_AGE FROM TEST_A GROUP BY ID HAVING SUM(AGE) &gt; 50; ``` **知识点分析:**...

    1Z0-051 Oracle test demo test

    【描述】"This real test questions for Oracle 1Z0-051" 表明这个压缩包可能包含的是与实际考试相匹配的模拟试题,这些题目可以帮助考生了解1Z0-051考试可能会遇到的问题类型,以及它们的难度水平。通过这些模拟题...

    70-562 题库 KillTest

    - 在本题中,`SqlDataSource1`从SQL Server 2005中获取数据,这体现了ASP.NET与SQL Server之间紧密的集成。 通过以上分析,我们可以看到题目不仅考察了基本的编程技能,还涉及到.NET Framework和ASP.NET的一些高级...

    Killtest 分享000-M77 题库

    根据给定的信息,我们可以推断出这是一份与IT认证考试相关的资料,特别是关于IBM Information Management Optim Technical Mastery Test v2(000-M77)的题库分享。接下来,我们将详细解析这份材料中的关键知识点。 ...

    2021-2022计算机二级等级考试试题及答案No.1813.docx

    "2021-2022计算机二级等级考试试题及答案No.1813.docx" 本资源是2021-2022计算机二级等级考试试题及答案的集合,涵盖了计算机基础知识、编程语言、数据库、软件工程、计算机网络等多方面的知识点。下面是从试题中...

Global site tag (gtag.js) - Google Analytics