MySQL数据库命令行【完结篇】之综合实验II(GRANT+LOCALHOST+DELIMITER)

 掌握视图、索引、存储过程、存储函数、权限的使用

MySQL数据库命令行【完结篇】之综合实验II(GRANT+LOCALHOST+DELIMITER)_第1张图片

  •  在零件表上建立一个视图v1,要求v1中只出现零件号和零件名两列。

Create view   v_p(pno,pname)                       

As

Select   pno,pname                      

From      p;                    

MySQL数据库命令行【完结篇】之综合实验II(GRANT+LOCALHOST+DELIMITER)_第2张图片


  •  给在localhost上登陆的用户test(密码:123456)授予表p的查询、修改、插入权限。


  • 给p表的pname列添加唯一索引index_up。

MySQL数据库命令行【完结篇】之综合实验II(GRANT+LOCALHOST+DELIMITER)_第3张图片


  • 创建存储过程get_pp(),使其具有以下功能:输入零件号可以按颜色分类查询零件的信息。

MySQL数据库命令行【完结篇】之综合实验II(GRANT+LOCALHOST+DELIMITER)_第4张图片


  • 创建存储函数get_pc(),使其具有以下功能:根据零件号返回零件名称。

MySQL数据库命令行【完结篇】之综合实验II(GRANT+LOCALHOST+DELIMITER)_第5张图片


  • 简述存储函数与存储过程的区别与联系。

存储过程与函数之间的共同特点在于:

应用程序调用存储过程或者函数时,只需要提供存储过程名或者函数名,以及参数信息,无需将若干条MySQL命令或SQL语句发送到MySQL服务器,节省了网络开销。

存储过程或者函数可以重复使用,可以减少数据库开发人员,尤其是应用程序开发人员的工作量。

使用存储过程或者函数可以增强数据的安全访问控制。可以设定只有某些数据库用户才具有某些存储过程或者函数的执行权。

存储过程与函数之间的不同之处在于:

函数必须有且仅有一个返回值,且必须指定返回值数据类型(返回值类型目前仅仅支持字符串、数值类型)。存储过程可以没有返回值,也可以有返回值,甚至可以有多个返回值,所有的返回值需要使用out或者inout参数定义。

函数体内可以使用select…into语句为某个变量赋值,但不能使用select语句返回结果(或者结果集)。存储过程则没有这方面的限制,存储过程甚至可以返回多个结果集。


  • 简述触发器的作用;简述事件的用途;简述事件与触发器的区别与联系。

触发器主要用于监视某个表的insert、update以及delete等更新操作,这些操作可以分别激活该表的insert、update或者delete类型的触发程序运行,从而实现数据的自动维护。

事件就是需要在指定的时刻才被执行的某些特定任务,其中这些特定任务通常是一些确定的SQL语句。事件可以根据需要在指定的时刻被事件调度器调用执行,并以此可取代原先只能由操作系统的计划任务来执行的工作。

事件和触发器相似,都是在某些事情发生的时候才被启动,因此事件也可称作临时触发器。其中,事件是基于特定时间周期触发来执行某些任务,而触发器是基于某个表所产生的事件触发的,它们的区别也在于此。


  • 简述使用索引的好处和弊端。

处:

①通过创建唯一索引,可以保证数据库表中每一行数据的唯一性。

②可以大大加快数据的查询速度,这也是创建索引的主要原因。

③在实现数据的参照完整性方面,可以加速表与表之间的连接。

④在使用分组和排序子句进行数据查询时,也可以显著的减少查询中分组和排序的时间。

弊端:

索引即有逻辑上的概念,更是一种物理存储方式,且真实存在,需要耗费一定的存储空间。


  • 简述数据库运行中可能产生的故障类型。哪些故障影响事务的正常执行?哪些故障破坏数据库数据?

事务内部的故障,系统故障,介质故障,计算机病毒

事务故障、系统故障和介质故障影响事务的正常执行

介质故障和计算机病毒破坏数据库数据


  • 简述事务的定义及其特征。

