MySQL高级操作指令汇总

目录
  • 一.克隆表
    • 法一
    • 法二
  • 二.清空表
    • 法一 delete
    • 法二 truncate
    • 法三 drop
    • 总结
  • 三.创建临时表
  • 四.外键约束
    • 设置外键
  • 五.用户管理
    • 1.查看用户信息
    • 2.新建用户create user
      • 密码为明文
      • 密码为密文
    • 3.重命名rename
    • 4.删除用户
    • 5.修改密码
      • 1.修改当前用户的密码
      • 2.修改其他用户的密码
  • 六.数据库用户授权
    • 1.授予权限grant
    • 2.查看权限
    • 3.撤销权限
    • 4.刷新权限

一.克隆表

法一

mysql> create table info1 like info;

复制格式,通过LIKE方法,复制info表结构生成info1表

但是不备份内容

mysql> insert into info1 select * from info;

法二

mysql> create table info2(select * from info);

可以将表的内容都克隆到新表中,但是表格式可能会丢失。

二.清空表

法一 delete

mysql> delete from ouou1;

DELETE清空表后,返回的结果内有删除的记录条目;

只清空表的内容,不删除表

法二 truncate

mysql> truncate table info1;

TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立

法三 drop

mysql> drop table info1;

总结

delete from info1;

属于DML

可回滚(可恢复)

可带where

表结构在,表内容要看where执行的情况

册删除速度慢,需要逐行删除

truncate table info1;

属于DDL

不可回滚

不可带where

表内容删除

删除速度快

drop table info1;

属于DDL

不可回滚(无法恢复)

不可带where

表内容和结构删除

删除速度快

删除速度 drop> truncate > delete

安全性 delete 最好

三.创建临时表

mysql> create temporary table info1 (id int(4) not null primary key,name varchar(20),age int(4));

没有真正写入磁盘中,只是存在内存中,当退出数据库之后再查看临时表就没有记录了。

临时表无法创建外键

四.外键约束

设置外键

mysql> alter table stu add foreign key (proid) references pro (pid);

将主表的主键和外表的外键联系起来。这两个的这两个字段必须设置为相同的数据类型,字符长度和约束。

模拟错误

此时就会有外键错误

五.用户管理

1.查看用户信息

用户信息一般存放在mysql数据库的user表中

(root@localhost) [mysql]> select User,Host,authentication_string from user;

2.新建用户create user

CREATE USER ‘用户名’@‘来源地址’ IDENTIFIED BY 密码’;

‘用户名’:指定将创建的用户名.

‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录。可用通配符%

‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;

若使用加密密码,需要先使用SELECT PASSWORD(‘密码’);获取密文,再在语句中PASSWORD ‘密文’;

若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

密码为明文

(root@localhost) [mysql]> create user ‘tan’@‘localhost’ identified by ‘Tcy@2021’;

密码为密文

(root@localhost) [mysql]> create user ‘tan’@’%’ identified by ‘6DCA0D3E3AC09527DF9052DF166C90D3100043D1’;

普通用户没有操作权限,无法增删改查数据库

3.重命名rename

(root@localhost) [mysql]> rename user ‘yyy’@’%’ to ‘yyy1’@’%’;

4.删除用户

(root@localhost) [mysql]> drop user ‘tan1’@’%’;

5.修改密码

1.修改当前用户的密码

(tan@localhost) [(none)]> set password = password(‘Lbb@2021’);

2.修改其他用户的密码

(root@localhost) [mysql]> set password for ‘tan’@‘localhost’ = password(‘123456’);

六.数据库用户授权

1.授予权限grant

专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。

GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@‘来源地址’ [IDENTIFIED BY ‘密码’];

权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“”。例如,使用“kgc.”表示授权操作的对象为 kgc数据库中的所有表。

‘用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。

IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分, 则用户的密码将为空。

(root@localhost) [mysql]> grant select on tan.stu to ‘tan’@‘localhost’ identified by ‘Tcy@2021’;

在tan用户中 ,但是在授权了select查询的操作,其他增删改不能使用。

对于增删改这些操作ouou是没有权限的,所以会被拒绝。

2.查看权限

(root@localhost) [mysql]> show grants for ‘tan’@‘localhost’;

3.撤销权限

(root@localhost) [mysql]> revoke select on tan.stu from ‘tan’@‘localhost’;

4.刷新权限

flush privileges

到此这篇关于MySQL高级操作指令汇总的文章就介绍到这了,更多相关MySQL 高级操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL数据库终端—常用操作指令代码

    目录 1.添加用户 2.更改用户名和host主机 3.更改密码 4.删除用户 5.查询所有用户及主机host 6.查看数据库 7.创建数据库 8.查看数据库定义信息 9.删除数据库 10.刷新权限 11.常用命令如下 1.添加用户 //新建用户 create user 用户名 identified by '密码';  //查看已有用户及主机名 select user,host from mysql.user; 2.更改用户名和host主机 //更改用户名 rename user '原用户名'@'

  • MySQL 数据库中数据表超详细的基本操作

    目录 1. 查看当前数据库中的表 2. 创建表 3. 查看指定表结构 4. 删除表 5. 往表中新增数据 6. 查找表中的数据 6.1 全列查询 6.2 指定列查询 6.3 查询字段为表达式 6.4 给某个列指定常量 6.5 给查询的表达式指定别名(as) 6.6 去重查询(distinct) 6.7 对查询结果进行排序(order by) 6.8 条件查询(where) 6.9 分页查询(limit) 7. 修改表中的数据 8. 删除表中的数据 前言: 库名.表名.列名等等不能和关键字相同,如

  • MySQL操作符(and、or、in、not)的具体使用

    目录 1.简介 2.正文 2.1 and操作符 2.2 or操作符 2.3 in操作符 2.4 not操作符 2.5 操作符顺序 1.简介 在MySQL中使用where子句对查询数据进行过滤时,往往需要同时满足多个过滤条件,或者满足多个过滤条件中的某一个条件,此时我们就可以使用操作符将where子句联结起来. 几个操作符的作用: 操作符 作用 and 与,需要同时满足where子句中的条件 or 或,只需要匹配多个where子句中的一个条件 in 用于指定where子句查询的范围 not 非,一

  • MySQL 数据库聚合查询和联合查询操作

    目录 1. 插入被查询的结果 2. 聚合查询 2.1 介绍 2.2 聚合函数 2.3 group by 子句 2.4 having 3. 联合查询 3.1 介绍 3.2 内连接 3.3 外连接 3.4 自连接 3.5 子查询 3.6 合并查询 1. 插入被查询的结果 语法: insert into 要插入的表 [(列1, ..., 列n)] select {* | (列1, ..., 列n)}from 要查询的表 上述语句可以将要查询的表的某些列插入到新的表中对应的某些列 示例1: 将 stud

  • MySQL 数据库的对库的操作及其数据类型

    目录 1. 数据库的操作 1.1 显示数据库 1.2 创建数据库 1.3 选中数据库 1.4 删除数据库 2. MySQL 中的数据类型 2.1 数值类型 2.2 字符串类型 2.3 日期类型 1. 数据库的操作 注意: SQL 语句不区分大小写,以下将以小写的语句来演示 每个 SQL 语句后面都要加英文的分号(个别语句不用加分号,但是推荐无脑全加) [] 中括号中的语句是可选的 库名.表名.列名等等不能和关键字相同,如果一定要用关键字为名,则可以通过反引号把名字引起来 1.1 显示数据库 语法

  • MySQL 8.0 可以操作 JSON 了

    目录 1.简单概述 2.JSON基础工具 3.JSON Path expression 4.查找并修改JSON 前言: 经过漫长的测试,即将整体迁移至Mysql8.0; Mysql8.0 对于Json操作新增/优化了很多相关Json的API操作; 阅读了一下官方文档,虽然绝大多数的JSON操作都是应用层完成,但是会一些Mysql的JSON语法,方便进行debug:选出基础的, 有价值的部分,供未来参考: https://dev.mysql.com/doc/ref... https://dev.m

  • MySQL几种更新操作的案例分析

    目录 案例分析 更新账户金额 直接更新 乐观锁方案 无锁方案 排队操作 常见问题 如果数据中存在 update_time 字段受影响的行数是多少? 如果执行 update 更新但受影响的行数为 0 会加行锁吗? 参考资料 本文将通过一个 用户账户金额更新的案例 分析几种数据更新的操作的优劣.希望对大家有帮助

  • MySQL高级操作指令汇总

    目录 一.克隆表 法一 法二 二.清空表 法一 delete 法二 truncate 法三 drop 总结 三.创建临时表 四.外键约束 设置外键 五.用户管理 1.查看用户信息 2.新建用户create user 密码为明文 密码为密文 3.重命名rename 4.删除用户 5.修改密码 1.修改当前用户的密码 2.修改其他用户的密码 六.数据库用户授权 1.授予权限grant 2.查看权限 3.撤销权限 4.刷新权限 一.克隆表 法一 mysql> create table info1 li

  • 详解Linux终端 MySQL常用操作指令

    服务: # chkconfig --list 列出所有系统服务 # chkconfig --list | grep on 列出所有启动的系统服务 # chkconfig --list mysqld # whereis mysql 查看文件安装路径 # which mysql 查询运行文件所在路径(文件夹地址) usr/bin/mysql 是指:mysql的运行路径 var/lib/mysql 是指:mysql数据库文件的存放路径 usr/lib/mysql 是指:mysql的安装路径 添加环境变

  • Docker 容器操作指令汇总详解

    1. 创建并运行 一个容器 docker run -it --rm centos:latest bash run 运行容器 -it 以交互方式运行容器 --rm 退出容器后删除容器 centos:latest 基于 镜像启动容器 bash 命令 交互式shell 2. 退出容器 exit 3. 查看容器 docker ps 查看正在运行的容器 docker ps -a 查看所有容器 4.删除容器 docker rm [容器id ] 5 . 查看 镜像 容器 数据卷 占用空间 docker sys

  • mysql show操作简单示例

    本文实例讲述了mysql show操作.分享给大家供大家参考,具体如下: SHOW CHARACTER SET 显示所有可用的字符集 SHOW CHARACTER SET; SHOW CHARACTER SET LIKE 'latin%'; SHOW COLLATION 输出包括所有可用的字符集 SHOW COLLATION; SHOW COLLATION LIKE 'latin1%'; SHOW COLUMNS 显示在一个给定表中的各列的信息,对于视图,本语句也起作用. SHOW COLUMN

  • MySQL条件查询语句常用操作全面汇总

    目录 模糊查询 union 排序 数量限制 分组 综合 顾名思义, 条件查询就是使用where字句 , 将满足条件的数据筛选出来 语法 : select < 结果 > from < 表名 > where < 条件 > 这里我们以t_user表为例 -- 查询性别为男的信息 SELECT * FROM t_user WHERE sex='男' -- 查询性别不为男的信息 SELECT * FROM t_user WHERE NOT sex='男' -- 查询性别为男并且年

  • MySQL数据库基本SQL语句教程之高级操作

    目录 前言: 一.克隆表 1.1克隆方法一(将表与内容分开克隆) 1.2克隆方法二(将表与内容一起复制) 二.清空表,删除表内的所有数据 2.1方法一 2.2方法二 2.3小小结之drop,truncate,eleted的对比 三.创建临时表 四.用户管理 4.1新建用户 4.2使用明文密码创建用户 4.3使用密文创建数据库 五.查看用户信息 六.重命名用户 七.删除用户 八.密码管理 8.1修改当前用户密码 8.2修改其他用户的密码 8.3忘记root密码 8.3.1给root设置密码 九.数

  • 最新MySQL高级SQL语句大全

    目录 引言 一.常用查询 1.order by按关键字排序 1.1 升序排序 1.2 降序排序 1.3 结合where进行条件过滤再排序 1.4 多字段排序 2.and/or判断 2.1 and/or 且与或的使用 2.2 嵌套.多条件使用 3.distinct 查询不重复记录 4.GROUP BY对结果进行分组 5.limit限制结果条目 6.设置别名(alias—as) 6.1 查询表的记录数量,以别名显示 6.2 利用as,将查询的数据导入到另外一个表内 7.通配符 引言 对MySQL数据

  • Java基于jdbc连接mysql数据库操作示例

    本文实例讲述了Java基于jdbc连接mysql数据库操作.分享给大家供大家参考,具体如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MySQLDemo { private Connection conn = null; pri

  • MySQL DML语句整理汇总

    DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert).更新(update).删除(delete)和查询(select),是开发人员日常使用最频繁的操作. 1.插入(insert) 格式1. INSERT INTO emp(ename,hiredate,sal,deptno) VALUES('zzx1','2000-01-01','2000',1); 格式2. INSERT INTO emp VALUES('lisa','2003-02-01','3000',2); 不用指定

随机推荐