yesn 发表于 2017-12-11 20:19:57

MySql 笔试题

  MySql 笔试题
  ------前两天刚做了一套Mysql笔试题,分享给大家------------------
  第一部分、单选题(共40分)
  1、mysql中唯一索引的关键字是( C)
  A. fulltext indexB.onlyindex   C.unique index D.index
  2、下面关于索引描述中错误的一项是( C   )
  A.索引可以提高数据查询的速度 B.索引可以降低数据的插入速度
  C.innodb存储引擎支持全文索引 D.删除索引的命令是drop index
  3、支持主外键,索引及事务的存储引擎为是( B )
  A.MYISAM B.INNODB C.MEMORY D.CHARACTER
  4、对事务的描述中不正确的是( C )
  A.事务具有原子性 B.事务具有隔离性   
  C.事务回滚使用commit命令      D.事务具有可靠性
  5、 mysql中,备份数据库的命令是( A )
  A.mysqldump B.mysql C.backup D.copy
  6、 实现批量数据导入的命令是( A )
  A.mysqldump B.mysql C.backup D.return
  7、 创建用户的命令是( D )
  A. join user B.create user C.create root    D.mysql   user
  8、 修改自己的mysql服务器密码的命令是( C )
  A.mysql B.grant C.set password D.changepassword
  9、 找回mysql服务器root密码的很重要的一步是跳过权限表的检查启动mysql,该命令是 ( D )
  A. mysql-u root –prootB. mysqladmin   -uroot   -proot
  C. netstartmysql      D. mysqld-nt   --skip-grant-tables
  10、联合查询使用的关键字是(B )
  A.UNION B.JOIN C.ALL D.FULL
  11、有订单表orders,包含用户信息userid, 产品信息 productid, 以下( D   )语句能够返回至少被订购过两回的productid?
  A. select productid from orders where count(productid)>1
  B. select productid from orders where max(productid)>1
  C. select productid from orders where having count(productid)>1 group by productid
  D. select productid from orders group by productid having count(productid)>1
  12、子查询中可以使用运算符ANY, 它表示的意思是( B )
  A. 满足所有的条件 B. 满足至少一个条件
  C. 一个都不用满足 D. 满足至少5个条件
  13、事务中能实现回滚的命令是( C )
  A.TRANSACTION B.COMMIT C.ROLLBACK D.SAVEPOINT
  14、mysql中,还原数据库的命令是( B )
  A.mysqldump B.mysql C.backup D.return
  15、mysql中存储用户全局权限的表是( D )
  A. table_priv B.procs_priv C.columns_priv D.user
  16、删除用户的命令是( A )
  A. dropuser   B.deleteuser C.droproot D.truncateuser
  17、给名字是zhangsan的用户分配对数据库studb中的stuinfo表的查询和插入数据权限的语句是( B )
  A.grant select,insert on studb.stuinfo for‘zhangsan’@’localhost’
  B.grant select,insert on studb.stuinfo   to‘zhangsan’@’localhost’
  C.grant‘zhangsan’@’localhost’ toselect,insertfor studb.stuinfo
  D.grant ‘zhangsan’@’localhost’ tostudb.stuinfoon select,insert
  18、下列选项( A   )是mysql复制技术不支持的复制类型
  A.基于sql语句的复制方式         B.基于行的复制方式
  C.基于数据文件的复制方式          D.sql语句和行相结合的方式
  19、下列的函数中不可以处理日期和时间的函数是(B )
  A round       B WeekDay      C Curdate   D DayofMonth   
  20、mysql中的约束不包括( A )
  A.检查约束 B.默认约束 C.非空约束 D.唯一约束
  第二部分、简答题(共18分)
  1、在mysql中常用存储引擎有哪几种(最少三种),每个引擎特点区别?(6分)
  1.InnoDB :InnoDB给mysql的表提供了事务、回滚、奔溃修复的能力和多版本病夫控制事务安全。
  2.MyISAM :占用空间小,处理速度快。不支持事务的完整性和并发性。
  3.MEMORY :MEMORY使用存储在内存中的内容来创建表,而且所有数据也放在内存中。
  2、忘记MySQL管理员root的密码如何解决?写出步骤和指令(6分)
  1.跳过权限 mysql --skip-grant-tables
  2.修改数据库名为mysql里user表 update mysql.user set Password=PASSWORD(root) where User=’root’ AND host=’localhost’
  3.刷新 加载权限表 FULSH PRIIVILEGES
  3、简述mysql主从复制的原理和主、从服务器上的my.cnf文件的修改内容及注意事项(6分)
  两台服务器实现在主服务器上的数据库实现数据的插入,在从服务器的数据库实现数据的读取,这样可以应对高并发,大流量,减轻数据库压力,提高用户体验。实现原理是基于强大的mysql配置,就可以实现。注意的是,配置的时候俩
  第三部分、编程题(共42分)
  有一个关于公司员工信息的数据库empinfo。部门表和员工基本信息表是其中的两个表,表中信息如下:
  部门表depts ( dept_id、dept_name、description)
  说明:dept_id部门编号dept_name 部门名称 description 部门描述
  员工表employees(id、name、gender、dept_id、join_time、salary、address、age、des)
  说明:id员工号 name员工姓名gender性别 dept_id所在部门join_time加入时间salary工资 address地址age年龄des描述
  1)分析各个表之间的关系(主外键引用关系),写出建表语句(6分)
  create table depts(dept_id int primary key ,dept_name nvachar(50),description nvarchar(100));
  create table employees(id int primary,name nvarchar(50),gender char(10),dept_id int,join_time datetime,salary decemical(2,9),address nvarchar(50),age int,des nvarchar(100),constraint e_fk foreign key(dept_id) references depts(dept_id));
  2)为员工表employees添加一个字段image用于记录员工头像(2分)
  Alter table employees add image nvarchar(100) not null;
  3)查询除了名字叫张三以外的员工的记录(2分)
  Select *from employees where name not int(‘张三’)
  4)查询薪水在2000-5000之间的员工记录(2分)
  Select *from employees where salary >2000 and salary <5000;
  5)查询部门编号是1、3、5的员工的记录(2分)
  Select *from employees where dept_id int(1,3,5);
  6)查询名字以“张”开头的员工的记录(2分)
  Select *from employees where name like ‘张%’;
  7)查询性别为“M”且在2008年1月1日入职的员工的记录(2分)
  Select *from employees where gender=’M’AND join_time=’2018-1-1’;
  8)查询出平均月薪最高的部门编号与名字(3分)
  Select dept_id,name where group by dept_id having out max(avg(salary));
  9)为employees表的name列创建索引(2分)
  Create index index_employees on employees (name);
  
  10)创建视图, EMP_V_10, 包括10号部门的信息和所有职员信息(3分)
  Create view EMP_V_10 as select employees.*,depts.* from employees,depts where dept_id=10;
  11)创建一个用户test1使他只拥有查询employees表的权限(2分)
  Grante select on empinfo.employees to ‘test1@localhost’identity by ‘test1’;
  12)授予普通DBA用户(systop)管理empinfo数据库的权限(2分)
  Grante * on empinfo.*to ‘systop@localhost’identity by ‘systop’;
  13)授予用户test3拥有employees表name列的更改权限(3分)
  Grante update on empinfo.employees.name to ‘test3@localhost’identity by ‘test3’;
  14)为employees表开启事务功能的操作步骤(4分)
  Begin transaction
  执行事务体语句{...}
  if@error>0
  Begin
  Rollback transaction
  End
  Else
  Begin
  Commit transaction
  End
  End
  15)写出将empinfo数据库备份到远程服务器182.21.32.129的方法和步骤(5分)
  备份-发送-导入
  Mysqldump -u root -p --all-database >empinfo.sql
  Scp empinfo.sql 182.21.32.129 /tmp
  Mysql -u root -p < /tmp/empinfo.sql
  作者介绍:半路学IT,做开发3年,先就职在一家共享单车公司,做后台开发!
  我开了一个公众号,欢迎各位有志同道合朋友,关注!不定期分享干活,和我得故事!
页: [1]
查看完整版本: MySql 笔试题