• mysql(视图 事务 索引 外键)


    视图

     
    视图本质就是对查询的封装
     
    创建视图(定义视图 起名以v_开头)
    create view v_students as select classes.name as c_name ,students.* from students inner join classes on students.cls_id=classes.id;
     
    查看视图               
    select * from v_students;
     
    删除视图
    drop view v_students;
     
     
     

    事务

     

    事务具有ACID特性:

    原子性(A,atomicity)

    一致性(C,consistency)

    隔离性(I,isolation)

    持久性(D,durabulity)

     
    原子性:事务内所有操作要么都执行,要么都不执行,它是一个不可分割的工作单位
    例如:
    A给B转账,不会因为各种原因A账号已经发生扣款而B账户没有收到加款。
     
     
    一致性:事务开始和结束前后,数据库的完整性没有被破坏
     
    案例:
       对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中aaa和bbb的存款总额为2000元。
     
    隔离性:事务之间不相互影响,多个事务并发访问时,事务之间是隔离的
        事务查看数据更新时,数据所处状态要么是另一事务修改之前或者修改之后的状态,不会查看到中间状态的数据。事务1在修改表的时候提交之前事务2不能修改
     
    持久性:事务完成一手,该事务所对数据库所做的更改会持久的存在数据库中
     
    begin; 开启事务
    update delete insert  更改删除添加数据
    commit;提交事务   
    rollback; 回滚事务,放弃修改
     
     

    索引

    当数据库中数据量很大时,查找数据会变得很慢,
    优化方案:索引
    索引缺点:不便于增删改   时间长占用内存大
    show index from 表名;#查看表的索引
     
    set profiling=1; #开启时间
                          索引名字          表名字(字段)
    create index title_index on students(id);  #创建索引
    desc students;#查看索引
    show profiles; #查看时间
    drop index 索引名称 on 表名;  #删除索引
     
    建表时创建索引
    create table create_index(
    id int primary key,
    name varchar(10) unique,
    age int,
    key (age)
    );
     

    外键

    • 如果一个实体的某个字段指向另一个实体的主键,就称为外键。被指向的实体,称之为主实体(主表),也叫父实体(父表)。负责指向的实体,称之为从实体(从表),也叫子实体(子表)
    • 对关系字段进行约束,当为从表中的关系字段填写值时,会到关联的主表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并报错
    • 添加外键
    alter table students add constraint fk_students_gid foreign key (gid) references grade(gid) on delete cascade;
    alter table students drop foreign key 外键名字;  删除外键
     
  • 相关阅读:
    切片 Slice
    表单与v-model
    vue-内置指令
    go单元测试
    go异常处理
    设计模式
    django数据库事务
    go interface衍生的插件化处理
    goroutine
    drf之序列化
  • 原文地址:https://www.cnblogs.com/heiguu/p/10021089.html
Copyright © 2020-2023  润新知