1.已知职员表employee(eno,ename,gender,birthday,salary),现有一张E表,表结构与职员表一致,要求将E表中没有在职员表中出现的女职员添加到职员表中。下列SQL语句正确的是()
A. INSERT INTO employee(eno,ename,gender,birthday,salary)
SELECT eno,ename,gender,birthday,salsry
FROM E
WHERE E.gender=‘女’
B. INSERT INTO employee(eno,ename,gender,birthday,salary)
SELECT eno,ename,gender,birthday,salsry
FROM E
WHERE E.gender=‘女’ and EXISTS(
SELECT * FROM employee
WHERE employee.eno=E.eno)
C. INSERT INTO employee(eno,ename,gender,birthday,salary)
SELECT eno,ename,gender,birthday,salsry
FROM E
WHERE E.gender=‘女’ and NOT IN employee
D. INSERT INTO employee(eno,ename,gender,birthday,salary)
SELECT eno,ename,gender,birthday,salsry
FROM E
WHERE E.gender=‘女’ and NOT EXISTS(
SELECT * FROM employee
WHERE employee.eno=E.eno)
A.缺少体现题干中“E表中没有在职员表中出现的女职员”的条件;
B.语句的含义是“E表中在职员表中出现的女职员“,不符题意;
C.缺少条件。
2.下列选项关于游标的作用叙述正确的是()
A. 不允许定位在结果集的特定行
B. 从结果集的目标位置检索一行或一部分行
C. 不支持对结果集中当前位置的行进行数据修改
D. 为由其他用户对显示在结果集中的数据所做的更改提供不同级别的可见性支持
游标是一种从包括多条数据记录的结果集中每次提取一条记录以便处理的机制,可以看做是查询结果的记录指针。
A.游标允许定位在结果集的特定行;
B.从结果集的当前位置检索一行或一部分行;
C.支持对结果集中当前位置的行进行数据修改。
3.某软件公司正在升级一套水务管理系统。该系统用于县市级供排水企业、供水厂、排水厂中水务数据的管理工作。系统经重新整合后,开发人员决定不再使用一张备份数据表waterinfo001表,需永久删除。选出符合要求的语句。
A. DELETE TABLE waterinfo001
B. DELETE FROM TABLE waterinfo001
C. DROP TABLE waterinfo001
D. DROP FROM TABLE waterinfo001
drop是完全删除表,包括表结构
delete是删除表数据,保留表的结构,而且可以加where,只删除一行或者多行
truncate 只能删除表数据,会保留表结构,而且不能加where
4.MySQL是一种( )数据库管理系统。
A. 层次型
B. 联盟链
C. 关系型
D. 对象型
5.SQL语句中与Having子句同时使用的语句是?()
A. Group By
B. 联盟链
C. left Join
D. Where
SQL语法中,having需要与group by联用,起到过滤group by后数据的作用
6.请取出 BORROW表中日期(RDATE字段)为当天的所有记录?(RDATE字段为datetime型,包含日期与时间)。SQL语句实现正确的是:( )
A. select * from BORROW where datediff(dd,RDATE,getdate())=0
B. select * from BORROW where RDATE=getdate()
C. select * from BORROW where RDATE-getdate()=0
D. select * from BORROW where RDATE > getdate()
DATEDIFF(datepart, startdate, enddate) 函数返回两个日期之间的时间。
7.检索销量表中销量最好的商品id和销量(假设每件商品只有一个订单),下列SQL语句正确的是()
A. SELECT 商品id,销量 FROM 销量表 WHERE 销量=MAX(销量)
B. SELECT 商品id,MAX(销量) FROM 销量表 GROUP BY 销量
C. SELECT 商品id,MAX(销量) FROM 销量表 GROUP BY 商品id
D. SELECT 商品id,销量 FROM 销量表
WHERE 销量=(SELECT MAX(销量) FROM 销量表)
A.聚集函数不能直接出现在WHERE子句中;
B.商品id既不是聚集函数,也没有在GROUP BY子句后出现,该选项语句错误;
C.所检索的结果是每一个商品的最高销量,不符题意。
8.已知员工表如下图所示,员工编号依次递增,现需改变相邻员工的编号,当员工总人数为奇数是,不需要改变最后一个员工的编号。下列SQL语句不正确的是()
表employee:
±----±----------+
| eno | ename |
±----±----------+
| 1 | 小李 |
| 2 | 小王 |
| 3 | 小刚 |
| 4 | 小虎 |
±—±-----------+
A. SELECT
ROW_NUMBER() OVER(ORDER BY(eno+1-2*POWER(0,eno%2))) AS eno,ename
FROM employee
B. SELECT
ROW_NUMBER() OVER(ORDER BY(eno-1+2*MOD(0,eno%2))) AS eno,ename
FROM employee
C. SELECT
IF(eno%2=0,eno-1,
IF(eno=(SELECT COUNT(DISTINCT eno) FROM employee),eno,eno+1))
AS eno,ename
FROM employee
ORDER BY eno
D. SELECT
IF(eno%2=0,eno+1,
IF(eno=(SELECT COUNT(DISTINCT eno) FROM employee),eno,eno-1))
AS eno,ename
FROM employee
ORDER BY eno
题目说明当人数为奇数时,不改变最后一个人的编号,所以先减一
9.下列子句中不可以与聚合函数一起使用的是()
A. GROUP BY
B. COMPUTE BY
C. HAVING
D. WHERE
sql语句的执行过程是:from-->where-->group by -->having --- >order by --> select;
聚合函数是针对结果集进行的,但where是在查询出结果集之前进行筛选,所以聚合函数和where一起使用,会出现错误,
having是针对结果集做筛选的,所以把聚合函数和group by搭配,用having来代替where,having一般跟在group by后
10.下列选项中不属于结构化查询语言的组成部分的是()
A. 数据定义语言
B. 数据处理语言
C. 数据字典
D. 数据库事务
结构化查询语言包含6个部分:
一:数据查询语言(DQL:Data Query Language)
二:数据操作语言(DML:Data Manipulation Language)
三:事务处理语言(TPL)
四:数据控制语言(DCL)
五:数据定义语言(DDL)
六:指针控制语言(CCL)
数据字典是关于数据库中数据的描述,是元数据,而不是数据本身。
11.下列数据库备份类型中,仅记录自最近一次完整数据库备份以后发生改变的数据的是()
A. 完整数据库备份
B. 差异数据库备份
C. 事务日志备份
D. 文件和文件组备份
完全备份:所有都备份
事物日志备份:自上次备份以来对数据库的改变,备份数据库的操作
差异备份:自上次完全备份后所改变的数据库,备份的是数据
文件备份:可进行部分备份
12.下面哪些字符最可能会导致sql注入?
A. '(单引号)
B. /
C. "(双引号)
D. $
防止SQL注入,需要注意以下几个要点:
永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;
对单引号和双"-"进行转换等。
永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
应用的异常信息应该给出尽可能少的提示,采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
13.下列关于视图的描述正确的是()
A. 视图可以被嵌套,一个视图中可以嵌套另一个视图
B. 视图可以包含ORDER BY子句
C. 视图可以对临时表或表变量进行引用
D. 当底层表数据发生变化时,可使用SQL系统存储过程sp_helptext更新视图数据
B.当SELECT语句的选择列表有TOP子句时,视图可以包含ORDER BY子句;
C.视图不能对临时表或表变量进行引用;
D.sp_helptext用于获取自定义视图创建的T_SQL文本,更新视图数据可用sp_refreshview。
14.下列关于数据库系统三级模式结构的表述正确的是()
A. 内模式是面向数据库用户或应用程序的局部数据视图
B. 索引的组织方式是B+树索引,还是Hash索引与数据库的内模式有关
C. 逻辑模式是数据库在逻辑级上的视图,涉及数据的物理存储细节
D. 外模式/模式映像保证了数据库具有较高的物理独立性
A.外模式是面向数据库用户或应用程序的局部数据视图;
C.模式并不涉及数据的物理存储细节;
D.模式/内模式映像保证了数据库具有较高的物理独立性。
15.在SQL中语法规范中,having子句的使用下面描述正确的是:( )
A. having子句即可包含聚合函数作用的字段也可包括普通的标量字段
B. 使用having的同时不能使用where子句
C. having子句必须于group by 子句同时使用,不能单独使用
D. 使用having子句的作用是限定分组条件
E. Having子句和where子句是等同的
F. 如果select语句中没有聚合函数的使用,就不能使用having子句
HAVING子句中能够使用三种要素:常数,聚合函数,GROUP BY子句中指定的列名(聚合建)
用having就一定要和group by连用, 用group by不一有having(它只是一个筛选条件用的)
有having的地方一定有group by,但group by不是聚合函数
所以没有聚合函数,having可以和group by一起使用
常见的聚合函数:count(),avg(),sum(),max(),min()
16.下列选项中都属于关系代数运算符中集合运算符的是()
A. ∩、∪、−、×
B. ∩、∪、σ、π
C. ∧、∨、−、×
D. σ、π、¬、∩
B.选取σ、投影π是专门的关系运算符;
C.与∧、或∨是逻辑关系运算符;
D.选取σ、投影π是专门的关系运算符,非¬是逻辑关系运算符。
17.下列选项中的锁模式,可以用于数据修改操作,确保不会同时对同一资源进行多重更新的是()
A. 共享锁
B. 更新锁
C. 排他锁
D. 架构锁
共享锁S:共享锁锁定的资源可以被其他用户读取,但是其他用户无法修改,在执行select时,sql server会对对象加共享锁。(其他人可读不可写)
排它锁X:(独占锁)其他人不能读也不能写(所以不会多重更新)。
更新锁U:当SQL Server准备更新数据时,它首先对数据对象作更新锁锁定,这样数据将不能被修改,但可以读取。
等到SQL Server确定要进行更新数据操作时,他会自动将更新锁换为独占锁,当对象上有其他锁存在时,无法对其加更新锁。
架构锁:在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改 (Sch-M) 和架构稳定性 (Sch-S)。
18.下列关于视图说法错误的是?
A. 视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据
B. 创建视图用CREATE VIEW
C. 修改视图用ALTER VIEW
D. 删除视图用DELETE VIEW
删除视图应该使用DROP VIEW进行