MySQL视图、用户管理和C语言链接

在这里插入图片描述

文章目录

  • 1. 视图
    • 1.1 基本使用
  • 2. 用户管理
    • 2.1 用户信息
    • 2.2 创建用户
    • 2.3 修改用户密码
    • 2.4 删除用户
  • 3. 数据库的权限
    • 3.1 给用户授权
    • 3.2 回收权限
  • 4. mysql connect
    • 4.1 Connector/C 使用
    • 4.2 mysql接口介绍

1. 视图

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图

1.1 基本使用

在这里插入图片描述
我们用scott库举个例子:
比如说我们想查询工资大于2000的员工和他的工作:
在这里插入图片描述
但是每次都从原始表查可能太慢了,我们就可以创建视图。
在这里插入图片描述
我们可以看到就有了这么一个视图表,里面就有了刚才的数据。

修改了视图,对基表数据有影响:
在这里插入图片描述
修改了基表,对视图有影响:
在这里插入图片描述
在这里插入图片描述
视图规则和限制:
1.与表一样,必须唯一命名(不能出现同名视图或表名)
2.创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
3.视图不能添加索引,也不能有关联的触发器或者默认值
4.视图可以提高安全性,必须具有足够的访问权限
5.order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有order by,那么该视图中的 order by 将被覆盖
6.视图可以和表一起使用

2. 用户管理

如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。
在这里插入图片描述
张三只能操作mytest数据库,李四只能操作msg这个数据库。

2.1 用户信息

MySQL中的用户,都存储在系统数据库mysql的user表中
在这里插入图片描述
在这里插入图片描述

2.2 创建用户

在这里插入图片描述
举个例子:
在这里插入图片描述
但是出错了,我们需要刷新自己的权限。
在这里插入图片描述
然后我们就能在我们的user表看到我们的普通用户了。
在这里插入图片描述
这里的密码是通过MD5进行摘要的。现在我们可以尝试登录一下:
在这里插入图片描述
登录成功后,我们查看一下我们的数据库:
在这里插入图片描述
这个数据库是关于编码集字符集的,普通用户只能查看自己的数据库,其它的数据库看不到。

2.3 修改用户密码

在这里插入图片描述

在这里插入图片描述
举个例子:
在这里插入图片描述

2.4 删除用户

在这里插入图片描述
举个例子:
在这里插入图片描述
直接给个用户名,不能删除,它默认是%,表示所有地方可以登陆的用户。
在这里插入图片描述
在这里插入图片描述

3. 数据库的权限

MySQL数据库提供的权限列表:
在这里插入图片描述

3.1 给用户授权

刚创建的用户没有任何权限。需要给用户授权。
在这里插入图片描述
在这里插入图片描述
上面我们可以看到普通用户是看不到所有库的,我们可以给用户权限:
在这里插入图片描述
我们给wyw这个用户提供查看test_db的account这张表的权限。
在这里插入图片描述
此时就可以看到这个库了。
在这里插入图片描述
我们只给了它查询的权限,并没有其它权限。

特定用户现有查看权限
在这里插入图片描述

3.2 回收权限

在这里插入图片描述
举个例子:
在这里插入图片描述

4. mysql connect

下面我们使用C语言连接mysql,需要使用mysql官网提供的库,大家可以去官网下载。
我们使用C接口库来进行连接,要正确使用,我们需要做一些准备工作:
在这里插入图片描述
我们当初是按照yum安装的,直接给我们一套了,不需要自己安装了。

安装好之后,我们可以通过这个命令来查看我们的mysql安装在那些路径下:
在这里插入图片描述

4.1 Connector/C 使用

在这里插入图片描述
用C语言连接mysql,我们只需要用这个头文件就可以了。

尝试链接mysql client,通过 mysql_get_client_info() 函数,来验证我们的引入是否成功
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述
至此引入库的工作已经做完,接下来就是熟悉接口。

4.2 mysql接口介绍

要使用库,必须先进行初始化!
在这里插入图片描述
它的作用和fopen打开一个文件类似。
在这里插入图片描述
初始化完毕之后,必须先链接数据库,在进行后续操作。(mysql网络部分是基于TCP/IP的)

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long clientflag);

