开发者社区> 巴黎香榭> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)

简介: MySQL的数据安全、授权、备份、恢复
+关注继续查看
ParisGabriel
 
 
         每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰
 
  开局一张图

今天接着昨天的说

索引有4种:
     普通 索引 :index 
     唯一索引:unique
     主键索引:primary key
     外键索引:foreign key
索引查询命令:
      show index from 表名\G;
         Non_Unique:1   :index
         Non_Unique:0  :unique


外键索引(foreign key):
    定义:让当前字段的值在另一个表的范围内选择
    语法:
       foreign key(参考字段名)
       references 主表(被参考字段名)
       on delete 级联动作
       on update 级联动作
    使用规则:
       主表从表字段数据类型要一致
       主表被参考字段一般是:主键
    删除外键:
      alter table 表名 drop foreign key 外键名;
      外键名查询:show create table 表名;
    级联动作:
      cascade
         级联删除、更新(只限于参考字段)
      restrict(默认)
        从表有相关记录不允许主表操作
      set NULL
        主表删除、更新从表关联记录字段值为NULL
    已有表添加外键:
       alter table 表名 add
       foreign key(参考字段)reference主表(被参考字段)
       on delete ...
       on update ...
表的复制
  复制表:
    create table 表名 select... from where 表名;
  表结构:
    create table 表名 select * from 表名 where false;
  注意:
    复制表的时候不会把原表的 键(key)属性复制过来


SQL 查询(高级)

嵌套查询(子查询):
       定义内层查询结果作为外层的查询条件
   语法格式:
     select ...from 表名 where 条件(select...);
多表查询:
  两种方式
  1.
      select 字段名列表 from 表名列表;(笛卡尔积
      select * from t1,t2
      select t1.name,t2.name from t1,t2;
  2.
     select t1.name,t2.name from t1,t2
      where 条件
链接查询:
   1.内链接
     select 字段名 from 表1 
     inner join 表2 on 条件
     inner join 表3 on 条件...;
   2.外链接
      1.左链接
        以左表为主显示查询结果
select 字段名 from 表1 
left join 表2 on 条件
left join 表3 on 条件...;
      2.右链接
        以右表为主显示查询结果
select 字段名 from 表1 
right join 表2 on 条件
right join 表3 on 条件...;
数据备份:
    mysqldump  在Linux终端操作
    完全备份:
       mysqldump -u用户 -p源库名 > ~/xxx.sql
       --all-databases  备份所有库
       库名             备份单个库
       -B 库1 库2..     备份多个库
       库名 表1 表2...  备份指定库指定表
数据恢复:
    恢复单个库
          mysql -uroot -p < 目标库名 xxx.sql
    从所有库备份中恢复某一个库(-one-database)
          mysql -uroot -p --one-database 目标库名 < xxx.sql
     注意:
       1.恢复如果恢复到原库会将表中数据覆盖新增表不会删除
       2.数据恢复时如果恢复库不存在,则必须先创建空库
MySQL的账户管理:
      1.开启mysql的远程连接
        sudo -i
cd /etc/mysql/mysql.conf.d/
subl mysql.cnf
        #bind-address = 127.0.0.1  注释掉
        /etc/init.d/mysql restart
 
    2.添加授权用户
        用root用户登录mysql
   mysql -uroot -p123456
        授权:
grant 授权列表 on 库.表 to “用户名“@”%”
identified by “密码” with grant option
         权限列表:
    all privileges、select、insert
    库.表: *.*  所有库所有表
示例:
    1、添加授权用户tiger,密码123,对所有库的所有表有所有权限
      grant all privileges on *.* to "tiger"@"%" identified by "123" with grant option;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
环境篇之 mysql 的授权和远程测试|学习笔记
快速学习环境篇之 mysql 的授权和远程测试
0 0
10.Mysql数据库导入导出和授权
10.Mysql数据库导入导出和授权
0 0
MySQL账号管理、授权、收权、过期
MySQL账号管理、授权、收权、过期
0 0
MySQL——授权,角色和审计
MySQL——授权,角色和审计
0 0
mysql 数据库授权(给某个用户授权某个数据库)
mysql 数据库授权(给某个用户授权某个数据库)
0 0
mysql角色授权模式案例参考
介绍关于mysql通过角色来授权账号信息的方式
0 0
MySQL授权
对于MySQL权限管理一理解,我以实验的方式分享给大家。
0 0
MySQL创建用户和授权
MySQL创建用户和授权我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。
1110 0
Linux环境 Mysql新建用户和数据库并授权
1.登录mysql mysql -u root -p 2.新增用户 insert into mysql.user(Host,User,Password) values("localhost","xxx",password("*")); 注释:xxx为新建用户名,*为用户密码 3.
949 0
+关注
巴黎香榭
一个有梦想的咸鱼~~~
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载