MySQL 系统学习系列 - SQL 语句 DML 语句的使用《MySQL系列篇-02》

embedded/2024/10/16 0:17:20/

SQL语句DML

数据库DML操作

0. MySQL中大小写问题[tip]:

  • 1.数据库名与表名是严格区分大小写的 (window不区分)
  • 2.表的别名是严格区分大小写的(如stu as s)(window不区分)
  • 3.列名忽略大小写
  • 4.变量名也是严格区分大小写

1. 插入数据

  • 其中分别可以使用全列插入、缺省插入与批量插入三种方式

  • sql"># 全列插入:INSERT INTO 表名 VALUES(v1,v2,v3,...)INSERT INTO stu VALUES(1,'kong',18);INSERT INTO stu VALUES(2,'deng',18);# 缺省插入 [即直插入指定列的数据]# INSERT INTO 表名(c1,c2,c3,..) VALUES(v1,v2,v3,..)  [其中c1等是指定所要添加数据的列-主要约束问题]# 使用缺省插入需要主要有些列是否为非空的INSERT INTO stu(id,name) VALUES(0,'wang');# 批量插入 [全列插入多行数据]# 全列批量插入:INSERT INTO 表名 VALUES(v1-1,v1-2,...),(v2-1,v2-2,...),.......INSERT INTO stu VALUES(0,'v1',1),(0,'v2',2),(0,'v3',3);# 缺省值批量插入:INSERT INTO 表名(c1,c2,..) VALUES(v1-1,v1-2,..),(v2-1,v2-2,..),....INSERT INTO stu(id,name) VALUES(0,'id1'),(0,'id2');# 批量插入中也可以存在全列插入与缺省插入两种方式,使用方法与上面的无异
    

2. 更新数据update

  • 更新数据也可以理解为是修改数据:update 表名 set 列1=值1,...... where 条件;

  • sql"># 下面该语句表示更新stu表中的name为kong的数据为new_kongUPDATE stu SET name='new_kong' where name='kong'; # 同时修改多列UPDATE stu SET name='kong',age=3 WHERE name='new_kong';# 当然上面的语句也可以不加 where 条件语句,不过风险会比较大
    

3. 删除数据

  • delete语句删除

    • sql"># 清空表中所有的数据:DELETE FROM 表名DELETE FROM stu; # 清空stu表中的所有数据# 清空表中符合条件的数据:DELETE FROM 表名 WHERE 条件DELETE FROM stu WHERE age<7; # 清空stu表中所有age小于7的数据
      
  • truncate语句删除

    • truncate也是删除数据,但是不可以加where(即只能清空表中所有的信息),执行效率要比delete要高

    • sql"># 清空表中所有的数据:TRUNCATE FROM 表名TRUNCATE TABLE stu; # 清空stu表中的所有数据
      
  • delete与truncate语句的区别

    • delete可以加where条件判断使用,来指定删除符合某一个条件的数据 - 而truncate不能加where语句
    • truncate比delete效率要高 缺:不能加where

  • [扩]删除表(整张表都会被删除):drop table 表名

物理删除和逻辑删除

物理删除: 就是将数据从数据库中彻底删除(delete操作属于物理删除,物理删除的数据无法恢复,对于一些重要的数据,还是建议使用逻辑删除)

逻辑删除:

  • 逻辑删除本质是修改(UPDATE)操作,对于重要数据表,增加一个isDelete字段,一般默认为0(没有被删除的的意思),该字段逻辑上表示该条数据是否被删除,真实情况是在数据库中本条数据还存在

    • sql">create table student(id int not nul1 auto_increment primary key,age int,name char(20).isDelete bit default 0engine=innodb defaut charset=utf8;
      )
      
  • 也可以理解为是添加了一个回收站,并非是真正的删除


http://www.ppmy.cn/embedded/102714.html

相关文章

Python网络编程:Web框架基础(Flask/Django)

Python作为一种功能强大且易于使用的编程语言&#xff0c;广泛应用于Web开发领域。Python的丰富生态系统中&#xff0c;有两个非常流行的Web框架&#xff1a;Flask和Django。本博文将详细介绍这两个框架的基础知识&#xff0c;并通过综合示例展示如何使用它们构建Web应用。 一…

qt 获取文件夹下及子文件夹所有exe文件

qt 获取文件夹下及子文件夹所有exe文件 &#xff0c;直接上代码 void findExeFiles(const QString &startDirectory) { QDir dir(startDirectory); // 文件过滤器&#xff0c;只选择.exe文件 dir.setFilter(QDir::Files | QDir::NoDotAndDotDot); dir.setNam…

如何从索尼相机/ SD卡恢复已删除的照片/视频

如果您不小心从 Sony 相机或 SD 卡中删除了照片或视频&#xff0c;仍有机会恢复它们。更快的方法是使用专用的恢复工具&#xff0c;例如奇客数据恢复&#xff0c;它将恢复所有丢失的文件。 如果您已从Sony相机/ SD卡/ Handycam / Cyber shot / Xperia设备中删除了照片或视频&a…

代码随想录Day 23|回溯Part02,39.组合总和、40.组合总和Ⅱ、131.分割回文串

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 第七章 回溯算法part03一、题目题目一&#xff1a; 39. 组合总和解题思路&#xff1a;回溯三部曲剪枝优化小结&#xff1a; 题目二&#xff1a;40.组合总和Ⅱ解题思路&#xff1a;回溯三部曲 题目…

Python进阶02-面向对象高级

零、文章目录 Python进阶02-面向对象高级 1、面向对象的三大特性 面向对象的三大特性&#xff1a;封装、继承、多态 ① 封装&#xff1a;将属性和方法书写到类的里面的操作即为封装&#xff0c;封装可以为属性和方法添加私有权限。② 继承&#xff1a;子类默认继承父类的所有…

全场景——(五)Modbus 协议细节

文章目录 一、Modbus协议概述二、Modbus寄存器&#xff08;存储区&#xff09;2.1 存储区类型2.2 协议地址模型 三、Modbus常用功能码四、Modbus协议类型五、Modbus报文帧5.1 Modbus ASCII 模式5.2 Modbus RTU 模式5.3 串行报文帧总结&#xff1a; 六、Modbus 差错校验6.1 LRC校…

代码零风险:深信达SDC沙盒如何革新源代码防泄漏

当前信息技术迅速发展的环境下&#xff0c;企业对源代码安全的高度重视。源代码作为企业最宝贵的资产之一&#xff0c;其安全性直接关系到企业的竞争力和市场地位。源代码泄露不仅可能导致企业技术优势的丧失&#xff0c;还可能引发严重的经济损失和法律风险。因此&#xff0c;…

常用git命令

目录 1、常用git命令 2、git merge 和 git rebase 的区别 3、获取远程仓库数据命令 git fetch 和 git pull的区别 4、git reset 和 git revert 的区别 1、常用git命令 git init //初始化本地仓库 git status //查看文件状态git diff //显示工作目录中当前文件…