文章目录
- 9.28
- 10.2
- 10.5
- 10.8
- 10.9
- 10.10
- 10.11
- 10.12
- 10.13
9.28
- 雇员表EMP 结构如下
( 雇员编号 EMPNO , 姓名 ENAME ,
工作岗位 JOB , 管理员编号 MGR ,
受雇时间 HIREDATE , 工资 SAL ,
奖金 COMM , 部门编号 DEPTNO );
下列操作语句正确的是:( A )
A. 显示在10和30部门工作并且工资大于5500元的雇员的姓名和工资,列标题显示为Employee和Monthly Salary 语句:SELECT ENAME EMPLOYEE ,SAL “MONTHLY SALARY” FROM EMP WHERE DEPTNO IN(10,30)AND SAL>5500;
B. 显示受雇时间在2010年1月1日和2012年12月31日之间的雇员的姓名、工资、及受雇时间,并以受雇时间升序排列。 语句:SELECT ENAME,SAL,HIREDATE FROM EMP WHERE HIREDATE BETWEEN ‘2010-01-01’ AND ‘2012-12-31’ ORDER BY HIREDATE;
C. 显示奖金比工资多10%以上的雇员的姓名、工资及奖金。 语句:SELECT ENAME,SAL ,COMM FROM EMP WHERE COMM>SAL*1.1;
D. 查询没有奖金且工资低于6500并工作岗位是经理、普通员工、销售员的所有员工信息。 语句:SELECT * FROM EMP WHERE SAL<6500 AND COMM IS NULL AND JOB IN (‘经理’,‘普通员工’,‘销售员’);
解析:
B项中的时间‘2012-12-31’若不写time时分秒,则默认时间为’00:00:00 ',因此查询日期只能截止到2012-12-31 00:00:00 并没有当天的记录
C项应该是COMM>=SAL*1.1
D项没有奖金COMM 可能为null也可能为0
- 在MySql中进行数据查询时,如果要对查询结果的列名重新命名,将sno列重新命名为学号,则下列语句正确的是( AC)
A. select sno as 学号 from T
B. select 学号= sno from T
C. select sno 学号 from T
D. select sno=学号 from T
错因:没有看清题目是一个多选的
10.2
- 关于索引,选项中说法错误的是( C )
建立索引的目的是提高检索数据库的速度。√
索引会降低数据库的写入性能。√索引越多数据库检索越快。
应该在经常查询或排序的列上创建索引。√ - 数据库管理系统(DBMS)是( D)
数学软件
应用软件
计算机辅助设计
系统软件 - 若系统在允许过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为 (B )
事务故障
系统故障
介质故障
运行故障
分析:
事务故障:是由于程序执行错误而引起事务非预期的、异常终止的故障。它发生在单个事务的局部范围内,实际上就是程序的故障。
系统故障:是指系统在运行过程中,由于某种原因,造成系统停止运行。可以简单理解为导致系统需要重启的基本都是系统故障
介质故障:是指外存储设备故障,主要有磁盘损坏,磁头碰撞盘面,突然的强磁场干扰,数据传输部件出错,磁盘控制器出错等
- 在mysql中,将"数据库原理"课程的学分赋值给变量的语句是(A)
select xuefen into @xuefen from course where cname=‘数据库原理’
select xuefen from course where cname=‘数据库原理’ and xuefen=@xuefen
select @xuefen=xuefen from course where cname=‘数据库原理’
select xuefen=@xuefen from course where cname=‘数据库原理’ - 一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:(X1,X2)→X3,X2→X4,则该关系属于(A )
第一范式
第二范式
第三范式
第四范式
解析参考 分析:
1NF,表示属性值是不可分割。
2NF,表示非主要的属性,必须完全依赖主要的属性,不能部分依赖
3NF,表示非主属性不要依赖于其他非主属性
- Mysql sql注入中使用延时注入时常用的语句是(BC)
wait for delay ‘0:0:10’
sleep(5)
benchmark(100000000,md5(1))
union select - 下面哪些方法可以用来诊断oracle IO、CPU、性能状况。(ABCD)
v$sqlarea(disk_reads)
statspack
sql_trace
v$session_wait
10.5
- 索引是对数据库表中一个或多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中数据。以下对索引的特点描述错误的是:(C)
加快数据的检索速度
加速表和表之间的连接在使用分组和排序子句进行数据检索时,并不会减少查询中分组和排序的时间
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
分析:
使用索引的优点:
大大加快了数据的检索速度;
加速了表与表之间的链接;
在使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间;
通过创建唯一性索引,可以保证数据数据库表中每一行数据的唯一性
- 设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是( B)? (改A为X)
该操作不存在问题
该操作丢失修改
该操作不能重复读
该操作读“脏”数据
分析:
丢失修改: 原本两个事务的目的是T1先把A的值加10,A变为58。然后T2把A的值再减2,即A变成56。但是根据题目中的执行顺序,A的值变为48-2=46,即T2的修改覆盖了T1的修改,这种现象叫做丢失修改。
读"脏"数据: 读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤消,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据。
- 以下二维数组声明合法的是( C)
char[2][3] ch = new char[][]
char[2][] ch = new char[][3]
char[][] ch = new char[2][3]
char[][] ch = new [2]char[3]
分析:
定义数组,等号左边不能出现数字,也就是数组的不管什么大小 不能出现在左边
- 容器panel缺省使用的布局编辑策略是( B)
Border Layout
Flow Layout
GridLayout
Card Layout
分析:FlowLayout的布局管理器
- 有关静态初始化块说法正确的是?(ABC)
无法直接调用静态初始化块
在创建第一个实例前或引用任何静态成员之前,将自动调用静态初始化块来初始化
静态初始化块既没有访问修饰符,也没有参数
在程序中,用户可以控制何时执行静态初始化块
10.8
- mysql 导出数据命令是(mysqldump)
- 2NF的二维表消除了传递函数依赖,则必定是?(C)
1NF
2NF
3NF
BCNF
分析:
第三范式(3NF)满足第三范式(3NF)必须先满足第二范式(2NF)。
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。
- 数据库系统阶段,数据_________D_________。
具有物理独立性,没有逻辑独立性
具有物理独立性和逻辑独立性
独立性差
具有高度的物理独立性和一定程度的逻辑独立性 - 设计数据库的存储结构属于 ( D ) 。
需求分析
概念设计
逻辑设计
物理设计
分析:
设计数据库步骤:
1.需求分析:分析用户的需求,包括数据、功能和性能需求;
2.概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3.逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4.物理结构设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5.数据库实施:包括编程、测试和试运行;
6.数据库的运行和维护:系统的运行与数据库的日常维护;
- 数据的物理独立性是指( C )
数据库与数据库管理系统相互独立
用户程序与数据库管理系统相互独立
用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
应用程序与数据库中数据的逻辑结构是相互独立的
二级映像保证了数据库系统的数据独立性:逻辑独立性与物理独立性。
逻辑独立性。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。 即,当数据的逻辑结构改变时,用户程序(外模式)也可以不变
外模式/模式映像保证了数据和程序的逻辑独立性
物理独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。 即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
模式/内模式映像,保证了数据和程序的物理独立性
- 下面有关sql绑定变量的描述,说法错误的是?(D)
绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果
使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源
使用绑定变量,提高了编程效率和可靠性,减少访问数据库的次数使用绑定变量,查询优化器会预估的比字面变量更加真实 - (CD)完成对数据库数据的查询与更新。
DCL
DDL
DML
DQL
分析:
DML:数据定义语言。select/insert/update/delete
DQL数据查询语言。select/from/where
注意仔细看题
- 假如在MySQL中有存储过程proc1(员工编号,月份)用来查询员工的工资,两个参数类型均为字符类型,则下列调用存储过程的方法正确的是(AC)
call Proc1(‘emp001’ ,’ 201601’ );
exec Proc1(‘emp001’ ,’ 201601’ );
call Proc1(‘emp001’ ,null);
call Proc1(‘emp001’ ,);
分析:
MySQL的存储过程参数没有默认值,所以在调用MySQL存储过程时,不能省略参数,但是可以用null来代替
call是mysql的存储过程调用方式,同时调用时必须有参数或者为null
- 若事务T对数据对象A加上S锁,则( B )。
事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X 锁。
事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X 锁。
事务T可以读A但不能修改A,其它事务能对A加S锁和X锁。
事务T可以读A和修改A,其它事务能对A加S锁和X锁。
共享锁【S锁】
又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
这保证了其他事务可以读A,但在T释放A上的S 锁之前不能对A做任何修改。
排他锁【X锁】
又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。
这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
- 关系型数据库管理系统应能实现的专门关系运算包括(B)
排序、索引、统计
选择、投影、连接
关联、更新、排序
显示、打印、制表 - 要保证数据库物理数据独立性,需要修改的是( B )。
模式
模式/内模式映射
模式/外模式映射
内模式 - 在 E-R 模型转换成关系模型的过程中,下列叙述不正确的是?(D)
每个 M ∶ N 联系类型转换一个关系表
每个实体类型转换成一个关系表
1∶1联系类型可以转换成一个新的关系表
1∶N 联系类型时,不可以生成新的关系表 - 死锁发生时( D )。
两个事务什么都没做
两个事务都需撤消
撤消其中一个事务,把两个事务都恢复到初态
撤消其中一个事务,并恢复到初态 - 下面哪些字符最可能会导致sql注入?(A)
’(单引号)
/
"(双引号)
$ - 下列哪些是与数据库管理相关的技术:( RDBMS、NoSQL、 NewSQL、HBase )
10.9
- 数据库管理系统的主要作用是 _A 。
实现数据的统一管理以及对数据库数据的一切操作
收集数据
进行数据库的规划、设计、维护等工作
提供数据查询界面 - 以下不是关系型数据库管理系统(RDBMS)的是(D)
mysql
postgreSql
oracle
hadoop
分析:
hadoop是分布式文件系统;
关系型数据库管理系统RDBMS:MySQL、SQL Server、DB2、Access
postgreSql是对象关系型数据库管理系统
- 积分result表中有A B C D四列,要求:
1)当A列值大于等于B列时,选择A列否则选择B列
2)当C列值大于等于D列时,选择C列否则选择D列
用SQL语句实现正确的是:( C )
select ( when A>=B then A else B ) MAX_AB, ( when C>=D then C else D ) MAX_CD from result
select (case when A>=B then A else B ) MAX_AB, (case when C>=D then C else D ) MAX_CD from result
select (case when A>=B then A else B end) MAX_AB, (case when C>=D then C else D end) MAX_CD from result
select case when A>=B then A else B end MAX_AB, case when C>=D then C else D end MAX_CD from result
分析:
<
和>
分别对应<
和>
,这是转义字符case when 判断条件 then 成功结果 else 不成功结果 end
- 把对关系SC的属性GRADE的修改权授予用户ZHAO的T-SQL语句是( C )
GRANT GRADE ON SC TO ZHAO
GRANT UPDATE ON SC TO ZHAO
GRANT UPDATE (GRADE) ON SC TO ZHAO
GRANT UPDATE ON SC (GRADE) TO ZHAO - 对关系模型叙述错误的是(D)
建立在严格的数学理论、集合论和谓词演算公式的基础之上
微机DBMS绝大部分采取关系数据模型
用二维表表示关系模型是其一大特点不具有连接操作的DBMS 也可以是关系数据库系统
分析:
有联系才有关系,所以关系模式必须要能够连接
- 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是 ( D )。
外模式
内模式
存储模式
模式 - 在下列选项中,哪一个不是控件(B)?
文本框
对象框
组合框
复选框
控件包含复选框 组合框 编辑框 列表框
- 数据库在磁盘上的基本组织形式是(B )
DB
文件
二维表
系统目录 - w_user表结构如下:
±-------±--------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±-------±--------±-----±----±--------±---------------+
| u_id | int(4) | NO | PRI | NULL | auto_increment |
| u_name | char(8) | YES | | NULL | |
| u_pass | char(8) | YES | | NULL | |
| u_img | blob | YES | | NULL | |
| u_info | text | YES | | NULL | |
±-------±--------±-----±----±--------±---------------+
以下创建索引的语句正确的是( BC )
CREATE INDEX in1 ON w_user(u_name(10));
CREATE INDEX in2 ON w_user(u_pass(3));
CREATE INDEX in3 ON w_user(u_img(10));
CREATE INDEX in4 ON w_user(u_info);
分析:
创建索引语法:create index 索引名 表(数据列)
A错是因为若类型是char类型其长度不能超过定义的范围;
D错是因为若定义的索引列是blob类型或者text类型,则必须指定长度
注意:若数据列是char和varchar类型,则length长度可以小于实际长度;若为blob或者text类型,则必须指定长度
- 数据库使用读写分离最主要的目的是(B)
应对读多写少的场景
减少X锁与S锁的竞争
及时备份数据
水平或垂直拆分数据库 - 以下哪种操作或者结果是保存在事务日志里的(C)
程序运行过程
程序的执行结果
对数据的更新操作
对数据的查询操作 - 视图是一个“虚表”,视图的构造基于( C)
.基本表
.视图
.基本表或视图
.数据字典 - 设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置"参照完整性规则",为此要求这两个表( B )
在父表连接字段上建立普通索引,在子表连接字段上建立主索引
在父表连接字段上建立主索引,在子表连接字段上建立普通索引
在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引
在父表和子表的连接字段上都要建立主索引 - 设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是( C)
- 该操作不存在问题
该操作丢失修改
该操作不能重复读
该操作读“脏”数据
分析:
3种数据不一致性
1、脏读
脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。
2、不可重复读
不可重复读是指在对于数据库中的某行记录,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,另一个事务修改了数据并提交了。
3、幻读
幻读是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行,就像产生幻觉一样,这就是发生了幻读。
- 一个1:n联系可以转换为一个独立的关系模式,关系的码为(C)。
实体的码
各实体码的组合
n端实体的码
每个实体的码
分析:
一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况:
若联系为1:1,则每个实体的码均是该关系的候选码。
若联系为1:n,则关系的码为n端实体的码。
若联系为m:n,则关系的码为诸实体码的组合。
- 视图建立后,在数据字典中存放的是(视图的定义)
- 设有关系模式EMP(职工号,姓名,年龄,技能)。假设职工号唯一,每个职工有多项技能,则EMP表的主码是( D )
职工号
姓名,技能
技能
职工号,技能
分析:
主键可以确定一个并且是唯一的一个元组(元祖即一行数据)。
虽然说职工号唯一,但是每个职工的技能存在多个,所以如果选择职工号作为主键的话,那么就会违背一个主键确定一个元组的原则。 而通过(职工号,技能)可以确定一个元组(即一行数据)
- 三种常用抽象:分类、聚集、概括
- mysql的between是包括边界的;not between不包括边界
10.10
- 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是___B___
部门+性别+基本工资
部门+性别+STR(基本工资)
STR(基本工资)+性别+部门
性别+部门+STR(基本工资)
分析:
部门是id,应该在前面 性别和工资存在重复
基本工资是数字,所以要转一下
str()函数用于将数值型数据转换为字符串。
str()函数实例
要求:将244533.3344转换为长度为12位,小数点后有4位的字符串
语句如下:select str(244533.3344,12,4)
- 索引的描述存放在下列哪一项所指示的对象中(C)
视图
模式
数据字典
文件
分析:
数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。
数据字典内容包括:
1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。
2、分配多少空间,当前使用了多少空间等。
3、列的缺省值。
4、约束信息的完整性。
5、用户的名字。
6、用户及角色被授予的权限。
7、用户访问或使用的审计信息。
8、其它产生的数据库信息。
数据字典:information_schema
- 下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限(A)
grant select,insert on userdb.userinfo to’zhangsan’@'localhost’
grant’zhangsan’@‘localhost’to select,insert for userdb.userinfo
grant select,insert on userdb.userinfo for’zhangsan’@‘localhost’
grant’zhangsan’@'localhost’to userdb.userinfo on select,insert
分析:
分配权限的格式应该是:grant [权限] on [table] to 'username'@'localhost';
- 在数据库的三级模式结构中,内模式有( A )
1个
2个
三个
任意多个
分析:
数据库的三级模式:外模式、内模式、模式。
一个数据库中外模式可以有多个,内模式和概念模式只能又一个
- 在某企业中,有关系 W(工号,姓名,工种,工资),其中工资由工种唯一决定。将其规范化到第三范式,正确的答案是?(C)
W1(工号,姓名) W2(工种,工资)
W1(工号,工种,工资) W2(工号,姓名)
W1(工号,姓名,工种) W2(工种,工资)
以上都不对
分析:
数据的范式:
1NF:字段不可分割
2NF:非主属性的列必须完全依赖于主属性,而不能部分依赖【主属性:可唯一的确定一行】
3NF:非主属性不依赖于其他非主属性。每一列数据都和主键直接关联,而不能间接相关。不存在传递依赖
A错。W1表和W2表之间没有建立联系【其中:W表示表,()括号里的主属性是能够唯一确定一列的属性】
B错。工资由工种唯一确定,存在非主属性之间的依赖。
C对。W1表和W2表由工种进行关联,并且满足3NF
- 对并发操作若不加以控制,可能会带来( 不一致 )问题。而对并发加以控制了,也就是加锁了,但是锁的控制没有弄好,才会带来(死锁)问题
- 以 MySQL 5.7 或更低版本为准的数据库中,如何正确选择和使用合适的数据类(ABC)
更小通常更好
尽量用最简单的数据类型
尽量不使用 Null 作为字段值
字符串较长时优先用 Text 数据类型
D项,应采用varchar灵活变长
- 在SQL中语法规范中,having子句的使用下面描述正确的是:( AC )
having子句即可包含聚合函数作用的字段也可包括普通的标量字段
使用having的同时不能使用where子句
having子句必须于group by 子句同时使用,不能单独使用
使用having子句的作用是限定分组条件
Having子句和where子句是等同的
如果select语句中没有聚合函数的使用,就不能使用having子句
这题有点争议:如果C对,为啥F不对呢?
- 对于一个关系模式而言,所达到的范式越高越好,所以一般在进行关系规范化时,应该将其尽可能地规范化到第五范式( × )
分析:
不是越高越好,一般达到3nf就好了
- 关系规范化中的 删除 异常是指( A )
不该删除的数据被删除
不该插入的数据被插入
应该删除的数据未被删除
应该插入的数据未被插入
分析:
删除异常:不该删除的数据被删除
插入异常:应该插入的数据未被插入
- alter是针对表整体结构的修改;modify是针对表中某一项的字段进行修改
- 数据库系统的特点:数据共享、数据独立、减少数据冗余、避免数据不一致、加强了数据保护。
- DDBS 中,透明性层次越高( C )
网络结构越简单
网络结构越复杂
应用程序编写越简单
应用程序编写越复杂
DDBS:分布式数据库系统
计算机中的透明指的是:计算机中存在,但你不需要了解的。因此透明程度粤澳,越不需要管底层的实现,程序编写也就越简单
- 数据库管理系统的工作不包括( C )
定义数据库
对已定义的数据库进行管理
为定义的数据库提供操作系统
数据通信
数据库管理系统要做的工作:描述数据库;管理数据库;维护数据库;数据通讯
- E —R模型属于( 信息模型 )
- 在MySql中,在Product表中,使用全文索引在detail列中搜索包含“rabbit”的列,则下列语句正确的是( A )
select * from product where mactch(detail) against (‘rabbit’)
select * from product where against (detail) mactch (‘rabbit’)
select * from product where fulltext (detail) mactch (‘rabbit’)
select * from product where mactch (detail) fulltext (‘rabbit’)
selete与match()和against()一起使用:match():指定被搜素的列;against():指定要使用的搜索表达式
- 在MySQL中,关于HASH索引,下列描述正确的是( ABD )
只用于使用=或者 < = >操作符的等式比较
优化器不能使用HASH索引来加速Order By操作
如果将一个MyISAM表改为HASH索引的MEMORY表,不会影响查询的执行效率
只能使用整个关键字来搜索一行 - 下面关于数据库范式的说法哪些是正确的:( ADE )
关系型数据库设计必须符合第一范式,在这种范式下一个数据列只能有一个值
数据库设计范式的引入,提高了数据库访问的效率 ——数据库范式的引入是为了解决插入、删除异常等问题,并不能提高访问效率
数据库表设计[学号,学生姓名、年龄、性别、课程号、课程名称 课程学分]满足第二范式,但不满足第三范式
满足第四范式必然满足第三范式,满足第三范式必然满足第二范式
通过数据范式的引入,可以减少数据冗余,消除数据操作异常
数据库设计时,符合的范式的等级越高越好 ——不是越高越好,看具体需求 - 以下关于事务的说法不正确的是(A)
事务是可以分割的一组操作集合(工作逻辑单元)。
一系列操作作为一个整体一起向系统提交,要么都执行、要么都不执行。
事务是数据库操作的最小工作单元。
事务是作为单个逻辑工作单元执行的一系列操作。
分析:
事务具有原子性,不可分割。事务就是最小的操作逻辑单元。事务里包括了一系列操作。
- 设有学生关系student(sno,sname,sdept,mname),表示学号,姓名,系,系主任。该关系中存在如下函数依赖:(B)
1NF
2NF
3NF
BCNF
分析:这里的属性都不可分割因此是满足1NF的;
因为非主属性都依赖于主属性sno因此满足2NF;
因为非主属性之间存在依赖,因此不满足3NF;
- SQL 与 C 语言处理记录的方式是不同的。当将 SQL 语句嵌入到 C 语言程序时,为协调两者而引入(游标)。
一条SQL语句原则上可以产生或处理多条记录,而一组主变量一次只能存放一条记录。因此,仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要 求。为了解决这个问题,嵌入式SQL引入了游标的概念来协调这两种不同的处理方式。
游标是系统开设的一个数据缓冲区,存放SQL语句的执行结果集。 每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。
- 某打车公司要将驾驶里程(drivedistanced)超过5000里的司机信息转存到一张称为seniordrivers 的表中,他们的详细情况被记录在表drivers 中,正确的sql语句为(D)
insert into seniordrivers drivedistanced>=5000 from drivers where
insert seniordrivers (drivedistanced) values from drivers where drivedistanced>=5000
insert into seniordrivers (drivedistanced)values>=5000 from drivers where
select * into seniordrivers from drivers where drivedistanced >=5000
分析:
AC中where子句有问题;
B项没有into;
- 一般情况,企业会将从一个供应商处一次所进的多种货物办理一次入库,因此设计了关系模式:入库单(单号, 日期, 库房, 供应商,物品, 数量, 金额),下列说法正确的是_____A____。
不满足第2范式;
满足第2范式但不满足第3范式;
满足第3范式;
都不对。
参考文献 这里的单号和物品都是候选键(可以被选作为主键)
码(键):在实体型中,能唯一标识一个实体的属性或属性集称为实体的码。比如学生的学号就是学生这个实体的码,因为学号每个人都是不一样的,但名字就不能作为码了,因为可能会有重名的。
- 如下哪个不是数据库处理一个查询的步骤?
distribution
optimization
evaluation
parsing and transiation
分析:
- 客户端发送一条查询给服务器;
- 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;
- 服务器端进行SQL解析parsing、预处理transition,再由优化器optimization生成对应的执行计划;
- 根据优化器生成的执行计划,调用存储引擎的API来执行分布distribution查询;
- 将结果返回给客户端。
- 有订单表orders,包含字段用户信息userid,字段产品信息productid,以下语句能够返回至少被订购过两次的productid?(D)
select productid from orders where count(productid)>1
select productid from orders where max(productid)>1
select productid from orders where having count(productid)>1 group by productid
select productid from orders group by productid having count(productid)>1
where不能直接连接聚合函数;AC错
聚合函数要配合聚合操作group by使用;
having要在聚合函数之后使用;C错
本题错误原因:被多选题给迷惑了
- RDBMS 通常会实现不同的隔离级别,有些数据库中的隔离级别是可随时调整的,那么关于隔离级别以下说法正确的是(ABD)
ANSI/ISO SQL92 标准定义了四种隔离级别,分别是 Read uncommitted、Serializable、Repeatable read、Read committed
在同样的运行环境下,不同隔离级别的性能从高到低的顺序是 Read uncommitted > Read committed > Repeatable read > Serializable
Oracle 数据库采用的默认隔离级别和MySQL 实现的 READ COMMITTED 相似,这个隔离级别下不会出现脏读(Dirty Read)和不可重复读(Non-Repeatable Reads),但会有幻读(Phantom Reads)
Serializable 隔离级别能够完全防止脏读(Dirty Read)、不可重复读(Non-Repeatable Reads)和幻读(Phantom Reads)
RDBMS :关系数据库管理系统
- 关于存储过程和函数,正确的是(ABCEFG)
存储过程能返回参数。
函数只能返回值或者表对象,不能返回参数。
函数可以用在查询语句中的FROM关键字后面。存储过程能够作为查询语句的一部分来调用存储过程一般作为独立的部分来执行,不能作为查询语句的一部分来调用
存储过程一般作为独立的部分来执行。
存储过程可提高数据库执行速度。
存储过程能减少网络交互的成本。
存储过程就是具有名字的一段代码,用来完成一个特定的功能
10.11
- 层次模型必须满足的一个条件是( B )
每个结点均可以有一个以上的父结点
有且仅有一个结点无父结点
不能有结点无父结点
可以有一个以上的结点无父结点 - 在数据表视图中,不能(A)
修改字段的类型
修改字段的名称
删除一个字段
删除一条记录 - 表结构如下:
CREATE TABLEscore
(id
int(11) NOT NULL AUTO_INCREMENT,sno
int(11) NOT NULL,cno
tinyint(4) NOT NULL,score
tinyint(4) DEFAULT NULL,
PRIMARY KEY (id
)
) ;
以下查询语句结果一定相等的是(ABCE)
A.SELECT sum(score) / count(*) FROM score WHERE cno = 2;
B.SELECT sum(score) / count(id) FROM score WHERE cno = 2;
C.SELECT sum(score) / count(sno) FROM score WHERE cno = 2;
D.SELECT sum(score) / count(score) FROM score WHERE cno = 2;
E.SELECT sum(score) / count(1) FROM score WHERE cno = 2;
F.SELECT avg(score) FROM score WHERE cno = 2;
分析:
count(字段名):会忽略该列中所有的null值
count(*):不会忽略null值,本质计算的是行数
count(1):不会忽略null值,本质计算的是行数
ABCE结果一样,计算的都是总的平均值,不会忽略空值
DF结果一样,计算的是score列的平均数,会忽略空值
10.12
- 设关系R、S、W各有10个元组,那么这三个关系的笛卡尔积的元组个数是(C)
10
30
1000
不确定
笛卡尔积为各个元组的乘积
- DBS 的软件由( B )、数据库管理系统和主语言系统、应用开发工具软件和应用系统及数据库组成
SQL
操作系统
DB2
FOXPRO
数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。
- 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( D)
外模式
内模式
存储模式
模式
数据库的三级模式:
外模式:也称为用户模式,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图;
模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;
内模式:也称为存储模式,是数据物理结构和存储方式的描述;
- 在数据库设计中,将E-R图转换为关系数据库模型的过程属于(B)
需要分析阶段
逻辑设计阶段
概念设计阶段
物理设计阶段
分析:错误原因:审题不仔细
- 在Sql server中,以下哪一句从表TABLE_NAME中提取前10条记录?(B)
select * from TABLE_NAME where rowcount=10
select TOP 10 * from TABLE_NAME
select TOP of 10 * from TABLE_NAME
select * from TABLE_NAME where rowcount<=10
分析:
各个数据库的语法不一样:
Sql server: select TOP N * from table_name.
MySQL: select * from table_name limit 0,10;
Oracle: select * from table_name where rownum<=10
题目问的是Sql server
- 关系模型中,表示实体间n:m联系是通过增加一个( A )
关系实现
属性实现
关系或一个属性实现
关系和一个属性实现
在多对多表中,要考虑建立关系表来建立联系
- 下面哪些性质不是传统关系数据库事务的基本特征:( AC )
伸缩性
原子性
容错性
一致性
持久性
隔离性
注意审题:不是基本特征的是!
- 外键 :表的外键是另一表的主键 , 外键可以有重复的 , 可以是空值
- 已知关系R有30个元组,S有15个元组,则R∪S和R∩S的元组数不可能是( C )
40、5
30、15
45、15
38、7
道题主要考虑两个数据是否同时正确,C选项中R∪S若为45=R+S那么此时,R和S中没有相同的元组,这就表明R∩S应当为0.
- 若在文件中查询年龄在60岁以上的男性及年龄在55岁以上的女性的所有记录,则查询条件为( C )
(性别=“男”)OR(年龄>60)OR(性别=“女”)OR(年龄>55)
(性别=“男”)OR(年龄>60)AND(性别=“女”)OR(年龄>55)
(性别=“男”)AND(年龄>60)OR(性别=“女”)AND(年龄>55)
(性别=“男”)AND(年龄>60)AND(性别=“女”)AND(年龄>55)
审题不仔细,选成D了
- 在课程表中要查找课程名称中包含“计算机”课程,对应“课程名称”字段的正确准则表达式是()
“计算机”
“计算机”
LIKE “计算机”
LIKE “%计算机%”
审题不仔细,题目是包含“计算机”字符串的课程,不是直接等于
- 数据库三级模式体系结构的划分,有利于保持数据库的 (A)
数据独立性
数据安全性
结构规范化
操作可行性 - 数据库管理系统(DBMS)最主要的功能是( B )
修改数据库
定义数据库
应用数据库
保护数据库 - 在mysql中,与语句SELECT * FROM book b WHERE b.book_num NOT BETWEEN 200 AND 300;等价的有(D)
SELECT * FROM book b WHERE b.book_num < 200 OR b.book_num >= 300
SELECT * FROM book b WHERE b.book_num <= 200 OR b.book_num > 300
SELECT * FROM book b WHERE b.book_num <= 200 OR b.book_num >= 300
SELECT * FROM book b WHERE b.book_num < 200 OR b.book_num > 300
注意:问的是等价的,不是相反的!!!
not between 不包含等于号;
between包含等于号;
- 下面有关事务隔离级别说法正确的是?(ABCD)
未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据
提交读(Read Committed):只能读取到已经提交的数据
可重复读(Repeated Read):在同一个事务内的查询都是事务开始时刻一致的
串行读(Serializable):完全串行化的读,每次读都需要获得共享锁,读写相互都会阻塞
注意看题,A项是对的
- 处理效率:drop>truncate>delete
drop:删除整个表
truncate:删除全部记录
delete:删除部分记录,可以rollback - 下面关于数据库唯一索引正确的是( ABC )
表可以包含多个唯一约束,但只能有一个主键
唯一约束列可以包含null值
唯一约束列可修改和更新
唯一约束不能用来定义外键
唯一约束列可以包含null值;
主键是非空且唯一的,因此不能包含null
- 假设MySQL数据库表:
create table T{
k int unsigned not null auto_increment,
a date,
b varchar(24),
c int,d varchar(24),
primary key(k),unique key a_index (a DESC,b DESC),
key k1(b),key k2©,key k3(d));
如下哪些sql语句查询能较好的利用索引?(AD)
select b from WHERE b like ‘aaa%’;
select a,b from T WHERE a=‘2015-10-25’ ORDER BY b ASC,c ASC;
select a,b,c from T WHERE a=‘2015-10-25’ ORDER BY b ASC;
select a,b,c from T WHERE a=‘2015-10-25’ ORDER BY a,b;
order by与索引
首先利用where进行数据查询,这一步是免不了的,至于这一步有没有利用索引暂时不考虑,关键是在获取所有符合的记录后还需要进行排序,看看order by是如何利用索引的。
如果order by中的字段有建立索引,同时:
1、该字段没有出现在where中,则在排序的时候需要正常排序,默认order by是升序排序, 故索引没有对排序产生有利帮助 (B,C错误)
2、该字段同时同时出现在where中,则在获取记录后不进行排序,而是直接利用索引, 效率变高。(D正确)
遵守两段锁协议的事务一定不会死锁。( × )
两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁。
事务的两段锁协议是保证可串行化调度的充分条件
- 若系统在运行过程中,由于某种硬件故障使存储在外存上的数据部分损失或全部损失, 这种情况称为( A)
介质故障
运行故障
系统故障
事务故障 - 在数据库的三级模式结构中,外模式可以有多个,内模式和模式只有一个
- 数据库中 (完整性) 是指数据的正确性和相容性
- 如果要从数据库中删除触发器,应该使用SQL语言的命令(DROP TRIGGR)
- 关系数据模型的基本数据结构是(D)
树
图
索引
关系 - 如下哪(个)些特性功能不用于数据的查询优化?(C)
并行查询
索引视图
分区 - 数据的逻辑独立性是指( C )
内模式改变,模式不变
模式改变,内模式不变
模式改变,外模式和应用程序不变
内模式改变,外模式和应用程序不变 - Mysql、DB2、PostgreSQL都是关系型数据库;
MongoDB是分布式数据结构 - 可串行化调度肯定是正确的并发调度。√
串行调度,各个事务的操作没有交叉,也就没有互相干扰,也就不会产生兵法所引起的异常 - 哪些字段适合建立索引?(BCD)
在select子句中的字段
外键字段
主键字段
在where子句中的字段 - 下列哪一个Transact-SQL语句能够实现拒绝user4查询视图MyView的权限(C )
REVOKE UPDATE ON MyView
GRANT SELECT ON MyView TO user4
DENY SELECT ON MyView TO user4
GRANT UPDATE ON MyView - 数据库系统软件包括DBMS和_________
数据库
高级语言
OS
数据库应用系统和开发工具 - 在MySQL里,对数据表进行修改的语句正确的是(BD)
alter table employee add memo
alter table employee drop column age
alter table employee add column
alter table employee drop age
删除列drop可以省略column;
添加列add必须说明数据类型;
例如:
ALTER TABLE table_name
DROP column_name
- group by的作用是限定分组条件;having子句筛选分组后的数据
10.13
- 层次模型、网状模型和关系模型的划分原则是 D
记录长度
文件的大小
联系的复杂程度
数据之间的联系 - 请取出 BORROW表中日期(RDATE字段)为当天的所有记录?(RDATE字段为datetime型,包含日期与时间)。SQL语句实现正确的是:( A )
select * from BORROW where datediff(dd,RDATE,getdate())=0
select * from BORROW where RDATE=getdate()
select * from BORROW where RDATE-getdate()=0
select * from BORROW where RDATE > getdate()
DATEDIFF() 函数返回两个日期之间的时间。
语法
DATEDIFF(datepart,startdate,enddate)