第一个参数 MYSQL是 C api中一个非常重要的变量(mysql_init的返回值),里面内存非常丰富,有port,dbname,charset等连接基本参数。它也包含了一个叫 st_mysql_methods的结构体变量,该变量里面保存着很多函数指针,这些函数指针将会在数据库连接成功以后的各种数据操作中被调用。mysql_real_connect函数中各参数,基本都是顾名思意。
在这里插入图片描述
我们这里把我们要连接的信息准备好。然后进行链接:
在这里插入图片描述
建立好链接之后,获取英文没有问题,如果获取中文是乱码,设置链接的默认字符集是utf8,原始默认是latin1。
在这里插入图片描述
下发mysql命令我们用的是 mysql_query函数
在这里插入图片描述
第一个参数上面已经介绍过,第二个参数为要执行的sql语句。如“select * from table”。调用成功的时候,返回值是0, 否则就是1。
在这里插入图片描述
sql执行完以后,如果是查询语句,我们当然还要读取数据,如果update,insert等语句,那么就看下操作成功与否即可。我们来看看如何获取查询结果: 如果mysql_query返回成功,那么我们就通过mysql_store_result这个函数来读取结果
在这里插入图片描述
该函数会调用MYSQL变量中的st_mysql_methods中的 read_rows 函数指针来获取查询的结果。同时该函数会返回MYSQL_RES 这样一个变量,该变量主要用于保存查询的结果。同时该函数malloc了一片内存空间来存储查询过来的数据,所以我们一定要记的 free(result),不然是肯定会造成内存泄漏的。 执行完mysql_store_result以后,其实数据都已经在MYSQL_RES 变量中了,下面的api基本就是读取MYSQL_RES 中的数据。
在这里插入图片描述
在这里插入图片描述
现在我们把行、列、列名都打印出来了,下面我们要打印数据内容。
在这里插入图片描述
它会返回一个MYSQL_ROW变量,MYSQL_ROW其实就是char **,就当成一个二维数组来用吧。
在这里插入图片描述
最后把mysql进行关闭:
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度SEO优化的特点(方式及排名诀窍详解)

百度SEO优化的特点介绍: 百度SEO优化是指对网站进行优化,使其在百度搜索引擎中获得更好的排名,进而获取更多的流量和用户。百度SEO优化的特点是综合性强、效果持久、成本低廉、投资回报高。百度的搜索算法不断更新,所以长期稳定的…

开源任务调度框架

本文主要介绍一下任务调度框架Flowjob的整体结构,以及整体的心路历程。 功能介绍 flowjob主要用于搭建统一的任务调度平台,方便各个业务方进行接入使用。 项目在设计的时候,考虑了扩展性、稳定性、伸缩性等相关问题,可以作为公司…

YOLOv5网络结构图

网络结构图(简易版和详细版) 网络框架介绍 前言: YOLOv5是一种基于轻量级卷积神经网络(CNN)的目标检测算法,整体可以分为三个部分, backbone,neck,head。 如上图所示…

【排序算法】详解直接插入排序和希尔排序原理及其性能分析

文章目录 插入排序算法原理细节分析代码实现复杂度分析:稳定性分析:与冒泡排序的对比 希尔排序算法原理细节分析代码实现复杂度分析稳定性分析 总结对比 插入排序 算法原理 插入排序又或者说直接插入排序,是一种和冒泡排序类似的并且比较简单的排序方法, 基本思想…

3、Linux下安装

以下操作仅限于rh系列:支持rpm/yum安装方式,不支持deb/apt安装方式。 以下操作仅限于rh系列:支持rpm/yum安装方式,不支持 deb/apt安装方式。 1、在线下载安装包: wget https://downloads.mysql.com/archives/get/p/23/file/ m…

打造个人专属形象!工业级人物写真生成工具FaceChain开源

简介 FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain 支持在 gradio 的界面中使用模型训练和推理能力,也支持资深开发者使用 python 脚本进行训练推理。 Github链接&…

长短期记忆网络(LSTM)

一. 什么是LSTM Long Short Term Memory(LSTM,长短期记忆)是一种特殊的递归神经网络。这种网络与一般的前馈神经网络不同,LSTM可以利用时间序列对输入进行分析。 简而言之,当使用前馈神经网络时,神经网络会…

