MySQL数据库企业级开发技术(下篇)

使用语言 MySQL

使用工具 Navicat Premium 16

代码能力快速提升小方法,看完代码自己敲一遍,十分有用

  • 拖动表名到查询文件中就可以直接把名字拉进来
  • 中括号,就代表可写可不写 

目录

1. 视图 

1.1 需要视图的原因 

1.2 视图介绍 

1.2.1 视图的概念 

1.2.2 使用视图给开发人员带来的好处 

1.2.3 使用视图给数据库的最终用户带来的好处 

1.3 在MySQL中使用视图 

1.3.1 创建视图 

1.3.2 查询视图中的数据 

1.3.3 创建查询视图示例 

1.3.4 删除视图 

 1.3.5 使用视图的注意事项

2. 数据库备份和恢复 

2.1 数据库备份 

2.1.1 使用mysqldump备份数据库

2.1.2 mysqldump示例 

2.1.3 mysqldump备份文件中的两种注释信息

2.1.4 使用Navicat备份数据库 

2.2 数据库恢复 

2.2.1 使用mysql命令导入数据 

2.2.2 使用mysql命令当选中不存在的目标数据库时 

2.2.3 使用source命令恢复数据 

2.2.4  使用source命令恢复数据示例

2.2.5 使用Navicat的数据导入功能导入数据 

2.2.6 使用Navicat导入数据示例


 

1. 视图 

1.1 需要视图的原因 

在数据库系统中,数据的安全非常重要。数据的定义由两种含义:一种物理是上的数据安全,即保证数据不丢失;另一种是数据的权限控制,数据库的使用者权限不同,能够看到的数据页不同。这种需求不仅保证合适的人可以看到合适的数据,还符合用户的日常业务逻辑,使他们更容易理解数据。在数据库系统中可以通过视图实现这样的功能。视图就是保存在数据库中的select查询。在实际的数据库系统中,对查询执行的大多数操作可以在视图上进行。 

在实际工作中,不同身份的用户所能查询的数据范围可能有所不同。例如,企业的员工信息表中保存了该企业所有员工的详细信息,不同职位的人员对该表中查询的数据范围可能不同。根据企业的人力资源管理制度要求,企业的老板关注企业员工的全部信息,他可以浏览全体员工的全部记录;企业的人力资源主管主要查询全体员工目前的岗位、薪金和绩效;企业的出纳员只能查询每个员工的薪金,不能也无权查询企业员工的其他信息;企业的员工只能查看本人记录,不得查看其他员工的任何信息。

另外,在编写SQL代码时有时会使用子查询和多表查询复杂语句,如果这段SQL代码是一个经常使用的功能,那么每次都需要重复编写这样一大串代码,无疑会增加工作量和影响工作效率。现在,可以借助视图对复杂的代码进行封装保存。名称统计此数据时,只需调用并执行对应的视图就可以轻松地完成任务。

1.2 视图介绍 

1.2.1 视图的概念 

视图可以看做一张数据库中的虚拟表,也就是说,在物理上,视图不是真实存在的。视图通常是由一张或多张表的行或列的子集组成的,当然也可以包含全部的行和列。视图并不是数据库中存储的数据值的集合,它的行和列来自查询中引用的表。也就是说,视图中的数据直接显示来自被查询表中的数据。
视图充当表数据筛选器的角色。定义视图的查询可以基于一张或多张表,也可以基于其他视图,当前数据库或其他数据可靠。它的本质就是一张物理上不存在的数据表。 

视图通常用来进行以下3种操作 

  • 筛选表中的行
  • 防止未经许可的用户范围敏感数据
  • 将多张物理数据表抽象为一张逻辑数据表(多表联查后然后存在视图中) 

1.2.2 使用视图给开发人员带来的好处 

  • 限制数据检索更容易。开发人员有时需要隐藏某些行或列中的信息。通过使用视图,用户可以灵活地访问他们需要的数据,同时保证同一张表或其他表中的数据安全性。要实现这一目标,可以在创建视图时将对用户保密的列排除在外。
  • 维护应用程序更方便。调试视图比调试查询容易,跟踪视图中各步骤的错误更容易,这时因为所有的步骤都是视图的组成部分。

1.2.3 使用视图给数据库的最终用户带来的好处 

  • 结果更容易理解。创建视图时,可以将列名改为有意义的名称,使用户更容易理解所代表的内容。在视图中修改列名不会影响基表的列名。
  • 获得数据更容易。很多人对SQL不太理解,因此,对他们来说创建对多张表的复杂查询很困难,可以通过创建视图访问多张表中的数据。

