当前位置: 首页 > news >正文

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

SQL语句DML

数据库DML操作

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

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

1. 插入数据

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

  • # 全列插入: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 条件;

  • # 下面该语句表示更新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语句删除

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

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

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

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

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

物理删除和逻辑删除

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

逻辑删除:

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数学建模学习(125):使用Python实现Borda计数法进行多标准决策分析
  • 【嵌入式开发之网络编程】TCP端口和UDP端口
  • 《计算机网络-期末模拟卷》
  • Android如何高效的加载大型位图
  • ELK基础搭建
  • 22.计算球体积
  • 二叉树的介绍
  • 2024.8.26
  • 景联文科技:专业人像采集服务,助力人像采集在多领域应用
  • npm阿里云制品仓库
  • C++竞赛初阶L1-14-第六单元-数组(31~33课)542: T456472 数组逆序重存放
  • 使用 ECharts 进行数据可视化
  • Python单例模式:深入解析与应用
  • vue+uniapp
  • 如何使用ssm实现ssm框架的购物网站+vue
  • 《剑指offer》分解让复杂问题更简单
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • ➹使用webpack配置多页面应用(MPA)
  • Angular 响应式表单 基础例子
  • Java多线程(4):使用线程池执行定时任务
  • JAVA之继承和多态
  • js中forEach回调同异步问题
  • Python进阶细节
  • 前端攻城师
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 找一份好的前端工作,起点很重要
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • Java总结 - String - 这篇请使劲喷我
  • ​香农与信息论三大定律
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #pragma data_seg 共享数据区(转)
  • #QT(QCharts绘制曲线)
  • $jQuery 重写Alert样式方法
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Note)C++中的继承方式
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)计算机毕业设计大学生兼职系统
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ***原理与防范
  • *Django中的Ajax 纯js的书写样式1
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net core 依赖注入的基本用发
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET中使用Redis (二)
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [Debugger]调试Arm设备
  • [Django 0-1] Core.Email 模块
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [FBCTF2019]RCEService (PCRE回溯绕过和%a0换行绕过)
  • [hdu 3746] Cyclic Nacklace [kmp]
  • [HDU5685]Problem A
  • [hibernate]基本值类型映射之日期类型
  • [Leetcode] Permutations II