MySQL---数据用户管理和索引

news2025/1/18 4:37:26

DDL:CTEATE DROP ALTER

dml:对数据进行管理

update insert into delete truncate

dpl:查询语句 select

dcl:权限控制语句 grant revoke

数据库用户管理

创建用户

修改用户权限

删除用户

grant要在终端执行

创建用户

create user 'ky32'@'localhost' identified by '123456'; #创建用户的语句
create user:创建用户的开头
'ky32'@'localhost':ky32表示用户名。localhost表示新建的用户ky32可以在哪些主机上登录
'ky32'@'localhost':只能从本机登录
'ky32'@'192.168.233.22':ky32在这个ip上可以登录
'ky32'@'192.168.233.0/24':ky32在这个网段可以登录
'ky32'@'%':ky32在所有主机都可以登录

select PASSWORD('abc123') 
#加密密码
create user 'ky33'@'localhost' identified by '*6691484EA6B50DDDE1926A220DA01FA9E575C18A'; #加密的方式创建用户

给用户赋权

grant all privileges on * . * to 'ky32'@'localhost' identified by '123456'; 
#给用户赋权(.没有空格) 
grant:赋权开头语句 
all privileges:赋予所有权限 
on *.* :所有库都有操作权限 
on 库名.*:只能对指定的库进行操作
to 'ky32'@'localhost':赋权给哪个用户。创建用户时候是什么赋权就要是什么上下必须一致 identified by '123456':使用哪个密码进行登录。创建用户时候不写密码,密码就默认为空。

show grants for 'ky32'@'localhost'; 
#查看指定用户

flush privileges; 
#刷新用户权限

revoke all privileges on kgc. * from 'test1'@'20.0.0.50'; 
revoke:删除权限。也需要一致给哪个库权限就得删除哪个库权限。

对权限进行控制

grant select on kgc.* to 'test1'@'20.0.0.50' identified by '123456'; 
#给指定用户查询权限。

revoke select on kgc.* from 'test1'@'20.0.0.50'; 
#删除指定权限。删除select查询权限。

给一个用户赋予多个权限

多个权限之间用逗号隔开

grant select,insert,drop on kgc.* to 'test1'@'20.0.0.50' identified by '123456'; 
#给一个用户多个权限。每个权限都需要单独赋权

revoke drop,update on kgc.* from 'test1'@'20.0.0.50'; 
#删除多个权限。每个权限用逗号隔开。

revoke all privileges on kgc.* from 'test1'@'20.0.0.50'; 
#也可也使用 revoke all privileges 删除多个权限。

给用户重命名

rename user 'test1'@'20.0.0.50' to 'guoqi'@'20.0.0.50'; 
#给用户重命名。也必须前后一致

删除用户

drop user 'ky33'@'localhost'; 
#删除指定用户。必须前后一致

修改用户密码

set password = password('abc123'); 
#修改当前用户的密码。必须在终端中执行

set password for 'guoqi'@'20.0.0.50' = password('abc123'); 
#给其他用户修改密码

恢复root密码

vim /etc/my.cnf

skip-grant-tables 
#添加免密登录

systemctl restart mysqld 
#重启mysql服务

重写进入mysql不用输入密码直接进入

use mysql;

show user;

select * from user;

select user,authentication_string,host from user;

updates mysql.user set

update mysql.user set authentication_string = '123456' where user = 'root'; 
#重置root密码

update user set authentication_string=password('123456') where Host='localhost' and User='root'; 
#修改密码之后需要加密。慎用。

update user set authentication_string = password('123456') where host='%' 
#加密密码

用户权限管理的总结

create user '用户名'@'20.0.0.50' identified by '123456';:创建用户

grant all select ,insert,drop:赋权

revoke:删除权限

rename:修改用户名

drop user:删除用户

set password = passwd('123456'):修改登录用户的密码

set password for '用户名'@'20.0.0.50' = password('abc123'):修改其他用户密码

show grants for '用户名'@'localhost':查看用户权限 flush privileges:刷新权限

用户权限管理的总结

create user '用户名'@'20.0.0.50' identified by '123456';:创建用户