1.3 在MySQL中使用视图 

1.3.1 创建视图 

创建视图的语法格式如下:

  • create view 视图名 as <select语句>;

一般来说,为了方便查看,视图一般以view_xxx或v_xxx的格式来命名 

1.3.2 查询视图中的数据 

查询视图中的数据与查询数据表中的数据的方法一样,所以就不再说太多,主要看后面的示例理解。

1.3.3 创建查询视图示例 

运行结果

1.3.4 删除视图 

与数据表一样,若将要创建的视图在数据库中已存在,则只有先删除视图才能创建成功。删除视图的语法格式如下。

  • drop view [if exists] 视图名; 

 1.3.5 使用视图的注意事项

  • 每个试图中可以使用多张表
  • 与查询相似,一个视图可以嵌套另一个视图,但尽量不超过3层(就是查询x个视图存到另一个视图中)
  • 对视图数据进行添加、更新和删除操作实际上是直接操作引用表中的数据。

所以一般使用视图时不要进行增删改操作 

  • 当试图数据来自多张表时,不允许添加和删除数据 

2. 数据库备份和恢复 

数据在企业中的价值至关重要,数据保障了企业业务的正常运行。因此,数据的安全性及可靠性是运维的重中之重,然后数据的丢失都可能对企业产生严重的影响。通常情况下,数据丢失的原因由如下几种。

  • 程序错误
  • 人为操作错误
  • 运算错误
  • 磁盘故障
  • 灾难(如火灾、地震)和盗窃
  • 病毒入侵 

2.1 数据库备份 

为了保障数据安全,应经常性地对数据库中的数据进行备份。数据库备份的方法有多种        

2.1.1 使用mysqldump备份数据库

mysqldump是客户端常用的逻辑备份命令,它能够产生一组被执行以后再现原始数据库对象定义和表数据的SQL语句。通过mysqldump命令可以将指定的数据库和数表导出为SQL脚本,在通过导出的SQL脚本就可以方便地将其转移到其他设备上。恢复数据时只需执行SQL语句就可以将数据导入目标数据库中。
使用mysqldump备份数据库是在命令行中实现的。命令如下:

  • mysqldump [options] database [table1,table2,...] > [path]/filename.sql 

options: 连接数据库的参数,主要内容如下 

  • -u username: 用户名
  • -h host: 登录用户的主机名称,若本机为主机,则此项省略
  • -p password: 登录密码

本机的一般写法如下:

  • -u root -p

database: 需要备份的数据库
table: 需要备份的数据表,可指定多张表。可选项,若备份真个数据库,则此项省略
filename: 备份文件的名称 

2.1.2 mysqldump示例 

需求:使用mysqldump备份hospital数据库 

 

代码如上,如果没有输出任何东西就代表成功了,然后就可以去对应的位置找文件了,注意最后不要加分号; 

注意:mysqldump是dos系统下的命令,使用时无需进入mysql命令行;否则,将无法执行

2.1.3 mysqldump备份文件中的两种注释信息

 

  • 以"--"开头就是关于SQL语句的注释信息 
  • 以"/*!"开头、"*/"结尾:关于mysql服务器相关的注释。这些语句可以被mysql执行,但其他数据库管理系统将被作为注释忽略,这可以提高数据库的可移植性。 

从备份文件中可以获取以下信息:

  • 备份文件使用的mysqldump工具的版本号
  • 备份账户的名称和主机信息及备份的数据库名称
  • 使用set语句将当前系统变量的值赋给用户定义的变量 

导出的脚本文件在注释后的语句就是数据表的创建语句(create table)和数据导入语句(insert into); 

2.1.4 使用Navicat备份数据库 

 Navicat也可以用于导出数据的备份脚本。方法如下:

 

选中的选项就是备份的点击,点击后就可以选择保存路径,数据库也可以右击选择此选项;

  • 注:备份后的名字要数据库名_日期才是规范的 

2.2 数据库恢复 

数据库恢复的方法也有很多种,可以选择任意一种方法实现数据导入操作。

2.2.1 使用mysql命令导入数据 

使用mysqldump或Navicat导出的SQL备份脚本,在需要恢复时可以通过MySQL命令对齐进行导入操作。命令格式如下:

  • mysql -u username -p dbname < filename.sql

username: 登录数据库系统的用户名
dbname: 导入目标数据库的数据库名
filename.sql: 数据库备份后的文件路径 

