• DML(插入 更新 删除),附代码理解


    DML是什么

    • 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此开发人员都把加上SQL的SELECT语句的四大指令以“CRUD”来称呼。
    • DML 的主要功能即是访问数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配WHERE指令来过滤数据范围,或是不加WHERE指令来访问全部的数据。
    • DML(数据操作语言)用于操作数据库对象中所包含的数据
      • INSERT  ( 添加数据语句 )
      • UPDATE ( 更新数据语句 )
      • DELETE ( 删除数据语句 )

    INSERT  ( 添加数据语句 )

    • 语法:insert into 表名(列名,列名,列名...) values(值,值,值...); 为数据表的每列进行赋值

    注意事项

    • 插入值 类型必须和 列类型匹配
    • 值长度不能超过 列定义长度
    • 值的顺序和 列顺序对应
    • 字符串和日期型值 必须写 单引号
    • 插入空值 可以写 null

    UPDATE ( 更新数据语句 )

    • 语法: update 表名 set 列名=值,列名=值.... where条件语句;
    • 真正修改的内容是set 后面的
    • Where 的作用是定位 - 选择,限制
    • 如果不加where条件语句的话,会作用在所有的记录上

    DELETE ( 删除数据语句 )

    • 语法:delete from 表名 where条件语句 ;
    • 如不指定则删除该表的所有列数据

    TRUNCATE命令

    • 用于完全清空表数据,但表结构、约束等不变

    TRUNCATE和delete的区别

    • truncate tablename命令将快速删除数据表中的所有记录,但保留数据表结构。
    • 这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的

    最直观是

    • TRUNCATE TABLE是非常快的 ,delete相对慢一些
    • TRUNCATE之后的自增字段从头开始计数了,而DELETE的仍保留原来的最大数值
    • TRUNCATE删除的数据不可恢复,delete删除的数据可以恢复

    代码理解

    -- INSERT 新增数据
    -- 语法: insert into tableName(col1,col2....) values(val1,val2...)
    -- 注意 :1、col是表中的列名,要对,否则报错
    -- 			 2、列的数量和值的数量要保持一致
    -- 			 3、值的类型需要和列的类型保持一致
    -- 			 4、如果表的列比较多,进行新增的时候,每一列都要给值的话,此时表名后面的列名可以省略不写
    -- 					如果采用这样的简写方式,那么表中的每一个类都需要给出具体的值,包括主键,如果主键是自增的话,则null
    -- 			 5、如果给了自增主键值的话,此时则会使用自己自定义的那个值,
    -- 					如果主键重复,则报错,新增数据的话,使用最大值自增作为新数据的主键
    INSERT INTO koubei(name,phone) VALUES('李小明','1237123')
    INSERT INTO koubei(username,pwd,age) VALUES('lanlan','123',12)
    INSERT INTO koubei(username,pwd,name,age,sex,phone,address) VALUES('meimei','mei','梅超风',99,'女','111','桃花岛')
    INSERT INTO koubei VALUES(null,'meimei','mei','梅超风',99,'女','111','桃花岛')
    INSERT INTO koubei(username,pwd) 
    VALUES('aa','aa'),('bb','bb'),('cc','cc')
    
    
    
    
    -- 删除 DELETE
    -- 语法:delete from tableName where col1=VALUE1 AND col2 = VALUE2
    -- where 后面的是条件语句,限制sql语句作用的条数
    -- 只要满足条件的,都会被删除
    
    
    DELETE from koubei    -- 删除表中的所有的数据
    -- 删除id为103的那条数据
    DELETE from koubei where id=103
    
    
    -- 删除姓名为梅超风的那个人的信息
    DELETE from koubei WHERE name='梅超风'
    
    
    -- 删除年龄大于30的
    DELETE from koubei WHERE age > 30
    
    
    --  删除年龄在50-90之间的
    DELETE from koubei WHERE age>= 50 AND age <= 90
    DELETE from koubei WHERE age BETWEEN 50 AND 90
    
    
    -- 删除地址是北京或者上海的
    DELETE from koubei WHERE address='北京' OR address = '上海'
    
    
    
    
    -- 修改:update
    -- 语法:update tableName set col=val,col=val where ....
    -- 修改密码
    update koubei set pwd = '123'  -- 如果没有条件,修改所有数据
    
    
    -- 如果要修改具体的某些数据的话,此时则必须加上条件 
    -- 修改meimei2的密码为 abc
    UPDATE koubei set pwd='abc' WHERE username='meimei2'
    
    
    -- 年龄大于30岁,性别为男的所有人的地址修改为上海,电话修改为123
    UPDATE koubei set address='上海',phone='123'
    WHERE age>30 AND sex = '男'
    
  • 相关阅读:
    【数据结构】查找总结
    Codeforces Round 916 (Div. 3)(A~E题解)
    【Vue 基础知识】v-for的使用和注意事项
    C++:重定义:符号重定义:变量重定义(三):解决变量重定义(声明extern外部变量)
    k8s相关的概念
    halcon学习和实践(颜色筛选)
    腾讯云AMD服务器标准型SA4实例CPU性能测评
    Java,集合框架,关于Map接口与Collections工具类
    js坑之数字型字符串比对只比较第一位数字
    修复SpringBoot Actuator未授权访问遇到的问题
  • 原文地址:https://blog.csdn.net/m0_73030012/article/details/126976511