grant all select ,insert,drop:赋权

revoke:删除权限

rename:修改用户名

drop user:删除用户

set password = passwd('123456'):修改登录用户的密码

set password for '用户名'@'20.0.0.50' = password('abc123'):修改其他用户密码

show grants for '用户名'@'localhost':查看用户权限 flush privileges:刷新权限

mysql的索引、事务和存储引擎

索引

索引是一个排序的列表,列表当中存储的是索引的值和包含这个值的数据所在行的物理地址

索引的作用

索引的核心作用是加快查询速度。实现快速查找

1、 利用索引数据库可以快速定位,大大加快查询速度,主要作用

2、 表的数据很多,查询需要关联多个表,这个时候索引也可也提高查询速度

3、 加快表与表之间的连接速度

4、 使用分组和排序时,可以大大减少时间

5、 可以提高数据库,恢复数据时的速度

索引创建的原则

1、 如果有索引,数据库会先进行索引查询,然后定位数据。索引使用不当,反而会增加数据库的负担。

2、 主键、外键必须有索引。创建好的主键和外键,自动就是索引不需要额外声明了。

3、 如果说有一个表超过了300行必须要有索引,否则数据库会遍历表的所有数据,查询速度会很慢。

4、 互相之间有关联的表,在这个关联字段上一定要设置索引。

5、 唯一性太差的字段,不适合做索引。

6、 更新太频繁的字段,不适合做索引。

7、 经常被where条件匹配的字段,尤其是表数据比较多的。应该创建索引。

8、 经常进行group by(分组) order by(排序) 这种语句的字段要建立索引。

9、 索引的字段越小越好,长文本的字段,不适合建立索引。

索引的类型

常用类型:

B-树索引:BTREE 树型结构的索引,也是大部分数据库的默认索引类型。
根节点:树的最顶端的分枝节点
分枝节点:指向索引里其他的分枝节点,也可以是叶子节点
叶子节点:直接指向表里的数据行

创建BTREE索引的方式

create index name_index on test (name); 
#创建BTREE索引

show index from test; 
#查看表的索引和引擎

哈希索引:散列缩影 把任意长度的输入,通过散列算法变换成固定长度的输出。散列的值----分别对饮数据里的列和行

mysql的默认引擎:INNODB 默认引擎的索引类型就是Btree

MEMORY引擎可以支持hash,也是他的默认索引。

先算散列值,然后再对应,速度比较慢,比BTREE慢。

hash的索引匹配:= in()<=>

show index from test;

show create table test; 
#查看表的索引和引擎

alter table test engine=memory;

alter table test drop primary key;

select * from test where sex = '豪车';

create index idx_hash_column on test (sex) using hash; 
#创建hash索引的方式

练习题

1、 创建用户,声明网段 test 网段任选 密码123456

2、 创建一个库。库名:test1

3、 在库中随意创建两个表 table1和table2

table1

id 主键

name not null

sex not null



table2

id 主键

address 默认地址不详

phone unique

4、 test 用户可以对test1库 只有 select和insert 两个权限

5、 把tesst的用户名修改为test_123 密码修改为abc123

6、 删除insert权限

7、 给两个表分别创建索引。table1是hash类型sex做索引 table2的索引是BTREE类型phone做索引。

create user 'test'@'20.0.0.%' identified by '123456';
#创建用户

create database test1;
#创建库

create table table1 (
id int(4) primary key,
name varchar(5) not null,
sex varchar(5) not null
);
#创建表1

desc table1;

create table table2 (
id int(4) primary key,
address varchar(50) default '地址不详',
phone varchar(20) unique
);
#创建表2

desc table2;

grant select,insert on test1.* to 'test'@'20.0.0.%' identified by '123456';
#给指定用户对应指定表。查和添加的权限

rename user 'test'@'20.0.0.%' to 'test_123'@'20.0.0.%';
#给用户改名

set password for 'test_123'@'20.0.0.%' = password('abc123');
#改用户密码

revoke insert on test1.* from 'test_123'@'20.0.0.%';
#删除指定用户对指定表添加的权限