导出的备份文件中只包含表的备份,而不包含创建数据表的语句,因此,执行导入操作时必须指定库名,且目标库必须存在。 

2.2.2 使用mysql命令当选中不存在的目标数据库时 

以上的异常就是说以上的test111数据库无法找到,如果目标数据库存在的话输出结果如下(按下上箭头可以找到前面的dos命令并填充): 

 

2.2.3 使用source命令恢复数据 

除了在命令行中导入数据,还可以在已连接数据库的状态下导入数据,就是在dos命令中登录mysql后导入数据,语法格式如下:

  • source filename; 

2.2.4  使用source命令恢复数据示例

 示例如上,注意,在执行source命令时,SQL脚本文件后面不要加";"

2.2.5 使用Navicat的数据导入功能导入数据 

除了使用命令行导入数据,还可以在Navicat中直接导入数据。右击要导入数据的数据库,在弹出的快捷菜单中执行"运行SQL文件.."命令,打开导入窗口,选择要运行的SQL文件,单击"开始"按钮,开始导入数据。 

2.2.6 使用Navicat导入数据示例

 

 

在文件的栏上选择路径即可;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/561465.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[笔试强训day03]

文章目录 BC149 简写单词dd爱框框除2&#xff01; BC149 简写单词 BC149 简写单词 #include<iostream> #include<string>using namespace std; string s; int main() {while(cin>>s){if(s[0]>a&&s[0]<z) cout<<char(s[0]-32);else cout…

元数据管理Atlas

文章目录 一、Atlas概述1、Atlas入门2、Atlas架构原理 二、Atlas安装1、安装环境准备1.1 安装Solr-7.7.31.2 Atlas2.1.0安装 2、Atlas配置2.1 Atlas集成Hbase2.2 Atlas集成Solr2.3 Atlas集成Kafka2.4 Atlas Server配置2.5 Kerberos相关配置2.6 Atlas集成Hive 3、Atlas启动 三、…

Python可视化数据分析-柱状图/折线图

一、前言 使用python编写一个图表生成器&#xff0c;输入各公司的不良品数量&#xff0c;可以在一张图中同时展示数据的柱状图和折线图。 效果如下&#xff1a; 二、基础知识 绘制折线图和柱状图主要使用到了 pyecharts.charts 模块中的 Line 和 Bar 类。它们允许用户通过简…

拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法

引言 在当今的数字时代&#xff0c;网络技能的重要性日益凸显。本文将介绍如何使用Lua语言和lua-http库来下载和提取LinkedIn网站的信息&#xff0c;这是一种扩展网络技能的有效方法。 背景介绍 在当今科技潮流中&#xff0c;Lua语言以其轻量级和高效的特性&#xff0c;不仅…

【单调栈】力扣85.最大矩形

好久没更新了 ~ 我又回来啦&#xff01; 两个好消息&#xff1a; 我考上研了&#xff0c;收到拟录取通知啦&#xff01;开放 留言功能 了&#xff0c;小伙伴对于内容有什么疑问可以在文章底部评论&#xff0c;看到之后会及时回复大家的&#xff01; 前面更新过的算法&#x…

经典目标检测YOLOV1模型的训练及验证

1、前期准备 准备好目录结构、数据集和关于YOLOv1的基础认知 1.1 创建目录结构 自己创建项目目录结构&#xff0c;结构目录如下&#xff1a; network CNN Backbone 存放位置 weights 权重存放的位置 test_images 测试用的图…

OpenFeign使用demo

OpenFeign使用demo 1. OpenFeign的作用2. OpenFeign使用demo2.1 使用方2.2 提供方 1. OpenFeign的作用 原来我们调用别人的接口&#xff0c;通常都是通过Http请求来(如下图1)&#xff0c;而现在有了OpenFeign我们就可以像调用接口的方式来完成调用。 OpenFeign 并不是一个严格…

Leetcode算法训练日记 | day31

专题九 贪心算法 一、分发饼干 1.题目 Leetcode&#xff1a;第 455 题 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的…

Matlab|含sop的配电网重构(含风光|可多时段拓展)

目录 1 主要内容 2 部分程序 3 下载链接 1 主要内容 之前分享了很多配电网重构的程序&#xff0c;每个程序针对场景限定性比较大&#xff0c;程序初学者修改起来难度较大&#xff0c;本次分享一个基础程序&#xff0c;针对含sop的配电网重构模型&#xff0c;含风电和光伏&am…

