MySQL(8.0版本)

目录:

用户的管理

建库建表​​​​​​​


 前言:今天小刘给大家带来的是MySql的一些知识点,在前期我们使用过的数据库有sqlServer,和oracle,今天的MySQL与他们也是大同小异,不过会有一个高级部分:执行计划大家还没有见过,接下来我们就进入主题吧

用户的管理

关于用户管理,小刘会结合一些企业中的使用的一些场景给大家进行一个讲解

以下是在一些有规模的公司中不同开发人员的权限

就数据库而言

项目经理:crud,Create,drop...

项目组长:crud

开发人员:select

对于系统开发而言,三个环境

线网/生产环境:系统开发完毕,客户使用的那个环境  linux

测试环境:公司内部模拟客户现场,搭建而成的环境   linux

开发环境:本地电脑  windows

权限的划分,针对的是生产环境

还有就是我们MySQL默认数据库里面的四张表(user,db,tables,columns_priv)

 这四张表不能删除,否则后果很简单:重装MySQL

以下是对于这四张表的解释:

1.user表(用户层权限)

 2.db表(数据库层权限)

 3.tables_priv表(表层权限)

 4.columns_priv表(字段层权限)

 好,了解了这四张表之后我们来进行对用户权限的分配

1.首先我们先在用户表中新增一个用户:zs

再查询以下zs的host 与名称与密码,可以看到它除了名称都是没有的,这个时候我们就需要给他设置密码

 此时我们要注意数据库版本的不同,修改密码的方式也不同

列举:5.7版本:

 8.0版本:

 我们执行一下修改密码的语句再去查看表数据,可以看到已经设置成功了

 我们登陆zs的账号创建连接,来看一下它具有的权限

 

 所以接下来我们就要授予权限

设置权限

如:

给zs用户赋予 数据库javaxl中所有的表的所有权限

之后我们先关闭zs的连接,再重新连接上,会发现它就已经具备了刚刚所授予它的所有权限

这就是一个项目经理级别具有的所有的权限

此时我们测试一下只赋予用户ls查询与删除的功能,看一下会是什么情况

登陆ls的连接查看权限:

 通过对比可以发现这里只有一张表,也就是刚刚授权的那一张,

我们对表中的数据进行修改,然后保存,出现提示:没有修改权限

 我们执行删除操作:通过编号位置发生的变化我们可以看见中间的447号已经删除成功了

 撤销权限/回收权限

有赋予就有撤销,在某些情况下我们会需要用到这个操作,比如员工被降职

查看一个用户的所有权限

 注意:当我们在回收权限时,只能回收你授权时权限,比如你授权的是all(所有权限),那你就只能回收all,而不能回收all中的其中一个权限,如delect,但是此时分为两种情况,如下:

 误区:第一种情况

当我们回收的删除权限是面向一个库中的所有的表的情况的时候,删除权限被回收成功,不见了

 第二种情况:

当我们回收的权限是面向一个库中的单独一张表的情况的时候,删除权限回收失败

 删除用户:drop user 名称

建库建表

创建数据库:

create database 数据库名

查看所有的数据库:(也就是展示mysql左边排列的数据库)

show databases

建表,删表语法:

例如:

 

查看一个表中的所有列段:desc 表名;

 修改表:

 扩展字段:

在企业中设计表的时候,一般都会设计扩展字段

如:

 因为我们在项目的开始阶段无法预料到用户所需要的所有需求,或者说需要删改,这时我们就用到扩展字段来应对变化的需求,以防万一,但是一般只需要在核心业务表中添加扩展字段10-15个,如果所有的的表中创建太多字段会很占用空间

面试题:对数据库引擎方面的了解。

1.每张表创建之后的默认存储引擎是InnoDB(支持事物),另外一个是MyISAM

 

 2.如何对MySql进行优化

3.MySql中的数据类型:

面试题:以下为某外卖公司的用户订单,用户BD表,请写出一下问题对应的查询语句

user表:

shop表:

 

问题1.1月份每笔消费均大于20元的用户的总消费金额

答:select sum(order_amt) from  user where order_amt > 20.0 and order_time <='2018-01-31'  group by user_id

执行结果:

问题2.1月份只吃了麻辣烫和汉堡的人数

答:select count( DISTINCT user_id ) from user where order_category like '_辣%' or order_category like '_堡%' and order_time <='2018-01-31'  group by user_id

执行结果:

​​​​​​​

问题3,计算每个DB_TEAMD的BD对应门店的销售额

答: select DISTINCT a.shop_id,b.order_amt from shop a ,user b where a.shop_id=b.shop_id 

执行结果:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值