您现在的位置是:首页 > 文章详情

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

日期:2018-08-01点击:368
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;

原文链接:https://yq.aliyun.com/articles/622177
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章