mysql基础知识(2)

外键的使用

  • 外键的概念:

    一个表的主键在另外一个表中出现,在另外一个表中称为外键

  • 作用:表间的数据插入、更新的时候的一种约束

  • 创建外键:

    • 已经存在的表建立外键:

      alter table 表名 add foreign key (当前表的字段) references 表名(字段)

    • 创建表的时候建立外键

      create table goods_test ( id int primary key auto_increment, name varchar(150) not null, cate_id int unsigned not null, brand_id int unsigned not null,
      ? foreign key (cate_id) references goods_cates(id),
      ? foreign key (brand_id) references goods_brands(id)
      ? );

  • 删除外键:

    • 查看外键名称: show create table 表名;
    • alter table 表名 drop foreign key 外键名;

视图

  • 视图: 虚拟表,仅仅支持查询,把复杂SQL语句的功能封装起来的一个虚表

  • 创建视图

    create view 视图名 as select .....

    注意: 视图名一般是以v_ 开头

  • 查询视图

    show tables;

  • 使用视图

    视图只能用来查询

    查询时和使用普通表效果一致

    select * from v_goods_info;

  • 删除视图

    drop view 视图的名称;

事务

  • 事务概念:事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么全成功,要不全失败

  • 作用:要么完全地执行,要么完全地都不执行

  • 事务的特征 ACID:

    • A, 原子性 ,事务的操作是原子的,不能分隔
    • C ,一致性,双方的结果要一致
    • I,隔离性, 同一时间只有一个事务在操作
    • D, 持久性, 操作完成结果持久不变
  • 使用步骤

    • 开启事务

      begin;

    • 操作数据库

      insert update delete

    • 确认修改

      commit;

    • 回滚

      rollback;

索引

  • 索引作用:提升查询效率

  • 索引的使用:

    • 查看索引 show index from 表名

    • 创建索引: crete index 索引名 on 表名(表中的字段名(字段长度))

      如果字段是字符串类型,需要指定长度

      如果字段不是字符串类型,可以不指定长度

    • 删除索引: drop index 索引名 on 表名;

用户管理

  • 创建用户

    create user ‘用户名‘@‘主机‘ identified by ‘密码‘

  • 授权

    • 权限:create drop select insert update...
    • 所有权限:all privileges;

    grant 权限 on 数据库.表 to ‘用户名‘@‘主机‘;

    • 查询权限 show grants for ‘用户名‘@‘主机名‘
  • 刷新权限

    flush privileges;

  • 修改用户权限

    grant 权限 on 数据库.表 to ‘用户名‘@‘主机’ with grant option;

  • 修改用户密码

    • 知道密码,改新密码

      alter user ‘用户名‘@‘主机’ identified by ‘新密码‘;

    • 忘记密码,重置密码

      • 停止服务,设置跳过正常验证,设置密码为空
      • 设置正常验证模式,重启服务,用空密码登录,改成新密码
  • 删除用户

    drop user ‘用户名‘@‘主机‘;

    delete from user where user=‘‘ and host=‘‘

相关文章