• <<MySchool数据库设计优化>> 内部测试


    1) 在SQL Server 中,为数据库表建立索引能够( C )。

    A. 防止非法的删除操作

    B. 防止非法的插入操作

    C. 提高查询性能

    D. 节约数据库的磁盘空间

    解析:索引的作用是通过使用索引,大大提高数据库的检索速度,改善数据库性能

     

    2) 在SQL SERVER中,创建一个表使用(  C)语句。

    A. INSERT

    B. DROP

    C. CREATE

    D. ALERT

    解析:A :insert 插入数据。   B: drop 进行删除操作 D:alter 添加约束

     

    3) 在SQL SERVER中,下面关于视图说法错误的是(C  )。

    A. 对查询执行的大多数操作也可以在视图上进行

    B. 使用视图可以增加数据库的安全性

    C. 不能利用视图增加,删除,修改数据库中的数据

    D. 视图使用户更灵活的访问所需要的数据

    解析:对视图进行增删改操作。(答题的话可以,面试不可以)

     

    4) 在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的( B )阶段。

    A. 需求分析

    B. 概要设计

    C. 逻辑设计

    D. 物理设计

    解析:

    A:分析客户的业务和数据处理需求

    B:概要设计  绘制数据库的E-R图,用于在项目团队内部、设计人员和客户之间进行沟通,确认需求信息的正确性和完整性

    C:利用数据模型进行概念数据库的模式设计

    D:将一个给定逻辑结构实施到具体的环境中时,逻辑数据模型要选取一个具体的工作环境,这个工作环境提供了数据存储结构与存取方法,这个过程就是数据库的物理设计。

     

    5) 在SQL Server 数据库中,如果强制要求grades表中的学员必须是Students表中存在的学员,以下描述正确的是( A )。

    A. 在grades表中创建外键约束

    B. 在grades表中创建检查约束

    C. 在grades表中创建唯一约束

    D. 在grades表中创建默认约束

    解析:

    A:  外键约束 用于在两表之间建立关系,需要指定引用主表的哪一列

    B:检查约束 某列的取值范围限制、格式限制等

    C:唯一约束 要求该列的值必须唯一,允许为空 但只能出现一个空值

    D:默认约束 某列的默认值

     

    6) 在SQL Server 数据库中,下面的T-SQL语句段执行第三句时出现错误,数据库中的内容修改情况是(C  )。

    BEGIN TRANSACTION

    update Account set balance=7800 where id=1

    update Account set balance=9000 where id=1

    IF @@error <> 0

    ROLLBACK TRANSACTION

    ELSE

    COMMIT TRANSACTION

     

    A. Account表中id为1的记录中balance字段的值被修改为7800

    B. Account表中id为1的记录中balance字段的值被修改为9000

    C. Account表中id为1的记录中balance字段的值不变

    D. 不可能发生这种情况

    解析:rollback tran 回滚事务,那么在begin transaction 语句之后的所有更新数据都回滚到初始状态 

     

    7) 在SQL Server 数据库中,有关下列T-SQL语句的功能,说法正确的是(C  )。

    DECLARE @I int, @J int

    SET @I=0

    WHILE (@I < 2)   //循环两次

      BEGIN

    SELECT @J=COUNT(*) FROM stuMarks WHERE writtenExam<60

        IF(@J>0)

          UPDATE stuMarks SET writtenExam=writtenExam+5 WHERE writtenExam<60   //小于60分加5分

        ELSE

          BREAK

        SET @I = @I + 1    //改变循环变量  @I为1继续再循环一次!

      END

    SELECT stuNo,成绩=CASE

                        WHEN writtenExam<60 THEN '不及格'

                        ELSE '及格'

                      END

       FROM stuMarks

    A. 给不及格的学员反复提5分直到通过为止,最后展示所有学员是否及格的情况信息

    B. 给不及格的学员提10分,最后展示所有学员是否及格的情况信息

    C. 给不及格的学员提5分,提分后仍不及格的学员再提5分,最后展示所有学员是否及格的情况信息

    D. 给不及格的学员提5分,最后展示所有学员是否及格的情况信息

     

     

    8) 在SQL Server 数据库中,下面调用存储过程的语句错误的是(  B)。

     

    A. EXEC proc_stu @sum OUTPUT,64,78

     

    B. EXEC proc_stu  @sum OUTPUT,@total output,78

     

    C. EXEC proc_stu  @sum OUTPUT,604

     

    D. EXEC Calculate @sum OUTPUT,@total output

     

     

     

    9) 在SQL SERVER中,下面关于子查询的说法你认为正确的是( C )。 

     

    A. 应用简单子查询的SQL语句的执行效率比采用SQL变量的实现方案要低

     

    B. 带子查询的查询执行顺序是,先执行父查询,再执行子查询

     

    C. 表连接一般都可以用子查询替换,但有的子查询不能用表连接替换

     

    D. 如果一个子查询语句一次返回二个字段的值,那么父查询的where子句中应该使用NOT EXISTS关键字

     

     

     

    10) 在SQL SERVER中,按以下要求创建学员表正确的SQL语句是(D  )。 

     

    学员表(stuTable)的要求是:学号为5位数字,自动编号;姓名最多为4个汉字,身份证号码最多为18位数字。

     

    A. CREATE TABLE stuTable (

     

    ID NUMERIC(6,0) NOT NULL,

     

    Name VARCHAR(4),

     

    Card INT

     

    )

     

    B. CREATE TABLE stuTable

     

    (

     

    ID INT IDENTITY(10000,1),

     

    Name VARCHAR(4),

     

    Card DECIMAL(18,0)

     

    )

     

    C. IF EXISTS(SELECT * FROM sysobjects WHERE name=' stuTable ')

     

    DROP TABLE stuTable

     

    GO

     

    CREATE TABLE stuTable

     

    (

     

    ID NUMERIC(4,0) NOT NULL,

     

    Name VARCHAR(4),

     

    Card INT

     

    )

     

    D. IF EXISTS(SELECT * FROM sysobjects WHERE name=' stuTable ')

     

    DROP TABLE stuTable

     

    GO

     

    CREATE TABLE stuTable

     

    (

     

    ID INT IDENTITY(10000,1),

     

    Name VARCHAR(8),

     

    Card NUMERIC(18,0)

     

    )

     解析:D:  identity:自增  numberic(18,0)指身份证号码最多为18位数字,varchar(8) 姓名最多为4个汉字  条件满足

     

     

    11) 在SQL SERVER中,声明并创建以下存储过程,正确调用该存储过程的的语句是(  BC)。

     

    CREATE PROCEDURE  PRO

     

    @passNum int OUTPUT,

     

    @passPoint int=60 

     

    AS

     

    Select @passNum=count(*) From stuTable Where point >@passPoint

     

    GO

     

    A. Declare @sum int

     

    EXEC PRO @passNum,70

     

    B. Declare @sum int

     

    EXEC PRO @sum output,70

     

    C. Declare @sum int

     

    EXEC PRO @sum output

     

    D. EXEC PRO 70

     

     解析:A:output表明参数是输出参数 D:未声明局部变量

     

     

    12) 下面描述的四个阶段中,不是数据库设计过程中经历的阶段是( D )。

     

    A. 需求分析阶段

     

    B. 概要设计阶段

     

    C. 详细设计阶段

     

    D. 代码设计阶段

     

    解析: 代码设计阶段不属于数据库设计过程中经历的阶段

     

     

    13) 在SQL Server 中,对IN语句取反的方法是,在IN前面添加(  B)。

     

    A. NONE

     

    B. NOT

     

    C. !

     

    D. NO

    解析:对in语句进行取反的方法是not  in

     

     

     

    14) 在SQL Server 数据库中,以下对变量的定义错误的是(D  )。

     

    A. DECLARE @username  varchar(10)

     

    B. DECLARE @RowCount  varchar(30)

     

    C. DECLARE @@username  varchar(10)

     

    D. DECLARE @@RowCount  varchar(30)

     

     

     

    15) 在SQL Server中,绘制E-R图时一般使用( B )表示实体的属性。

     

    A. 矩形

     

    B. 椭圆

     

    C. 菱形

     

    D. 三角形

    解析:A:实体---矩形 C:联系--菱形

     

    16) 在SQL SERVER中,运行下列语句,输出结果是( B )。

     

    Create proc proc_Search

     

    @myStuno varchar(8) is null

     

    as 

     

    if @myStuno = null

     

    begin

     

        print '你忘记了传递学号'

     

       return 

     

    end

     

    Select * from stuinfo where stuno=@myStuno

     

    go

     

    exec proc_Search

     

    A. 你忘记了传递学号

     

    B. 编译错误

     

    C. 显示空的记录

     

    D. 调用存储过程proc_Search出错

    解析:未声明变量 @myStuno

     

    17) 下面关于SQL Server中变量的操作正确的是(AD  )。

     

    A. DECLARE @name varchar(8)

     

    SET @name='lkl'

     

    print '姓名是'+@name

     

    B. DECLARE name varchar(8)

     

    SET name='lkl'

     

    print '姓名是'+name

     

    C. print  @@VERSION AS '版本', @@SERVERNAME AS '服务器'

     

    D. SELECT @@VERSION AS '版本', @@SERVERNAME AS '服务器'

    解析:B:name应该为局部变量 缺少@符号    C:语法错误

     

    18) 下面选项中关于在SQL语句中使用的逻辑控制语句的说法正确的是(A  )。

     

    A. 在IF-ELSE 条件语句中,IF为必选,而ELSE为可选

     

    B. 在IF-ELSE 条件语句中,语句块使用{  }括起来

     

    C. 在CASE多分支语句中不可以出现ELSE分支

     

    D. 在WHILE循环语句中条件为false,就重复执行循环语句

    解析:

    B:在SQL中 if-else条件语句中 语句块使用begin-end括起来

    C:case多分支语句中可出现else 作为条件

     

    19) 已知dept表有部门编号字段deptno、部门名称字段dname,员工表emp具有员工编号字段empno、员工姓名字段ename、电话字段phone和所属部门编号字段deptno,该字段参考dept表的deptno字段,要使用SQL语句查询 “研发部”部门所有员工的编号和姓名信息,下面选项中正确的是(B  )。

     

    A. SELECT empno,ename FROM emp

     

    WHERE empno=(SELECT empno FROM dept WHERE dname="研发部")

     

    B. SELECT empno,ename FROM emp

     

    WHERE deptno=(SELECT deptno FROM dept WHERE dname='研发部')

     

    C. SELECT empno,ename FROM emp

     

    WHERE deptno=(SELECT * FROM dept WHERE dname='研发部')

     

    D. SELECT empno,ename FROM dept

     

    WHERE deptno=(SELECT deptno FROM emp WHERE dname="研发部")

     

    解析: 查询 “研发部”部门所有员工的编号和姓名信息 即排除AC 查询的信息是来自于部门表 排除D

     

     

    20) 在SQL Server中,下面关于视图的描述,说法正确的是(  AD)。

     

    A. 使用视图可以筛选原始物理表中的数据,增加了数据访问的安全性

     

    B. 视图是一种虚拟表,数据只能来自一个原始物理表

     

    C. CREATE VIEW语句中可以包含UPDATE语句

     

    D. 为了安全起见,一般只对视图执行查询操作,不推荐在视图上执行修改操作

     

    解析:

     B: 视图是一种虚拟表。通常是作为来自一个或多个表的行或列的子集创建的

     C:  CREATE VIEW语句中不可包含UPDATE语句

     

     

    21) 在SQL Server中,创建如下存储过程:

     

    create proc stu_exam

     

    @writtenExam int=null

     

    as 

     

    if @writtenExam is null

     

    begin

     

    print '请输入笔试成绩及格线'

     

    return

     

    end

     

    select * from student where stu_id in 

     

    (select stu_id from stu_marks 

     

    where writtenExam>@writtenExam)

     

    GO

     

    下列选项正确的是( C )。

     

    A. 执行EXEC stu_exam语句,控制台显示所有笔试成绩及格的学生信息记录集

     

    B. 存储过程(stu_exam)代码存在语法错误

     

    C. 执行EXEC stu_exam语句,控制台显示“请输入笔试成绩及格线”

     

    D. 执行EXEC stu_exam 75语句,控制台显示“请输入笔试成绩及格线”

    解析:有IF条件进行过滤,若果没有输出笔试成绩的话,将输出提示。

     

    22) 下列选项中不属于SQL Server的逻辑控制语句的是(  B)。

     

    A. IF-ELSE语句

     

    B. FOR循环语句

     

    C. CASE子句

     

    D. WHILE循环语句

    解析:SQL Server的逻辑控制语句包括 IF-ELSE语句、 CASE子句、WHILE循环语句三种

     

    23) 在SQL SERVER中,关于聚集索引和非聚集索引的描述错误的是(B  )。

     

    A. 一个表可以有多个非聚集索引,但只能有一个聚集索引

     

    B. 非聚集索引的值顺序与数据表中记录的物理顺序完全相同

     

    C. 在建立聚集索引的列上不允许有重复的值

     

    D. 使用聚集索引查询的速度要比非聚集索引速度快

     

     解析:聚集索引和表中记录的物理顺序一致  即B选项表述错误

     

     

    24) 在SQL SERVER中,关于系统存储过程以下说法错误的是(  D)。

     

    A. 系统存储过程提供了管理数据库和更新表的机制

     

    B. 所有系统存储过程都以sp_开头

     

    C. 所有系统存储过程都存放在master数据库中

     

    D. 用户不能使用系统存储过程更新系统表,只能查询系统表

     

    25) 在SQL Server 数据库中,从product表里查询出price(价格)高于pName(产品名称)为“一次性纸杯”所有记录中最高价格的产品的查询语句为( D )。

     

    A. SELECT * FROM product WHERE max(price)>'一次性纸杯'

     

    B. SELECT * FROM product WHERE price>(SELECT max(*) FROM product WHERE pName= '一次性纸杯')

     

    C. SELECT * FROM product WHERE EXISTS pName='一次性纸杯'

     

    D. SELECT * FROM product WHERE price>(SELECT max(price) FROM product WHERE pName='一次性纸杯')

     

    解析:

    AC:条件不明确

    B:查询的是最高价格的产品,并非所有的。因此错误

  • 相关阅读:
    bat 处理adb脚本
    作用域,高阶函数
    常用内置函数-6
    习题元祖与字典的值交换
    函数的参数
    序列类型与非序列类型
    格式化输出,深浅复制
    可变,不可变与 id 的关系
    linux-shell系列6-rundeck生成host文件
    linux-shell系列5-统计
  • 原文地址:https://www.cnblogs.com/jingpeipei/p/5325022.html
Copyright © 2020-2023  润新知