show index from table1;
#查看表的索引和引擎

alter table table1 engine=memory;
#清空引擎

alter table table1 drop primary key;
#删除主键

select * from table1 where sex = 'man';

create index idx_hash_column on table1 (sex) using hash;
#创建索引

show index from table1;
#查看表的索引和引擎

show index from table2;
#查看表的索引和引擎

create index phone_index on table2(phone);
#创建索引

show index from table2;
#查看表的索引和引擎

创建用户

创建一个库

创建两个表

表1结构

 

表2结构

给用户权限

给用户改名

给用户修改密码

删除权限

修改索引和引擎

修改索引

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

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

相关文章

4.多层感知机-2简化版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

抽奖之星软件,可设置中奖几率概率

抽奖之星简介 抽奖之星 (www.wsgsoft.net/plds/) 可控制抽奖/抽签的结果。 包括内定、中奖次序、限制范围、修改几率、排除、分组等&#xff0c;详情可安装软件试用。 设置中奖几率 界面如下。界面右边&#xff0c;可选中一些名单&#xff0c;并设置其几率&#xff08;N倍&a…

HEC-RAS 1D/2D水动力与水环境模拟技术

水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而&#xff0c;一方面水动力和水环境模型的使用非常复杂&#xff0c;理论繁复&#xff1b;另一方面&#xff0c;免费的水动力和水环境软件往往缺少重要功能&a…

建筑建材物料展示预约小程序的作用

建材物料在工程和家庭中的应用度非常高&#xff0c;涵盖服务与产品&#xff0c;如墙面翻新、刷墙、墙纸等&#xff0c;所谓专业事专业人做&#xff0c;因此建筑建材服务商家需要不断拓展客户进行产品/服务的销售。 而在市场拓展方面&#xff0c;由于当今主流需求者年轻化&…

基于STC12C5A60S2系列1T 8051单片机可编程计数阵列CCP/PCA/PWM模块的PWM(脉冲宽度调制)应用

基于STC12C5A60S2系列1T 8051单片机可编程计数阵列CCP/PCA/PWM模块的PWM&#xff08;脉冲宽度调制&#xff09;应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍STC…

超融合数据库:解锁全场景数据价值的钥匙

前言 近日&#xff0c;四维纵横对外官宣已完成上亿元 B 轮融资。作为超融合数据库理念的提出者&#xff0c;三年来 YMatrix 持续在超融合数据库领域中保持精进与迭代&#xff0c;对于超融合数据库在行业、场景中的应用和理解也更为深刻。 本篇文章&#xff0c;我们将基于 YMa…

Qt QStackWidget实现透明化loading弹窗与结果展示

效果: 特点: 1、组件复用,用于工作环境中作为单例组件加载方式,作用全局任何需要进行loading显示的业务逻辑; 2、接口调用简单,只需要调用loading开始,显示成功页面,显示错误页面; 3、按钮业务逻辑只进行隐藏当前loading加载框,可根据自己需要自定义业务逻辑; 4…

用 Milvus 和 NVIDIA Merlin 搭建高效推荐系统

如何搭建一个高效的推荐系统&#xff1f; 简单来说&#xff0c;现代推荐系统由训练/推理流水线&#xff08;pipeline&#xff09;组成&#xff0c;涉及数据获取、数据预处理、模型训练和调整检索、过滤、排名和评分相关的超参数等多个阶段。走遍这些流程之后&#xff0c;推荐系…

MyBatis Plus之wrapper用法

一、条件构造器关系 条件构造器关系介绍&#xff1a; 绿色框&#xff1a;抽象类 abstract 蓝色框&#xff1a;正常 class 类&#xff0c;可 new 对象 黄色箭头&#xff1a;父子类关系&#xff0c;箭头指向为父类 wrapper介绍&#xff1a; Wrapper &#xff1a;条件构造抽象类…

技术贴 | 一文带你走进统计信息模型

