1.事务的4大特性
原子性、一致性、隔离性、持久性
2.两个实体之间的联系通常有3种类型,包含
3.【多选】以下是数据类型有
4.【多选】为保障数据库的稳定性,通常要对数据库进行压力测试,压测需要考虑的指标包括
5.【单选】语句中“select * from table limit 2,1”,表示
6.【判断】SQL是用于管理关系数据库管理系统。
对
7.【单选】E-R图是
ER模型,全称为实体联系模型、实体关系模型或实体联系模式图(ERD)
8.【判断】SQL语言中,用于排序和分组的是order by 和Group by。
1、意思不一样。
order by 是指从英文里理解就是行的排序方式,默认的为升序。后面必须列出排序的字段名,可以是多个字段名。
group by 是指从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
2、适用范围不同:order by 用于排序,一般与asc升序或desc降序一起使用。例如select * from 表A order by 列a。
group by 用于分类汇总,一般与聚合函数(比如avg平均、sum合计、max最大、min最小、count计算行)一起使用。例如select 月份,sum(工资)as 总工资 from 工资表 group by 月份。
3、定义不同:order by主要侧重许多数据的排序,例如按照大小顺序对数据进行排列,group by主要侧重许多数据的分组,例如按照性别、年龄、国家、学科等进行分组。
4、使用的函数不一样。
order by子句中的列必须包含在聚合函数或 GROUP BY 子句中。
group by 子句中可使用的函数AVG() 、MIN() 、 MAX() 、SUM() 、COUNT() 。
9.【单选】SQL的全称是___。结构化查询语言
10.【单选】查询当天日期的函数是____ 。
11.【判断】主键不能有重复,但允许为空。
不能为空。
主键的设计原则:
1.主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id。
2.唯一性。
3.非空性:主键的值是不可重复的,也不可以为空。
12.【单选】SQL语句中,删除一个数据库的关键词是
13. 【单选】学校里,一名老师可带多个班级,一个班级有多名老师,那老师和班级的关系是
14.【单选】SQL语句中,表示求和的函数是___。
15.【单选】SQL语句中,查询学生平均成绩的函数是___。
16.【单选】SQL语句中,删除一条记录的关键词是___。
区别在于是数据还是数据库
17.判断 SQL对大小写不敏感。
对
18.数据库系统的核心是数据库管理系统。
对
在数据库应用中,常用到DB、DBMS、DBS等术语,其形式定义如下。
数据库(DataBase,简称DB)
严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。数据库能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。
数据库管理系统(DataBase Mangement System,简称DBMS)
数据库管理系统(database management system)是一种操纵和管理数据库的软件,用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。
数据库管理系统主要提供如下功能。
1.数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
2.数据操作:DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。
3.数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
4.数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。
5.数据库的保护:数据库中的数据是信息社会的战略资源,随数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。
6.数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。
7.通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。
数据库系统(DataBase System,简称DBS)
数据库系统一般由4个部分组成:
(1)数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。
(2)硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。
(3)软件:包括操作系统、数据库管理系统及应用程序。数据库管理系统(database management system,DBMS)是数据库系统的核心软件,是在操作系统(如Windows、Linux等操作系统)的支持下工作,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。
(4)人员:主要有4类。
第一类为系统分析员和数据库设计人员:系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。
第二类为应用程序员,负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除或修改。
第三类为最终用户,他们利用系统的接口或查询语言访问数据库。
第四类用户是数据库管理员(data base administrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行,负责数据库的性能改进、数据库的重组和重构,以提高系统的性能。
19.【判断】SQL语言的类型有数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)、数据控制语言(DCL)
对
20.【单选】餐厅中,顾客点餐时可点多个菜,每道菜也可被多个顾客点,那菜和顾客的关系是
貌似错了2个哈哈
再来个中级的测试
1.【判断】MySQL在任何时候都支持事务。
错误
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
- 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
- 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
- 事务用来管理 insert,update,delete 语句
一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
- 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
- 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
- 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
- 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
2.【单选】完整的数据库设计通常分为多个阶段,其中E-R模型设计是属于____。
按照规范的设计方法,一个完整的数据库设计一般分为以下六个阶段。
1、需求分析:分析用户的需求,包括数据、功能和性能需求
2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图
3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换
4、数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径
5、数据库的实施:包括编程、测试和试运行
6、数据库运行与维护:系统的运行与数据库的日常维护
3.【单选】在SQL语言中,子查询是指____。
子查询是嵌套在另一个语句,如:select,insert,update、delete中的查询
4.【单选】查找 emp表中所有电话号码phone_no的以1或3开头,第三位为0的电话号码的SQL语句是____。
SELECT phone FROM emp WHERE phone_no LIKE ‘[1,3]_0%’
5.【判断】与表有关的约束,包括列约束(NOT NULL)和表约束(PRIMARY KEY、Foregin Key、Check、Uniqne)
数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。
分为以下四类:
1、实体完整性:规定表的每一行在表中是惟一的实体。
2、域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3、参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4、用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。与表有关的约束:包括列约束(NOT NULL(非空约束))和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 。
6.单选 防止SQL注入的方式,不包括
1.严格区分用户权限
在权限规划中,针对软件用户,没有必要给予数据库的创立、删去等管理权限。这样即使在用户输入的SQL句子种含有内嵌式的恶意程序,由于其权限的限制,也不可能履行。所以程序在权限规划时,最好把管理员与用户区别起来。这样能够最大极限的降低注入式进犯对数据库产生的危害。
2.强制参数化句子
在规划数据库时,如果用户输入的数据并不直接内嵌到SQL句子中,而经过参数来进行传输的话,那麼就能够合理的防备SQL注入式进犯。
运用这种办法能够避免绝大多数的SQL注入进犯。遗憾的是,如今适用参数化句子的数据库引擎并不多,但是数据库工程师在开发时要尽可能选用参数化规划句子。
3.查验用户输入的信息
在SQLServer数据库中,有比较多的输入內容查验东西,能够帮忙管理人员来应对SQL注入式进犯:
检测字符串的內容,只接收需求的值;
拒绝包括二进制、转义序列和注释內容,这有利于防备脚本注入。
检测输入内容的大小和数据类型,强制履行适度的限制与改换,这有利于避免缓冲区溢出。
4.使用专业的漏洞扫描东西
使用专业的漏洞扫描东西,能够帮忙管理人员来找寻有可能被SQL注入进犯的点。凭着专用东西,管理人员能够快速发觉SQL注入的漏洞,并选用积极主动的对策来防备SQL注入式进犯。
5.使用陷阱账户
能够设定两个账户,即管理员账户和防注入账户。将防注入的账户伪装成管理员账户,如将称号设置为admin,让检测软件产生幻觉,在暗码方面,能够设置成超长的中文字符(几千字),让进犯者的漏洞检测软件到达高负荷状况直至资源耗尽。
7.单选 order by与group by的区别是
8.【单选】SQL语句中,表示去重的函数是___
1.distinct去重
注意的点:distinct
只能一列去重,当distinct后跟大于1个参数时,他们之间的关系是&&(逻辑与)关系,只有全部条件相同才会去重
弊端:当查询的字段比较多时,distinct会作用多个字段,导致去重条件增多
select distinct UserResult from Table1
2.group by去重
去重原理:将重复的行进行分组,相同的数据只显示第一行
弊端:使用group by后,所有查询字段都需要使用聚合函数,比较繁琐
select min(UserName)UserName,min(UserSex)UserSex,min(UserSubject)UserSubject,min(UserResult)UserResult from Table1
group by UserResult
3.row_number() over (parttion by 分组列 order by 排序列)
9.【单选】把表A中的数据导入到新的表B中,以下SQL语句正确的是
insert into table1 select * from table2
10.【单选】事务1和事务2是一对多关系,事务2和事务3是一对一关系,则事务1和事务3是____关系。
一对一
11.【单选】向表“Notes”中添加一新行,仅为部分列(N_num,N_name)提供列值:“89”,“Math”。下列代码能实现该操作的是
num=89
name=math
12.【单选】SQL语句中,表示计算个数的函数是___?
13.【判断】MySQL在缺省模式下依然支持事务。
错误
在缺省模式下,MYSQL是autocommit模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql是不支持事务的。
14.【判断】group by 分组,如:[每个学生的平均:按学号分组]; having 对分组结果指定条件,如:[大于60分]
对
15.【多选】锁的优化策略包括___。
1、读写分离
2、分段加锁
3、减少锁持有的时间
4.多个线程尽量以相同的顺序去获取资源
不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效
率不如一次加一把大锁。
16.【多选】列的字符串类型可以是____。
不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效
率不如一次加一把大锁。
16.【多选】列的字符串类型可以是____。
19.多选 使用如下SQL语句创建表SCORE:
CREATE TABLE SCORE
(STU_NO CHAR (6),
SCORE INTEGER CHECK(SCORE>0 AND SCORE<101),
NOTE CHAR(20)
PRIMARY KEY(STU_NO);
建表成功后,下列数据无法被添加成功的是____。
20.【多选】SQL标准定义的四个隔离级别有____。