LeetCode刷题总结 | 图论2—深度优先搜索广度优先搜索较为复杂应用

深搜广搜的标准模版在图论1已经整理过了&#xff0c;也整理了几个标准的套模板的题目&#xff0c;这一小节整理一下较为复杂的DFS&BFS应用类问题。 417 太平洋大西洋水流问题&#xff08;medium&#xff09; 有一个 m n 的矩形岛屿&#xff0c;与 太平洋 和 大西洋 相邻…

算法打卡day52|单调栈篇03| 84.柱状图中最大的矩形

算法题 Leetcode 84.柱状图中最大的矩形 题目链接:84.柱状图中最大的矩形 大佬视频讲解&#xff1a;84.柱状图中最大的矩形视频讲解 个人思路 这题和接雨水是相似的题目&#xff0c;原理上基本相同&#xff0c;也是可以用双指针和单调栈解决&#xff0c;只是有些细节不同。…

树莓派3B长时间不操作屏幕息屏无信号处理

树莓派外接显示器&#xff0c;需长时间展示某个网页&#xff0c;经过一段时间&#xff0c;显示器屏幕会黑掉显示无信号。 需修改 /etc/lightdm/lightdm.conf 配置文件中新增如下两行并重启。 xserver-commandX -s 0 dpms sleep-inactive-timeout0

C++相关概念和易错语法(7)(初始化列表、隐式类型转换、友元)

1.初始化列表 初始化列表是集成在构造函数里面的&#xff0c;对象在创建的时候一定会调用构造函数&#xff08;就算不显式定义&#xff0c;也会自动生成并调用&#xff09;。初始化列表就是这些对象的成员变量在创建的时候初始化的地方。 下面是使用的例子&#xff0c;可以先…

CCIE-16-PIM

目录 实验条件网络拓朴实验环境实验目的 开始实验实验1&#xff1a;PIM-DM配置PIM域中的路由&#xff0c;开启PIM-DM组播路由功能&#xff0c;验证组播情况 实验2&#xff1a;PIM-SM&#xff08;静态RP&#xff09;配置PIM域中的路由&#xff0c;开启PIM-SM组播路由功能&#x…

3-内核开发-第一个字符设备模块开发案例

3-内核开发-第一个字符设备模块开发案例 目录 3-内核开发-第一个字符设备模块开发案例 (1) 字符设备背景介绍 (2) 简单版本字符设备模块 (3) 继续丰富我们的字符驱动模块&#xff0c;增加write,read 功能 (4) 编译执行验证 (5)总结 (6)后记 (7)参考 课程简介&#xff…

[Meachines][Easy]Crafty

Main $ sudo nmap -p- -sS -T4 10.10.11.249 发现25565端口是我的世界服务器端口 CVE-2021-44228: https://nodecraft.com/blog/service-updates/minecraft-java-edition-security-vulnerability在阿帕奇Log4j图书馆&#xff0c;广泛使用的记录框架&#xff0c;在Java应用程序…

一起Talk Android吧(第五百五十七回:如何获取文件读写权限)

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 内容总结各位看官们大家好,上一回中分享了一个Retrofit使用错误的案例,本章回中将介绍 如何获取文件读写权限。闲话休提,言归正转,让我们一起Talk Android吧! 1. 概念介绍 我们在本章回中说的文本读写权限是指读写手机中的…

0-1背包问题:贪心算法与动态规划的比较

0-1背包问题&#xff1a;贪心算法与动态规划的比较 1. 问题描述2. 贪心算法2.1 贪心策略2.2 伪代码 3. 动态规划3.1 动态规划策略3.2 伪代码 4. C语言实现5. 算法分析6. 结论7. 参考文献 1. 问题描述 0-1背包问题是组合优化中的一个经典问题。假设有一个小偷在抢劫时发现了n个…

CCF-CSP真题《202312-3 树上搜索》思路+c++满分题解

想查看其他题的真题及题解的同学可以前往查看&#xff1a;CCF-CSP真题附题解大全 问题描述 试题编号&#xff1a;202312-3试题名称&#xff1a;树上搜索时间限制&#xff1a;1.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 题目背景 问题描述 输入格式 输出格式 样…

BioTech - 使用 Amber 工具 松弛(Relaxation) 蛋白质三维结构 (Python)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/137889532 Amber 工具在蛋白质 松弛(Relaxation) 过程中起着重要的作用。在分子动力学模拟中,蛋白质松弛是指模拟过程中蛋白质结构达到一个较为稳定的状态。这个过程通…