一、简介 数据库中的“统计信息”是一个描述数据库中表和列信息的数据集合。优化器代价模型 (OptimizerCost Model) 依赖于查询中涉及到的表、列、谓词等对象的统计信息来选取计划&#xff0c;优化器可以利用统计信息来优化计划的选择&#xff0c;所以统计信息是代价模型中选取…

微信开放平台账号

微信开放平台账号是用于注册APP端用的微信分享、登陆、支付等功能接口的账号&#xff0c;在制作APP的过程中非常重要。通过微信开放平台&#xff0c;开发者可以接入微信支付、微信登录等功能&#xff0c;从而为APP提供更多样化的服务。 微信开放平台账号管理权限包括创建开放平…

智能井盖传感器推荐,万宾科技助力城市信息化建设

随着科技产品更新换代进程加快&#xff0c;人工智能在人们日常生活之中逐渐普及开来&#xff0c;深入人们生活的方方面面&#xff0c;影响城市基础设施建设工程。例如在大街小巷之中的井盖作为城市基础建设的一个重要部分&#xff0c;一旦出现松动倾斜或凸起等异常问题&#xf…

Linux 中如何修改终端提示符颜色?

哈喽大家好&#xff0c;我是咸鱼 我们知道默认情况下&#xff0c;Linux 终端提示符都是简单的黑白色、 这种黑白提示一方面看久了容易视觉疲劳&#xff0c;另一方面由于没有高亮显示&#xff0c;看着很不方便&#xff0c;视觉体验极差 所以我们需要修改我们的终端显示颜色&a…

想入门网络安全,这些前置准备要做好!

网上有很多关于网络安全如何学习、如何入门的内容&#xff0c;但是仍然有很多小白不懂网络安全要怎么去学习。这是由于网络安全包含的范围确实比较广&#xff0c;学习的内容也比较多&#xff0c;所以在刚开始了解的时候确实会有点搞不清楚状况。 这里有一个方法&#xff0c;不要…

前后端配合实现按钮级操作权限控制

背景 公司项目需要做到按钮级权限限制&#xff0c;至此有了该文&#xff0c;如有错误&#xff0c;请联系博主指出&#xff0c;多多感谢。 角色配置前后端操作 首先最基本的角色配置&#xff0c;配置该类角色有哪些菜单以及那些菜单的哪些按钮权限 菜单及菜单按钮由前端维护&a…

Vue Router使用VueUse更改标签页名称的工具函数

进入正题 安装 npm i vueuse/core or pnpm i vueuse/core or yarn add vueuse/corerouter/helper.js import { useTitle } from vueuse/coreexport const usePageTitle (to) > {const projectTitle import.meta.env.VITE_APP_TITLE // 将可变名抽出到 .env 内配置cons…

源码与SaaS:企业家如何选择?——一语道破真相

在数字化的时代&#xff0c;软件技术已经成为企业运营的核心驱动力。对于企业家来说&#xff0c;选择一个适合自己企业的软件开发方式至关重要。其中&#xff0c;源码和SaaS是两种常见的选择。那么&#xff0c;在这两者之间&#xff0c;企业家应该如何抉择&#xff1f; 源码&am…

excel修改日期格式为yyyy-mm-dd

1、选中要修改日期格式的列&#xff0c;鼠标右击&#xff0c;选择“设置单元格格式” 2、若“日期”格式中没有需要的格式&#xff0c;选择自定义格式&#xff0c;输入自己需要的日期格式后点击确定即可修改

简单又有效!制作产品说明书的模板工具

产品说明书在产品推广中起着至关重要的作用。它是一种不可忽视的宣传手段&#xff0c;能够向潜在客户传达产品的特点和优势。通过详细描述产品的功能、用途和特点&#xff0c;产品说明书能够帮助客户更好地了解产品&#xff0c;并激发他们对产品的兴趣。因此&#xff0c;在进行…

Mysql权限控制语句

1.创建用户 create user ky32localhost IDENTIFIED by 123456 create user&#xff1a;创建用户开头 ky32&#xff1a;用户名 localhost 新建的用户可以在哪些主机上登录 即可以使用ip地址&#xff0c;网段主机名 ky32localhost ky32192.168.233.22 ky32192.168.233.0/2…