马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、单选题 (题数:40,共 20.0 分)
1
【单选题】如果要回滚一个事件,则要使用( )语句。
A、
revoke
B、
rollback
C、
begin
D、
commit
准确答案: B 我的答案:D
答案剖析:
2【单选题】假定有一张表用户表users,此中一身份证字段ID_car
D)为了维护数据的完备性,在筹划 数据库时,最好对ID_card字段添加束缚,叨教应该添加什么束缚______
A、
check
B、
primary key
C、
default
D、
not null
准确答案: B 我的答案:B
答案剖析:
3
【单选题】下列关于读锁和写锁的区别形貌准确的是( )。
A、
-个读锁和一个写锁是不兼容的
B、
以上都准确
C、
两个写锁也是不兼容的
D、
两个读锁是兼容的
准确答案: B 我的答案:A
答案剖析:
4【单选题】若要在根本表S中增长一列CN(课程名),可用( )
A、
ALTER TABLE S ADD(CN CHAR(8))
B、
ADD TABLE S(CN CHAR(8))
C、
ADD TABLE S ALTER(CN CHAR(8))
D、
ALTER TABLE S (ADD CN CHAR(8))
准确答案: A 我的答案:C
5【单选题】SELECT CONCAT("I","love","mysql")的结果是()。
A、
Ilovemysql
B、
love
C、
mysql
D、
I love mysql
准确答案: A 我的答案:A
6【单选题】下列说法错误的是______。
A、
B、
SELECT可以运算字符表达式
C、
游标只能序次移动
D、
SELECT中的输出列可以是由字段构成的表达式
准确答案: A 我的答案:B
答案剖析:
7【单选题】使用哪个下令可以从表的行中删除全部数据而不删除表自身?
A、
ALTER TABLE
B、
DELETE FROM
C、
MODIFY
D、
DROP TABLE
准确答案: B 我的答案:B
答案剖析:
8【单选题】select * from student 该 代码中的 * 号,表现的准确寄义是:
A、
含糊查询
B、
错误信息
C、
平凡的字符*号
D、
全部的字段名
准确答案: D 我的答案:D
答案剖析:
9
A、
B、
它可作为一个独立的 数据库对象并作为一个单元供用户在应用步调中调用
C、
存储过程方便用户批量实验SQL下令
D、
存储过程必须带参数,要么是输入参数,要么是输出参数
准确答案: D 我的答案:D
答案剖析:
10【单选题】建表语句中的 not null,该 代码表现的寄义是:
A、
答应空格
B、
非空束缚
C、
不答应写入数据
D、
不答应读取数据
准确答案: B 我的答案:B
11
【单选题】在 数据库筹划中使用E-R图工具的阶段是( )。
A、
概念结构筹划阶段
B、
需求分析阶段
C、
数据库物理筹划阶段
D、
数据库实验阶段
准确答案: A 我的答案:A
答案剖析:
12
【单选题】SELECT ROUND(45.953, -1) 的表现结果为( )。
A、
50
B、
45.93
C、
46
D、
45.9
准确答案: A 我的答案:A
答案剖析:
13在Mysql的下令行中调用存储过程sp和函数fn的方法分别是( )。
A、
SELECT sp(),CALL fn();
B、
CALL sp(),CALL fn();
C、
SELECT sp(),SELECT fn();
D、
CALL sp(),SELECT fn();
准确答案: D 我的答案:D
14【单选题】下列哪些语句对主键的阐明准确______
A、
主键可重复
B、
主键不唯一
C、
主键用foreign key修饰
D、
在数据表中的唯一索引
准确答案: D 我的答案:D
答案剖析:
15
【单选题】以下聚合函数求匀称数的是( )。
A、
COUNT
B、
SUM
C、
MAX
D、
AVG
准确答案: D 我的答案:D
答案剖析:
16【单选题】SQL是一种______语言。
A、
高级算法
B、
函数型
C、
关系数据库
D、
人工智能
准确答案: C 我的答案:C
答案剖析:
17【单选题】创建视图的下令是( )
A、
alter view
B、
create view
C、
create table
D、
alter table
准确答案: B 我的答案:B
18
【单选题】关于DATETIME与TIMESTAMP两种数据范例的形貌,错误的是( )。
A、
TIMESTAMP可以主动记载当前日期时间
B、
两者值的范围不一样
C、
两者值的范围一样
D、
两者占用空间不一样
准确答案: C 我的答案:C
答案剖析:
19【单选题】下列关于表和视图的说法准确的是______
A、
B、
视图的数据全部在表中
C、
每个视图对应一个表
D、
对全部视图也可象表一样实验UPDATE使用
准确答案: B 我的答案:B
答案剖析:
20【单选题】下面哪一个语句可以使用子查询( )
A、
UPDATE语句
B、
DELETE语句
C、
以上都是
D、
SELECT 语句
准确答案: C 我的答案:C
答案剖析:
21
【单选题】数据库筹划中的概念结构筹划的告急工具是( )。
A、
数据模子
B、
概念模子
C、
E-R模子
D、
新奥尔良模子
准确答案: C 我的答案:C
答案剖析:
22
【单选题】为数据表创建索引的目的是( )。
A、
创建唯一索引
B、
归类
C、
D、
创建主键
准确答案: C 我的答案:C
答案剖析:
23
【单选题】使用( )语句可以删除触发器trig_Test。
A、
DROP trig_Test;
B、
DROP TRIGGER trig_Test;
C、
DROP * FROM trig_Test;
D、
DROP TRIGGER WHERE NAME=‘trig_Test’;
准确答案: B 我的答案:B
答案剖析:
24【单选题】在MySQL中,下面用于限定分组函数的返回值的子句是______。
A、
ORDER BY
B、
无法限定分组函数的返回值
C、
HAVING
D、
WHERE
准确答案: C 我的答案:C
答案剖析:
25【单选题】触发器不是相应以下哪一语句而主动实验的Mysql语句______
A、
delete
B、
update
C、
select
D、
insert
准确答案: C 我的答案:C
答案剖析:
26
【单选题】如果对于实体集A中的每一个实体,实体集B中有可有多个个实体与之接洽;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之接洽。则称实体集A与B具有( )。
A、
1:1接洽
B、
N:M接洽
C、
多种接洽
D、
1:N接洽
准确答案: B 我的答案:B
答案剖析:
27【单选题】CREATE,DROP,ALTER等下令属于下列哪类下令______
A、
DML
B、
DCL
C、
DDL
D、
DQL
准确答案: C 我的答案:C
答案剖析:
28
【单选题】返回字符串长度的函数是( )。
A、
length()
B、
long()
C、
left()
D、
len()
准确答案: A 我的答案:A
答案剖析:
29
【单选题】下列关于局部变量和用户变量的形貌中,错误的是 ( )。
A、
局部变量使用 DECLARE语句界说
B、
用户变量以 "@"开头,局部变量没有这个符号
C、
局部变量只在 BEGIN...END 语句块之间有效
D、
在存储函数中只能使用局部变量
准确答案: D 我的答案:A
答案剖析:
30【单选题】delete from employee语句的作用是( )
A、
删除当前数据库中整个employee表,包罗表结构
B、
删除当前数据库中employee表内的全部行
C、
删除当前数据库中employee表内的当前行
D、
由于没有where子句,因此不删除任何数据
准确答案: B 我的答案:B
31【单选题】为数据表创建索引的目的是______
A、
B、
归类
C、
创建唯一索引
D、
创建主键
准确答案: A 我的答案:A
答案剖析:
32【单选题】按照姓名升序序分列______
A、
ORDER BY DESC NAME
B、
ORDER BY NAME DESC
C、
ORDER BY ?ASC NAME
D、
ORDER BY NAME ASC
准确答案: D 我的答案:D
答案剖析:
33
【单选题】MySQL数据库四种特性,不包罗( )。
A、
原子性
B、
隔离性
C、
同等性
D、
事件性
准确答案: D 我的答案:D
答案剖析:
34【单选题】删除emp表中全部数据,且可以rollback,以下语句哪个下令可以实现( )
A、
truncate table emp
B、
delete from emp
C、
drop table emp
D、
delete * from emp
准确答案: B 我的答案:B
35
【单选题】如果要回滚一个事件,则要使用( )语句。
A、
commit
B、
revoke
C、
begin
D、
rollback
准确答案: D 我的答案:A
答案剖析:
36【单选题】查询出EMP表中1982年及以后入职的员工信息(注:字段hiredate为入职日期,数据范例为DATE型)
A、
select * from emp where to_char(hiredate,'YYYYMMDD')>='19820101';
B、
select * from emp where hiredate>='19820101';
C、
select * from emp where to_date(hiredate,'YYYYMMDD')>='19820101';
D、
select * from emp where hiredate>=to_char('19820101','YYYYMMDD');
准确答案: B 我的答案:A
答案剖析:
37【单选题】存储过程是一组预先界说并______的Transact-SQL语句
A、
编译
B、
生存
C、
编写
D、
表明
准确答案: A 我的答案:A
答案剖析:
38【单选题】向数据表中插入一条记任命以下哪一项______
A、
INSERT
B、
SAVE
C、
CREATE
D、
UPDATE
准确答案: A 我的答案:A
答案剖析:
39【单选题】一张表的主键个数为______
A、
至多1个
B、
没有限定
C、
至多3个
D、
至多2个
准确答案: A 我的答案:A
答案剖析:
40【单选题】进入要使用的数据库TEST用以下哪一项______
A、
USE TEST
B、
SHOW TEST
C、
IN TEST
D、
USER TEST
准确答案: A 我的答案:A
答案剖析:
二、填空题 (题数:10,共 10.0 分)
41
[填空题]在 MySQL 中,创建视图须要使用create ( )语句。
准确答案
第一空:
view;
我的答案:
第一空:
view
答案剖析:
42
[填空题]MySQL 中提供了( )关键字,该关键字可以判断两个字符串是否相匹配,通常用它来实现含糊查询。
准确答案
第一空:
like;
我的答案:
第一空:
like
答案剖析:
43
[填空题]在 MySQL 中,除了使用 CREATE OR REPLACE VIEW 语句修改视图外,还可以使用( )语句来修改视图。
准确答案
第一空:
alter;
我的答案:
第一空:
ALTER VIEW
答案剖析:
44
[填空题]数据表中的字段默认值是通过( )关键字界说的。
准确答案:
default;DEFAULT
45
[填空题]在 MySQL 的整数范例中,占用字节数最大的范例是( )。
准确答案:
bigint;
46
[填空题]MySQL 是一种( )(多用户、单用户)的数据库管理体系。
准确答案:多用户;
47
[填空题]在存储过程中,用于界说变量的关键字是( )。
准确答案:
declare;
48
[填空题]MySQL 中用于实现事件提交的语句是( )语句。
准确答案: commit;
答案剖析:
49
[填空题]MySQL 中的用户分为( )用户和平凡用户。
准确答案:
root
50
[填空题]在 MySQL 中,除了使用 CREATE OR REPLACE VIEW 语句修改视图外,还可以使用( )语句来修改视图。
准确答案:
alter;
三、简答题 (题数:1,共 40.0 分)
51
已知某图书管理数据库有如下表格:
用户表user、部分表dept、脚色表role、图书表book、图书分类表book_classify、图书借阅表book_borrow、还书表book_return、借阅预约表book_appoint、图书遗失表book_lose;
(1)用户表:包罗用户编号id、姓名user_name、出生日期birth_date、身份证号id_card
、帐号login_name、暗码password、手机号mobile、电子邮件email、部分编号dept_id、脚色编号role_id信息。
(2)部分表:包罗部分编号id、部分名称dept_name、部分创建时间create_date信息。
(3)脚色表:包罗脚色编号id、脚色名称role_name、备注信息remark。
(4)图书表:包罗图书编号id、册本名称book_name、作者author、定价price、有无光盘cd、出书社publish、图书分类编号book_classify_id、总数目account、图书ISBN编号isbn、图书创建时间create_time、备注信息remark。
(5)图书分类表:包罗编号id、图书分类名称book_classify_name、父分类编号father_id、创建时间create_time。
(6)图书借阅表:包罗编号id、图书编号book_id、用户编号user_id、借阅时间borrow_time、归还时间return_time、创建图书借阅状态create_time、备注信息remark。
(7)图书还书表:包罗编号id、图书借阅编号borrow_id、归还时间return_time、创建时间create_time、备注信息remark。
(8)借阅预约表:包罗预约流水编号id、图书编号book_id、用户编号user_id、预约时间appoint_time、创建时间create_time、备注信息remark。
(9)图书遗失表:包罗遗失流水编号id、图书借阅流水编号borrow_id、创建时间create_time、备注信息remark。
对于图书管理数据库,请写出准确的SQL语句:
1)查询作者为“刘刚”的图书的数目。
2)查询出书单元为人民邮电出书社的图书明细。
3)检索2024年3月的借阅图书的读者人数。
4)图书管理体系里须要新增一本刚采购的医药方面的册本:书名为《疑难杂病临证手册(第2版)》、作者为余孟学、定价为158元、出书社为河南科技出书社、ISBN编号为9787534989230。要把它添加到图书表book里,图书分类选择“R 医药、卫生”。
5)查询用户小影的借书记载,包罗用户姓名、借阅图书名称、出书社、借书时间、归还时间。
6)针对用户表user、图书表book、图书借阅表book_borrow创建一个用户借阅图书信息查询视图user_book_borrow_view,查询用户编号、登录名称、姓名、图书名称、出书社、借阅时间、归还时间。
7)按book_name字段创建图书索引。索引名为:booknameindex;
8)按publish,book_name字段创建图书表复合索引。索引名为:bookpublishnameindex ;
9)更新小刚用户的部分为运维部。
10)删除图书名称包罗:“经济学”的全部图书
11)删除用户小影的全部借书记载。
12)查询全部效户丢失的图书名称。
下面链接中放的是该题的数据库、根本表和初始数据,同砚们本身下载。
准确答案:
1)查询作者为“刘刚”的图书的数目。
SELECT COUNT(*) AS 数目 FROM `book` WHERE `author`='刘刚'
2)查询出书单元为人民邮电出书社的图书明细。
SELECT `id`,`book_name`,`author`,`price`,`cd`,`publish`,`book_classify_id`,`account`,`isbn`,`create_time`,`remark` FROM `book` WHERE `publish`='人民邮电出书社';
3)检索2024年3月的借阅图书的读者人数。
SELECT COUNT( DISTINCT `user_id`) FROM `book_borrow`
WHERE YEAR(`borrow_time`)='2024' AND MONTH(`borrow_time`)='3';
4)图书管理体系里须要新增一本刚采购的医药方面的册本:书名为《疑难杂病临证手册(第2版)》、作者为余孟学、定价为158元、出书社为河南科技出书社、ISBN编号为9787534989230。要把它添加到图书表book里,图书分类选择“R 医药、卫生”。
INSERT INTO`book`VALUES('5','疑难杂病临证手册(第2版)','余孟学','158','1','河南科技出书社','4','1000','9787534989230',NOW(),NULL);
5)查询用户小影的借书记载,包罗用户姓名、借阅图书名称、出书社、借书时间、归还时间。
SELECT u.user_name,b.book_name,b.publish,w.borrow_time,w.return_time FROM USER u, book b, book_borrow w WHERE w.book_id = b.id AND w.user_id = u.id AND u.login_name = '小影';
6)针对用户表user、图书表book、图书借阅表book_borrow创建一个用户借阅图书信息查询视图user_book_borrow_view,查询用户编号、登录名称、姓名、图书名称、出书社、借阅时间、归还时间。
CREATE OR REPLACE VIEW user_book_borrow_view
AS
SELECT u.id,u.login_name,u.user_name,b.book_name,b.publish,w.borrow_time,w.return_time
FROM USER u, book b, book_borrow w
WHERE w.book_id = b.id AND w.user_id = u.id ;
7)按book_name字段创建图书索引。索引名为:booknameindex;
CREATE INDEX booknameindex ON `book`(`book_name`)
8)按publish,book_name字段创建图书表复合索引。索引名为:bookpublishnameindex ;
CREATE INDEX bookpublishnameindex ON `book`(`publish`,`book_name`)
9)更新小刚用户的部分为运维部。
UPDATE `user` SET `dept_id`=(SELECT `id` FROM `dept` WHERE `dept_name`='运维部')
WHERE `user_name`='小刚'
10)删除图书名称包罗:“经济学”的全部图书
delete from `book` where `book_name` like '%经济学%'
11)删除用户小影的全部借书记载。
DELETE FROM `book_borrow` WHERE`user_id`=(SELECT `id` FROM `user` WHERE `user_name`='小影')
12)查询全部效户丢失的图书名称。
SELECT `user_name`,`book_name` FROM `book`,`book_borrow`,`user`,`book_lose`
WHERE `book_lose`.`borrow_id`=`book_borrow`.`id` AND `book_borrow`.`user_id`=`user`.id AND `book_borrow`.`book_id`=`book`.`id`
四、使用题 (题数:1,共 30.0 分)
52
按照要求实现员工管理数据库体系中的指定使用:
1、创建一个数据库 staff,并在数据库中创建以下四张表:
员工表 employee(员工编号id,姓名userName,出生日期birthDate,身份证号idCard,登录名称loginName,登录暗码password,手机号mobile,电子邮件email,部分编号deptId,员工级别level,员工头像avatar,备注remark)
部分表 dept(部分编号id,部分名称deptName,部分司理编号managerId)
工资表payroll(工资编号id,员工编号empId,根本工资baseSalary,应发工资actualSalary,奖金bonus,缺勤扣钱deductMoney,薪资发放日期grantDate)
告假表ask_leave(告假编号id,员工编号empId,告假缘故起因leaveReason,告假开始时间beginDate,告假竣事时间endDate,提交时间submitDate,考核人编号auditId(该列有触发器维护),申请状态status,考核意见auditOpinion)
底子数据本身填写。
2、编写存储过程实现插入员工表:参数为:员工编号id,姓名userName,出生日期birthDate,身份证号idCard,登录名称loginName,登录暗码password,手机号mobile,电子邮件email,部分编号deptId,员工级别level,员工头像avatar,备注remark。
存储过程名称为:insert_employee。
3、使用存储过程在员工表中插入5条记载。
4、创建触发器,当插入或修改工资表payroll时,应发工资主动为“根本工资+奖金-缺勤扣钱”。
5、在员工表中依据姓名userName创建索引。索引名为:index_userName。
6、创建员工部分工资视图(包罗员工名称,部分名称,根本工资,应发工资,奖金,缺勤扣钱)视图名称:v_employee_dept_payroll。
7、使用触发器实现插入告假信息时,考核人编号主动填入告假人地点部分的部分司理编号。触发器名称为:insert_ask_leave。
8、 备份数据库的结构和数据,导出SQL文件名为:staff_sjk.sql。
(30.0分)
准确答案
CREATE DATABASE staff;
USE staff
CREATE TABLE employee(
id INT NOT NULL AUTO_INCREMENT,
userName VARCHAR(255),
birthDate DATE,
idCard VARCHAR(255),
loginName VARCHAR(255),
PASSWORD VARCHAR(255),
mobile VARCHAR(255),
email VARCHAR(255),
deptId INT,
LEVEL INT,
avatar BLOB,
remark TEXT,
PRIMARY KEY(id)
);
CREATE TABLE dept(
id INT NOT NULL AUTO_INCREMENT,
deptName VARCHAR(255),
manageId INT,
remark VARCHAR(255),
PRIMARY KEY(id)
);
CREATE TABLE payroll(
id INT NOT NULL AUTO_INCREMENT,
empId INT,
baseSalary DOUBLE,
actualSalary DOUBLE,
bonus DOUBLE,
deductMoney DOUBLE,
grantDate DATE,
PRIMARY KEY(id)
);
CREATE TABLE ask_leave(
id INT NOT NULL AUTO_INCREMENT,
empId INT,
leaveReason TEXT,
beginDate DATE,
endDate DATE,
submitDate DATE,
auditId INT,
STATUS INT,
auditOpinion TEXT,
PRIMARY KEY(id)
);
其他答案略
我的答案
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_employee`(
IN `id` int,
IN `username` varchar(225),
IN `birthDate` date,
IN `idCard` varchar(225),
IN `loginName` varchar(225),
IN `password` varchar(225),
IN `mobile` varchar(225),
IN `email` varchar(225),
IN `deptId` int,
IN `level` int,
IN `avatar` blob,
IN `remark` text
)
BEGIN
DECLARE cnt INT;
SELECT COUNT(*) INTO cnt FROM employee WHERE employee.id = id;
IF cnt = 0 THEN
INSERT INTO employee(`id`,`username`,`birthDate`,`idCard`,`loginName`,`password`,`mobile`,`email`,`deptId`,`level`,`avatar`,`remark` )
VALUES(`id`,`username`,`birthDate`,`idCard`,`loginName`,`password`,`mobile`,`email`,`deptId`,`level`,`avatar`,`remark`);
END IF;
END
call insert_employee(1,'小红','2002-03-14','411423200203141510','xiaohong','123','15238790678','1625376859@qq.com',3,1,NULL,'新员工');
call insert_employee(2,'小橙','2002-02-14','411423200203241511','xiaocheng','123','15238790677','1625376858@qq.com',2,2,NULL,'新员工');
call insert_employee(3,'小黄','2002-01-14','411423200203341512','xiaohuang','123','15238790676','1625376857@qq.com',1,4,NULL,'老员工');
call insert_employee(4,'小绿','2001-12-14','411423200112141513','xiaolv','123','15238790675','1625376856@qq.com',2,5,NULL,'老员工');
call insert_employee(5,'小青','2001-11-14','411423200111141514','xiaoqing','123','15238790674','1625376855@qq.com',3,6,NULL,'老员工');
CREATE DEFINER = `root`@`localhost` TRIGGER `update_payroll` BEFORE UPDATE ON `payroll` FOR EACH ROW SET new.actualSalary = new.baseSalary + new.bonus - new.deductMoney;
CREATE INDEX index_userName ON employee(username);
CREATE VIEW v_employee_dept_payroll AS
SELECT username AS 姓名,deptName AS 部分名称,baseSalary AS 根本工资,actualSalary AS 应发工资,bonus AS 奖金,deductMoney AS 缺勤扣钱
FROM employee,dept,payroll
WHERE employee.id = payroll.empId AND employee.deptId = dept.id;
CREATE DEFINER = `root`@`localhost` TRIGGER `insert_ask_leave` BEFORE INSERT ON `ask_leave` FOR EACH ROW SET new.auditId = (SELECT manageId FROM employee,dept WHERE employee.deptid = dept.id AND new.empid = employee.id);
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |