文章目录
前言
在上一篇介绍了mysql的基本操作 增删改查 本次文章中将介绍MySQL的进阶操作
一 克隆表
克隆表的意思就是将原来的表的内容复制到新的表中 方法有两种
第一种 先复制结构 再复制内容
先like方式复制表的结构
再复制内容,
查看内容
查看总表数
第二种是直接复制过去 方便时挺方便 但是在新表中没有了旧表的primary key、Extra(auto_increment)等属性。
二 删除表里的数据
1.delete
这种方式最直接 但是DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录
所以在删除后是可以恢复的。
2.truncate
truncate和drop一样 删除后没有日志文件返回 故所以删除后不可以恢复,用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录,慎用。
从速度上来讲 drop>truncate>delete 但是从安全性上讲 delete好一些。
三 临时表
临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。
新建的表和普通的表新建方式一样 不同的是在create后面加了个temporary。
临时表无法查询到
且在退出数据库后在登陆 临时表就会被销毁
创建外键约束
保证数据的完整性和一致性
外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。
主键表和外键表的理解:
1、以公共关键字作为主键的表为主键表(父表、主表)
2、以公共关键字作为外键的表为外键表(从表、外表)
注意:与外键关联的主表的字段必须设置为主键,要求从表不能是临时表,主从表的字段具有相同的数据类型、字符长度和约束
先创建两个表 两个表都有一个相同的字段
增加一个表约束 添加一个主键名和约束字段 检查结构
给另一个表进行一样操作 不同的是这个表是添加外键和之前的表一样的约束字段
在外键无法添加字段和内容 因为有主键约束 所以要先在主键添加
在删除的时候也必须要先删除从表 在删除主表 一个主表不只约束一个从表
保证数据的完整性和一致性。如果要删除外键约束字段
先删除外键约束,再删除外键名。
MySQL中6种常见的约束
主键约束 primary key
外键约束 foreign key
非空约束 not null
唯一约束 unique [key|index]
默认值约束 default
自增约束 auto_increment
四 用户管理
创建用户
查看用户信息
创建后的用户保存在MySQL的user表里
用户重命名
修改账号密码
此种方式为修改当前用户的密码
可以针对某一个用户来修改其密码
root账户密码遗忘解决方法
修改配置文件添加标识处字段 可以不使用密码登录 先登上数据库
重启服务
mysql直接登录
在利用语句来修改密码
刷新密码状态
退出数据库 将之前加入配置文件的字段删除 重启服务
五 数据库的提权操作
和Linux的sudo一样 MySQL里也有一套权限管理系统 来保证数据的安全。
格式为grant 权限列表 on 数据库名.表名 to ‘用户名’@‘来源地址’ [ identified by '密码‘];
权限列表 表示要对表进行的操作 以,分割 select update insert,all表示所有权限,可进行所有操作。
数据库名.表名 用于指定授权操作的数据库名和表名。
’用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,来源地址可以是域名 ip 可以使用“%”通配符,表示某个区域或网段内的所有地址,
id by 用于设置用户连接数据库时所使用的密码字符串。
表示client这个用户在本地可以对hive这个库的所有表进行查询
刷新权限
查看权限
撤销权限
再查看