文章目录

  • 数据表高级操作
  • 1.克隆表
  • 2.清空表,删除表内的所有数据
  • 方法一(delete)
  • 方法二(truncate)
  • delete与truncate区别
  • 3.创建临时表
  • 4.创建外键约束
  • MySQL中常见的约束
  • 外键的定义和作用
  • 主键表和外键表的联系
  • 实例
  • 数据库用户管理
  • 1.新建用户
  • 2.查看用户信息
  • 3.重命名用户
  • 4.删除用户
  • 5.修改当前登录用户密码
  • 6.修改其他用户密码
  • 7.忘记root密码解决办法
  • 方法一
  • 方法二
  • 数据库用户授权
  • 1.授予权限
  • 2.查看权限
  • 3.撤销权限
  • 本章总结
  • MySQL高级操作
  • 数据库用户管理
  • 数据库用户授权


数据表高级操作

1.克隆表

将数据表的数据记录生成到新的表中

首先先创建一个表test1

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接


mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_02


方法一:

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_03


mysql 8 授权root所有连接 mysql授权所有用户_数据_04

方法二:

mysql 8 授权root所有连接 mysql授权所有用户_主键_05

2.清空表,删除表内的所有数据

方法一(delete)

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_06

方法二(truncate)

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_07

delete与truncate区别

  • delete清空表后,返回的结果内有删除的记录条目;delete工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用delete from 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。
  • truncate清空表后,没有返回被删除的条目;truncate 工作时是将表结构按原样重新建立,因此在速度上truncate会比delete清空表快;使用truncate table清空表内数据后,ID 会从 1 开始重新记录。
  • 删除速度对比:drop > truncate > delete

3.创建临时表

临时表,顾名思义只是临时创建的表,临时表创建成功后,使用show tables命令是看不见的,而且在连接退出时临时表会被销毁。在退出销毁前,也可以进行增删改查等操作

mysql 8 授权root所有连接 mysql授权所有用户_数据_08


mysql 8 授权root所有连接 mysql授权所有用户_数据_09


mysql 8 授权root所有连接 mysql授权所有用户_主键_10


mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_11

4.创建外键约束

MySQL中常见的约束

  • 主键约束(primary key)
  • 外键约束(foreign key)
  • 非空约束(not null)
  • 唯一性约束(unique [key|index])
  • 默认值约束(default)
  • 自增约束(auto_increment)

外键的定义和作用

1、定义
如果同一个属性字段y在表一中是主键,而在表二中不是主键,则字段y称为表二的外键
2、作用
防止误删、误修改,保证数据的完整性和一致性

主键表和外键表的联系

  • 以公共关键字作为主键的表为主键表,也被称为主表或者父表
  • 以公共关键字作为外键的表为外键表,也被称为从表或者外表
  • 注:与外键关联的主表的字段必须设置为主键,并且要求从表不能是临时表,主表外键字段和从表的字段具备相同的数据类型、字符长度和约束

实例

mysql 8 授权root所有连接 mysql授权所有用户_数据_12


mysql 8 授权root所有连接 mysql授权所有用户_数据库_13


mysql 8 授权root所有连接 mysql授权所有用户_数据库_14


mysql 8 授权root所有连接 mysql授权所有用户_主键_15


mysql 8 授权root所有连接 mysql授权所有用户_数据_16


mysql 8 授权root所有连接 mysql授权所有用户_数据库_17


mysql 8 授权root所有连接 mysql授权所有用户_数据库_18


mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_19


mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_20

数据库用户管理

1.新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

用户名:指定将创建的用户名
来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%
密码:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

mysql 8 授权root所有连接 mysql授权所有用户_主键_21

2.查看用户信息

mysql 8 授权root所有连接 mysql授权所有用户_主键_22

3.重命名用户

mysql 8 授权root所有连接 mysql授权所有用户_数据_23

4.删除用户

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_24

5.修改当前登录用户密码

mysql 8 授权root所有连接 mysql授权所有用户_主键_25

6.修改其他用户密码

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_26


mysql 8 授权root所有连接 mysql授权所有用户_数据_27


mysql 8 授权root所有连接 mysql授权所有用户_数据库_28

7.忘记root密码解决办法

方法一

修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql

mysql 8 授权root所有连接 mysql授权所有用户_数据库_29


mysql 8 授权root所有连接 mysql授权所有用户_数据_30


mysql 8 授权root所有连接 mysql授权所有用户_数据库_31

方法二

使用 update 修改 root 密码,刷新数据库

flush privileges:刷新权限相关的表

mysql 8 授权root所有连接 mysql授权所有用户_数据_32


mysql 8 授权root所有连接 mysql授权所有用户_数据_33

数据库用户授权

1.授予权限

mysql 8 授权root所有连接 mysql授权所有用户_数据_34


mysql 8 授权root所有连接 mysql授权所有用户_数据库_35


mysql 8 授权root所有连接 mysql授权所有用户_数据库_36


mysql 8 授权root所有连接 mysql授权所有用户_主键_37

2.查看权限

mysql 8 授权root所有连接 mysql授权所有用户_mysql 8 授权root所有连接_38

3.撤销权限

mysql 8 授权root所有连接 mysql授权所有用户_主键_39

USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。

本章总结

MySQL高级操作

  1. 克隆表有两种方法:一种是先克隆表结构,再克隆里面的数据;另一种是直接一起克隆。
  2. 清空表里的所有数据也有两种方法:一种是用delete,delete工作时是一行一行的删除记录数据,再次写入新的数据时会从原来最大的自增长字段ID后面继续自增长;另一种是truncate,工作时是直接摧毁所有数据并且按原样的表结构重新建立,再次写入新的数据时自增长字段ID会从1重新开始。
  3. 创建临时表时要注意,临时表只是临时存在的,可以对其进行增删改查,但是在退出连接时会自动销毁,再次连接时临时表就不存在了。
  4. 创建主键和外键约束时,先主键后外键;在给两种表导入数据时,先主表后从表;删除数据时,先从表后主表;删除外键约束字段时,先删除外键约束再删除外键名

数据库用户管理

  1. 数据库用户管理也拥有增删改查功能,具体操作命令见上面的内容。
  2. 忘记root密码的解决方案有两个:一个是修改 /etc/my.cnf 配置文件,不需要输入密码直接可以登录到mysql数据库;另一个是在数据库中使用update命令修改root密码,就不需要以前的密码了,直接修改掉,并且刷新数据库。

数据库用户授权

使用grant命令给普通用户提升权限,使这些普通用户也可以拥有一些权限;也可以使用revoke命令撤销这些权限