Linux 中如何安全地抹去磁盘数据?

哈喽大家好,我是咸鱼 离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息(聊天记录、浏览记录等等) 所以我们就需要先把这些信息都删除,确保无法恢复之后才上交 即有些…

MongoDB 索引和常用命令

一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中,数据结构参考如下,其中数据库为 articledb, 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…

怎么团队合作,协作开发

一、代码托管平台 我是在大一下的一个竞赛中接触到的代码托管平台 那个时候我也算是什么都不会的,不过不得不说这个确实比较重要,对我造成了一些冲击 在我看来,代码托管平台的作用就是在一个中转站(仓库)上存储我们写…

自己在家给电脑重装系统Win10教程

自己在家怎么给电脑重装系统Win10?Win10电脑系统如果操作时间特别长了,就可能出现卡顿、蓝屏等系统问题,这时候用户就想给电脑重装系统,却不知道重装具体的操作步骤,下面小编给大家详细介绍自己在家给电脑重装Win10系统…

k8s-13 存储之secret

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。 敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活 。 Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里 当 kubelet 为 pod 拉…

github 中关于Pyqt 的module view 操作练习

代码摘自,Pyside6 中的示例代码部分 # -*- coding: utf-8 -*- import sys from PySide6.QtWidgets import * from PySide6.QtGui import * from PySide6.QtCore import * from PySide6.QtSql import QSqlDatabase, QSqlQueryModel, QSqlQuery import os os.chdir(os…

专业144,总分440+,上岸西北工业大学827西工大信号与系统考研经验分享

我的初试备考从4月末,持续到初试前,这中间没有中断。 总的时间分配上,是数学>专业课>英语>政治,虽然大家可支配时间和基础千差万别,但是这么分配是没错的。 数学 时间安排:3月-7月:…

人声分离软件:iZotope RX 10 (WinMac) 中文汉化版

iZotope RX 10是一款在音频修复和增强领域中非常出色的软件。它提供了一套全面的音频问题解决方案,为后期制作专业人员、音频工程师和视频编辑者解决各种棘手问题。 iZotope RX 10的主要特点包括: 声音修复功能:可以去除不良噪音、杂音、吱吱…

使用Python,Xpath获取所有的漫画章节路径,并下载漫画图片生成单个/多个pdf,并进行pdf合并

使用Python,Xpath获取所有的漫画章节路径,并下载漫画图片生成单个/多个pdf,并进行pdf合并 1 效果图2 原理2.1 pa_mh.py获取喜欢的漫画及所有章节2.2 pyImg2pdf.py根据图片生成单个/多个pdf并增加章节提示 3 源码3.1 pa_mh.py获取喜欢的漫画及…

python的pyecharts第三方模块绘制高端统计图表

pyecharts库 python的pyecharts库是一个用于生成 Echarts 图表的python第三方类库,可以绘制很高端的统计图表以便展示数据。 安装方法 pip安装 pip install pyecharts或者github拉取下载安装 git clone https://github.com/pyecharts/pyecharts.git cd pyechar…

业务安全五重价值:防攻击、保稳定、助增收、促合规、提升满意度

目录 防范各类威胁攻击 保障业务的连续性和稳定性 保障业务的合规性 提升企业营收和发展 提升企业满意度和品牌知名度 2023年暑假被“票贩子”和“黄牛”攻陷。他们利用各种手段抢先预约名额,然后加价出售给游客,导致了门票供不应求的局面&#xff…

win11的右键菜单改成win10的样子

在终端复制一下命令 reg add “HKCU\Software\Classes\CLSID{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32” /f /ve 回车,会显示成功 再重启资源管理器。这步必须执行,否则是成功的,或者可能重启电脑会成功,但是我没有…

Apache Tomcat下载安装配置使用超详细

下载安装 tomcat官网 在此我们以Tomcat 9.0.81为例,点击下载压缩包,解压到自己的文件夹。 tar.gz是linux操作系统下的安装版本。zip是windows系统下的压缩版本。Windows Service Installer是windows操作系统下的exe安装版本。 检查是否配置JDK 1.…