• 数据库的增删改(DML)


    插入操作:

    原组值得插入

            最基本的插入方式

            insert  into  tablename  values(val1,val2,....)

            如果表名之后没有列,那么只能将所有的列都插入

            insert  into  tablename  (col1,col2,....)values(val1,val2,....)

            可以指定向哪些列中插入数据,要遵从表的规范

    查询结果的插入

            创建表的其他方式

            create  table  tablename1  as  select  *  from  tablename2

            复制表的结构和数据,但不会复制里面的约束

            create  table  tablename1  as  select  *  from  tablename2  where 1=2

            复制表的结构

    删除操作:

            删除满足条件的数据

            delete  from  tablename  where  条件

            把整张表的数据全部清除

            delete  from  tablename  

            tuncate跟delete有所不同,delete在进行删除的时候经过事务,而truncate不经过事务,一旦删除就是永久删除,不具备回滚的操作             

            truncate  tablename        效率高,但容易发生误操作,不建议使用

    更新操作:

            update  tablename  set  col1 = value1 , col2 = vlaue2  where  条件

            可以更新或修改满足条件的一个列或者多个列

    增删改是数据库常用的操作,在进行操作的时候都需要事务的保证

            事务变得非常关键:

            最主要的目的是为了数据的一致性

            如果同一份数据,在同一个时刻只能有一个人访问,就不会出现数据错乱的问题,但是在现在项目中,更多的是并发访问,并发访问的同时带来的是数据的不安全,也就是不一致性

            如果要保证数据的安全,最主要的方式就是加锁的方式MVCC

            事务的延伸:

                    最基本的数据库事务

                    声明事务

                    分布式事务

            为提高效率,可能多个操作会在同一个事务中执行,那么就有可能部分成功,部分失败,基于这种情况就需要控制事物的控制

            如果不保证事务的话,会造成脏读,不可重复读,幻读

  • 相关阅读:
    【Hack The Box】Linux练习-- OpenAdmin
    Python面向对象编程
    LV.12 D12 GPIO实验 学习笔记
    AI赋能目标跟踪 智算加速“视”不可挡
    掌握Katalon Studio 导入 swagger 接口文档,接口测试效率提升100%
    熬夜做了几晚动画解说重构:提炼函数
    c语言 const
    Docker--harbor私有仓库部署与管理
    iapp模块的使用教程,iapp怎么调用api
    Node.js 21 版本已发布!
  • 原文地址:https://blog.csdn.net/qq_58000413/article/details/127134709