事务通常包含一系列更新操作,这些更新操作是一个不可分割的逻辑工作单元。如果事务成功执行,那么该事务中所有的更新操作都会成功执行、并将执行结果提交到数据库文件中,成为数据库永久的组成部分。如果事务中某条更新操作执行失败,那么事务中的所有操作均被撤销。

事务的特征:

原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分;

一致性:在事务处理执行前后,数据库是一致的;

隔离性:一个事务处理对另一个事务处理没有影响;

持久性:事务处理的效果能够被永久保存下来。


  • 简述提高MYSQL数据库服务器性能的措施有哪些?简述MySQL保证数据安全的方法。

提高MYSQL数据库服务器性能的措施:

1、采用硬件先进的服务器

2、部署在专用的服务器上

3、使用过程中需要优化内存分配,缓冲区大小等

4、MySQL是多用户多线程的dbms,也就是说它经常同时执行多个任务进行查询时,不要总是简单地使用select语句,应该尝试连接,并,子查询等,找出最佳方法

5、尽量使用存储过程

6、数据类型和长度要恰当

7、一般不要执行select * from

8、对于支持可选的delayed关键字的操作,尽量使用delayed关键字,以便将控制权立即返回给调用程序

MySQL保证数据安全的方法

1、使用skip-network

2、使用SSL


  • 简述数据库备份和恢复的常用方法。

①工具法:工具法就是借助MySQL workbench、Navicat和phpmyadmin等MySQL的可视化管理工具备份与恢复MySQL数据库。

②SQL语句法

③直接复制法:直接复制法就是用命令的方式备份和恢复MySQL数据库。


  • 简述MYSQL的权限级别。

MySQL共5个权限级别,分别是:Global Level,Database Level,Table Level,Column Level和Routine Level。其中:

Global Level:全局权限控制,权限信息保存在 mysql.user表中。 Global Level的所有权限都是针对整个mysqld的,对所有的数据库下的所有表及所有字段都有效。如果一个权限是以Global Level来授予的,则会覆盖其他所有级别的相同权限设置。

Database Level:与Global Level的权限相比,Database Level主要少了以下几个权限:CREATE USER、FILE、PROCESS、RELOAD、REPLICATION CLIENT、REPLI CATIONSLAVE、SHOW databases、SHUTDOWN、SUPER和USAGE权限.

Table Level:Table Level的权限作用范围是授权语句中所指定数据库的指定表。该权限由于其作用域仅限于某个特定的表,所以权限种类也比较少,仅有CREATE、DROP、ALTER、INDEX、INSERT、SELECT、DELETE、UPDATE这八种权限。

Column Level:Column Level级别的权限仅有INSERT、SELECT和UPDATE三种。Column Level 权限授权语句语法和TableLevel 差不多,只是需要在权限名称后面将需要授权的列名列表通过括号括起来。

Routine Level:Routine Level的权限只有EXECUTE和ALTER ROUTINE两种,主要针对的对象是procedure和function。


  • 简述MYSQL的日志类型。

错误日志:包含启动,关闭mysql的错误问题及错误细节

查询日志:记录所有MySQL的活动

二进制日志:记录更新过数据的所有语句

缓慢查询日志:此日志记录执行缓慢的任何查询


  • 简述truncate语句与“delete from 表名”语句作用的相同点和不同点。

1) delete不能使自动编号返回为起始值。但是truncate能使自动增长的列的值返回为默认的种子

2) truncate只能一次清空,不能按条件删除。但是delete可以按条件清除部分记录。

3) truncate清空数据表性能(速度)比delete快。

4) truncate不会记录到系统日志,不会触发delete触发器。


  • 简述replace语句的功能与insert语句的功能区别。

Replace为替换,insert为插入。

当一个表中存在主键或唯一索引时,使用replace into 语句插入数据时,会先把冲突的旧数据删除,然后插入新数据。而insert into则会报错。

你可能感兴趣的:(MySQL,mysql,数据库,后端,大数据,数据挖掘)