`
吃面粉的馒头
  • 浏览: 1446 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

数据库常用面试题

阅读更多
题目1:
======
  为管理岗位业务培训信息,建立3个表:
  S (S#,SN,SD,SA)    S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
  C (C#,CN )    C#,CN 分别代表课程编号、课程名称
  SC ( S#,C#,G )    S#,C#,G 分别代表学号、所选修的课程编号、学习成绩

  1. 使用标准SQL嵌套语句查询选修课程名称为 税收基础 的学员学号和姓名
Select SN,SD FROM S
  Where [S#] IN ( Select [S#] FROM C,SC
                           Where C.[C#]=SC.[C#]   AND CN=N'税收基础')
  2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位   Select S.SN,S.SD FROM S,SC
     Where S.[S#]=SC.[S#] AND SC.[C#]='C2'
        
  3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位   Select SN,SD FROM S
  Where [S#] NOT IN
         ( Select [S#] FROM SC
                Where [C#]='C5')
  4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位  
网上流传的错误答案:
Select SN,SD FROM S
  Where [S#] IN  ( Select [S#] FROM SC RIGHT JOIN
                                                                        C  ON SC.[C#]=C.[C#]
                                                           GROUP BY [S#]
                                                      HAVING COUNT(*)=COUNT([S#]) )

经过调试验证的正确答案:
SELECT SN, SD FROM S
           WHERE S#
                              IN (SELECT SC.S#
                                                      FROM SC RIGHT JOIN C
                                                                   ON SC.C# = C.C#
                                                      GROUP BY SC.S#  --在结果集中以学生分组,分组后的 SC.C#选课数=C.C#课程数 即为全部课程
                                                      HAVING   COUNT(distinct(SC.C#))  --注意:一个学生同一门课程可能有多条成绩记录,需要distinct
                                                                          = ( select count(*) from C ) --注意:HAVING条件不能用COUNT(distinct(SC.C#)) = COUNT(distinct(C.C#)
                                       )--子查询获得选修全部课程的学生学号
  5. 查询选修了课程的学员人数   Select 学员人数=COUNT(DISTINCT [S#]) FROM SC
  6. 查询选修课程超过5门的学员学号和所属单位 Select SN,SD FROM S
  Where [S#] IN (  Select [S#] FROM SC          
                                                            GROUP BY [S#]
                                                  HAVING   COUNT( DISTINCT [C#] )  > 5   )
题目2:
======
  已知关系模式:
  S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
  C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
  SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

  1. 找出没有选修过“李明”老师讲授课程的所有学生姓名  Select SNAME FROM S
  Where NOT EXISTS ( Select * FROM SC,C
                          Where SC.CNO=C.CNO
                               AND CNAME='李明'
                               AND SC.SNO=S.SNO)  
  2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩   Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
  FROM  S ,  SC ,
                        (Select SNO FROM SC
                                 Where SCGRADE<60
                                 GROUP BY SNO
                                 HAVING COUNT(DISTINCT CNO)>=2)    A 
            Where S.SNO=A.SNO AND SC.SNO=A.SNO
  GROUP BY S.SNO,S.SNAME
  3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名   Select S.SNO,S.SNAME
  FROM S,
                        (Select SC.SNO  FROM SC,C
                           Where SC.CNO=C.CNO
                                        AND C.CNAME IN('1','2')
                           GROUP BY SNO
                          HAVING COUNT(DISTINCT CNO)=2
                  )SC
            Where S.SNO=SC.SNO
  4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号          Select S.SNO,S.SNAME
  FROM S,
                         (Select SC1.SNOFROM SC SC1,C C1,SC SC2,C C2
                                               Where SC1.CNO=C1.CNO AND C1.NAME='1'
                                                           AND SC2.CNO=C2.CNO AND C2.NAME='2'
                                                          AND SC1.SCGRADE>SC2.SCGRADE  )  SC
          Where S.SNO=SC.SNO
  5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
Select S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩]
            FROM S,
                         (  Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE
                                     FROM SC SC1,C C1,SC SC2,C C2
                                    Where SC1.CNO=C1.CNO AND C1.NAME='1'
                                                   AND SC2.CNO=C2.CNO AND C2.NAME='2'
                                                  AND SC1.SCGRADE>SC2.SCGRADE)   SC
         Where S.SNO=SC.SNO

题目3:
======
有如下表记录:
ID        Name       EmailAddress                  LastLogon
100        test4       test4@yahoo.cn       2007-11-25 16:31:26
13          test1       test1@yahoo.cn       2007-3-22 16:27:07
19          test1       test1@yahoo.cn       2007-10-25 14:13:46
42          test1       test1@yahoo.cn       2007-11-20 14:20:10
45          test2       test2@yahoo.cn       2007-4-25 14:17:39
49          test2       test2@yahoo.cn       2007-5-25 14:22:36

用一句sql查询出每个用户最近一次登录的记录(每个用户只显示一条最近登录的记录)
方法一:
SELECT a.* from users  a  inner join
                              (SELECT [Name], LastLogon=MAX(LastLogon)    FROM  users    GROUP BY [Name])  b
                               on a.[Name]=b.[Name] and a.[LastLogon]=b.[LastLogon]

方法二:
SELECT a.* from users  a   inner join
                               (SELECT  Name,MAX(LogonID) LogonID     FROM  users    GROUP BY [Name])  b
                             on a.LogonID=b.LogonID
                             --where a.LogonId=b.LogonId

绿色通道:好文要顶关注我收藏该文与我联系
分享到:
评论

相关推荐

    数据库常见面试题

    ### 数据库常见面试题解析 #### 1、数据库有哪几种范式? 数据库设计中遵循的规范称为“范式”,目前主要有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF(Boyce-Codd范式)、第四范式(4NF...

    数据库笔试面试题汇总

    这份"数据库笔试面试题汇总"无疑是面试准备的宝贵资源,涵盖了众多大公司常问的问题及其解答,帮助面试者提升自身的数据库理论知识和实践能力。以下是对这些知识点的详细解读: 1. **关系型数据库基础**: - **SQL...

    数据库常用面试题目_基础题

    - 介绍常用的数据库性能监控工具(如MySQL的SHOW STATUS命令)。 - 遇到查询性能瓶颈时,应如何进行查询优化? 9. **分布式数据库** - 什么是分布式数据库,它解决了传统数据库的哪些问题? - 分布式数据库中的...

    sql数据库基础面试题复习题考试题-全.doc

    "SQL数据库基础面试题复习题考试题-全" SQL Server 是一种关系型数据库管理系统,由 Microsoft 开发,广泛应用于各种 Industries。下面是 SQL Server 数据库基础知识点的总结: 数据库基础概念 1. 数据库...

    数据库面试题SQL+ORACLE

    本知识点将以数据库面试题中常见的SQL和ORACLE相关问题为载体,详细介绍数据库的基础知识。 首先,数据库基础部分主要介绍了数据的抽象层次,包括物理抽象、概念抽象、视图级抽象,以及内模式、模式、外模式的概念...

    java sql 数据库 面试 面试试题

    以下是一些常见的Java SQL数据库面试题及其详细解答,旨在帮助你准备面试: 1. **Java与数据库连接** - JDBC(Java Database Connectivity)是什么?它是如何工作的? - 描述一下JDBC驱动的四个主要类型。 - ...

    sql数据库基础面试题复习题考试题-全.pdf

    本篇主要涉及SQL Server 2005的基础面试题,涵盖了数据库的基础概念、系统数据库、数据库管理以及数据库的发展历程。 1. SQL Server数据库的主数据文件扩展名为.mdf。这意味着当你创建一个新的数据库时,主数据文件...

    db2数据库面试问题

    根据给定文件中的标题、描述、标签以及部分内容,我们可以从中提炼出与DB2...以上知识点覆盖了DB2数据库的基础知识、SQL语言的使用、数据库的设计与管理等方面,对于准备DB2数据库面试的人来说是非常有用的参考资料。

    sql数据库基础面试题复习题考试题-全教学教材.pdf

    本资料涉及的是SQL Server数据库的基础面试题和复习题,涵盖了从基本概念到实际操作的多个方面。 1. SQL Server数据库的主数据文件扩展名为.mdf。这是存储数据库的主要数据的文件,而.ldf则是日志文件的扩展名,...

    数据库面试题大全

    【SQL常用命令】 创建表的命令如:`CREATE TABLE Student(ID NUMBER PRIMARY KEY, NAME VARCHAR2(50) NOT NULL);` 创建视图的命令如:`CREATE VIEW view_name AS SELECT * FROM Table_name;` 创建唯一索引的命令如:...

    sql数据库基础面试题复习题考试题全.pdf

    SQL数据库基础面试题复习题考试题全.pdf 1. SQLServer 数据库的主数据文件的扩展名是.mdf。这是用来存储数据库的主要数据的文件,扩展名.mdf是Microsoft SQL Server中特定的,它包含了数据库的表、索引和其他对象的...

    Java及数据库面试题 包含SSH,数据库和Java基础

    【Java及数据库面试题 包含SSH,数据库和Java基础】 1. SQL查询与数据库操作: 这一题目考察的是基本的SQL查询能力。在给出的示例中,我们看到如何从`Custom`表中选取特定列并重命名显示。`AS`关键字用于重命名列,...

    2021年sql数据库基础面试题复习题考试题全.docx

    以上是SQL数据库基础面试题的相关知识点,涵盖了数据库文件扩展名、系统数据库、数据库管理、数据迁移、数据库类型、数据库管理系统的特点以及SQL Server的操作等。理解这些概念对于通过SQL数据库基础面试至关重要。

    2022年数据库工程师面试题答案.doc

    数据库工程师面试题答案整理 一、填空题 1. SQL Server 2000 中使用的数据库对象包括:表、视图、存储过程、函数、索引等。 * 解释:数据库对象是指在数据库中创建的实体,用于存储和管理数据。在 SQL Server 2000...

    2023最新JAVA面试题集

    最新JAVA面试题总结之基础/框架/数据库/JavaWeb/Redis BIO,NIO,AIO,Netty面试题 35道 BTA 常问的 Java基础39道常见面试题及详细答案 Dubbo面试题 47道 ElasticSearch面试题 30道 Git常用命令面试题 60道 Java并发...

    sql数据库基础面试题复习题考试题全.docx

    SQL数据库基础面试题复习题考试题全,涵盖了SQL Server 2005的相关知识,主要涉及数据库的基础概念、系统数据库、数据库管理、数据迁移、数据库系统的发展阶段以及SQL Server的特性等多个方面。以下是对这些知识点的...

    sql数据库基础面试题复习题考试题-全.docx

    【SQL数据库基础面试题复习题考试题-全】 在IT面试中,SQL数据库的基础知识是不可或缺的部分,尤其对于数据管理、开发以及分析岗位而言。以下是对文档中涉及的SQL相关知识点的详细说明: 1. SQLServer数据库的主...

    sql数据库基础面试题复习试题考试题_全.docx

    【SQL数据库基础面试题复习试题考试题_全.docx】这份文档主要包含了SQL Server数据库的基础知识,涵盖了多项选择题,涉及了SQL Server的文件扩展名、数据库类型、系统管理员、数据库操作、数据库管理系统(DBMS)的...

Global site tag (gtag.js) - Google Analytics