文章目录
- 1.视图
- 1.1 视图的基本使用
- 1.2 视图的基本规则
- 2.用户管理
- 2.1 创建、删除、修改用户
- 2.2 数据库权限
- 3.C/C++/图形化界面链接访问数据库
- 3.1 准备工作及常用接口介绍
- 3.2 图形化界面访问MySQL
- 4.用户逻辑(注册&&登录)
1.视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视
图的数据变化会影响到基表,基表的数据变化也会影响到视图。
1.1 视图的基本使用
删除视图:
drop view 视图名;
1.2 视图的基本规则
1.与表一样,必须唯一命名(不能出现同名视图或表名)
2.创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
3.视图不能添加索引,也不能有关联的触发器或者默认值
4.视图可以提高安全性,必须具有足够的访问权限
5.order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖
6.视图可以和表一起使用
2.用户管理
提示:我们之前一直都是使用的root进行登录,但是这样不好
查看用户信息:
mysql> use mysql;
Database changed
host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
user: 用户名
authentication_string: 用户密码通过password函数加密后的
*_priv: 用户拥有的权限
2.1 创建、删除、修改用户
2.2 数据库权限
3.C/C++/图形化界面链接访问数据库
我们在安装MySQL时,一般他都会把开发环境、客户端、服务端一起安装,我们基本上都是可以链接的。
但是如果你安装的时候有问题,可能没有开发环境,需要手动去安装才能链接数据库。
如果不能使用C语言连接mysql,需要使用mysql官网提供的库,大家可以去官网下载,网址如下
https://dev.mysql.com/downloads/
具体步骤大家自己去搜搜就可以这里不再多说!
大家的电脑具体能不能连上,可以做一个小测试就可以:
mysql_get_client_info()就是一个查看版本的mysql函数
3.1 准备工作及常用接口介绍
接口函数使用文档:首先进入mysql官网:https://dev.mysql.com
按照以下步骤查看使用文档:
#include <iostream>
#include <string>
#include <mysql/mysql.h>
const std::string host = "127.0.0.1";//const std::string host = "localhost";这样也行,因为我们设置的就是本地环回
const std::string user = "connector";
const std::string passwd = "123456";
const std::string db = "conn";
const unsigned int port = 8080;
int main()
{
std::cout << "mysql client version:" << mysql_get_client_info() << std::endl;
MYSQL *my = mysql_init(nullptr);//要使用库,必须先进行初始化!
if (nullptr == my)
{
std::cerr << "init mysql error" << std::endl;
return 1;
}
//初始化完毕之后,必须先链接数据库,在进行后续操作
if (mysql_real_connect(my, host.c_str(), user.c_str(), passwd.c_str(),
db.c_str(), port, nullptr, 0) == nullptr)
{
std::cerr << "connect mysql error" << std::endl;
return 2;
}
std::cout << "connect success" << std::endl;
mysql_close(my);//关闭mysql链接mysql_close
return 0;
}
停止mysql,或者登录信息不对,都会造成链接mysql失败。链接mysql的信息在哪里查看,之前的博客都已经说过这里不再赘述!
//建立好链接之后,获取英文没有问题,如果获取中文是乱码:
//设置链接的默认字符集是utf8,原始默认是latin1
mysql_set_character_set(myfd, “utf8”);
这一句加在连接之后,也就是mysql_real_connect之后!!!
sql执行完以后,如果是查询语句,我们当然还要读取数据,如果update,insert等语句,那么就看下操作成功与否即可。我们来看看如何获取查询结果: 如果mysql_query返回成功,那么我们就通过mysql_store_result这个函数来读取结果。
该函数会调用MYSQL变量中的st_mysql_methods中的read_rows 函数指针来获取查询的结果。同时该 函数会返回MYSQL_RES 这样一个变量,该变量主要用于保存查询的结果。同时该函数malloc了一片内 存空间来存储查询过来的数据,所以我们一定要记的free(result),不然是肯定会造成内存泄漏的。 执行 完mysql_store_result以后,其实数据都已经在MYSQL_RES变量中了.
3.2 图形化界面访问MySQL
推荐的几个图形化界面
这个是免费的MySQL workbench(MySQL官方的图形化)
除了MySQL workbench,其他的都要收费(收费的当然好用),不过有破解版的大家可以自行寻找,这种东西不宜传播!!
然后Test connection 输入密码即可
下面就是一些简单的使用!