Mysql: 表中数据的增删改


每博一文案

林清玄曾说,我要开花,是为了完成,我作为一株花的庄严生命,不管你们
怎么看我,我都要开花。人生在世,无论我们怎么迎合别人,都不可能让所有
人都满意,得到每个人的喜欢,你好不好,总有误解你,你真不真,总有人不领情。
对你有意见的人,不管你怎么迁就退让,他都不会满意,不愿意相信你的人,无论你怎么解释,
他都不会相信,不是所有人都值得,我们浪费时间和精力争辩的。这辈子不求人人满意,
但求问心无愧。汪曾祺在人间草木中写道,栀子花粗粗大大。又香得掸都掸不开,于是文雅人不取,
以为品格不高。栀子花说,去你的,我就是要这样香,香得痛痛快快,你们管得着吗 !
别人怎么说是别人的事,我们要做的就是按照自己的意愿去生活,与其在意别人
的看法,每天小心翼翼。不如做好自己的事,问心无愧,活得坦荡,自然,很喜欢这样一句话,
单单是生活就让人头疼不已,若是在乎别人的眼光,那就是有点本末倒置了。——————   一禅心灵庙语

文章目录

  • 每博一文案
  • 为表插入数据内容
    • 第一种方式:
    • 第二种方式:
    • 插入`NULL`
    • 同时插入多条数据
    • 插入默认值
    • 将查询结果的数据插入到表中
  • 为表更新数据内容
    • 省略筛选条
    • 件全部更新
    • 使用 NULL 更新
    • 多列内容的更新
  • 为表删除数据内容
  • MySQL 8.0 新特性: 计算列
  • 总结:
  • 最后:

为表插入数据内容

我们知道了如何创建表后 Mysql: 创建表 和 管理表_ChinaRainbowSea的博客-CSDN博客 ,就该为表插入数据,因为只有当表中存在数据,该表才有意义可言,不然就是 一个空空如也的箱子,没有食物。

使用关键字 INSERT 插入数据

对于INSERT数据的插入存在这多种方式,这里为大家介绍如下方式:

首先我们先创建一个表 emp1 用于对表数据的插入

CREATE TABLE IF NOT EXISTS emp1(id INT,`name` VARCHAR(15),hire_date DATE,salary DOUBLE
);

第一种方式:

省略掉对于字段名(列)的声明,一条一条的为表插入数据内容

注意:

1. 这种方式的插入数据,因为没有手动声明字段,所以自动是按照默认表的列(字段)中的顺序插入数据的,
所以一定要按照默认表中的列顺序插入数据(值的顺序必须和数据表中字段定义时的顺序相同),不然,轻则会因为数据类型的自动转换导致数据发生截断,导致数据错误,重则报错插入表内容失败。
2. 当你插入的表中的内容是字符串,时间日期时,需要使用单引号括起来。
3. 这种方式的添加数据,当我们省略了添加的列(字段)内容,并不会置为NULL,而是报错。因为是按照默认表的列顺序插入数据的,所以我们不可以省略掉任何一个列(字段)的数据,必须一次性按照默认表的顺序全部把数据都插入进去,不然是会报错的。

格式如下

INSERT INTO 表名
VALUES (列1值, 列2的值, 列3的值);

例如: 为表emp1 添加数据

SELECT *
FROM emp1;

INSERT INTO emp1
VALUES (1,'Tom','2000-12-21',9000);

注意没有手动声明字段,一定要按照默认的字段顺序添加表的数据内容

查看是否添加成功

SELECT *
FROM emp1;


当没有按照表中默认顺序插入数据时的错误示范

INSERT INTO emp1
VALUES (2,34000,'2000-12-21', 'Jerty');
/* 这里默认的值中 的 name varchar 类型插入 34000salary  int 类型插入 Jerty 无法转换 报错 */



第一种方式:如果省略了,表中列的任何一个数据内容都是会报错的,错误示范如下:

INSERT INTO emp1
VALUES (2,'Jerty');
/* 这里省略了默认值中的 hire_date, salary
的内容 */


第二种方式:

手动声明字段,按照声明的字段顺序插入数据

推荐使用这种方式,因为这种方式的插入,可读性高,不容易出错

注意:

1. 我们手动声明了字段的插入顺序,只要按照这个声明的顺序插入数据就可以了。注意手动声明字段的个数与插入的数据的个数是要一致的。不然无法插入成功。
2. 使用这种手动声明字段插入数据的方式,当我们没有声明的字段,不会插入到内容,如果该字段中设定了初始值,就默认是初始值的内容,如果该字段中没有设定初始值并且没有约束条件(NOT NULL),则默认设置为 NULL。
3. 如果一个字段约束条件设定了 NOT NULL, 你省略了插入数据,或者插入数据 NULL,是会报错的。

格式如下:

INSERT INTO 表名 (列名1, 列名2, 列名3)
VALUES (数据内容1, 数据内容2, 数据内容3);

例子: 为表emp 插入第二条数据

INSERT INTO emp1 (id, `name`, salary, hire_date)
VALUES (2,'Jerry', 60000, '1999-9-9');


当我们省略一些插入的字段名(列),存在默认值,插入默认值,没有设定默认值,也没有 NOT NULL 约束条件,则默认是 NULL

例如,为表 emp1 插入数据,省略 字段salary

INSERT INTO emp1 (id,`name`, hire_date)  /* name 与关键字冲突了,需要使用上着重号*/
VALUES (3,'Shk', '2001-9-1');


注意: 当声明的是一个字段,插入一个字段的数据内容,其他是字段的内容,存在默认值,则是默认值,不存在默认值并且没有约束条件NOT NULL 则默认添加的是 NULL,如果存在约束条件NOT NULL 则会报错,因为该约束条件不允许添加 NULL 数据。这一点大家需要注意,因为很多初学者会认为,这么做: 当使用 SELECT 查询表时 ,发现有些字段是 NULL,就会使用 INSERT插入数据的方式,更改字段为 NULL 的内容,这种做法是错误的,只会得到更多的 NULL值,如下面的结果,更改数据是要使用UPDATE的方式.

INSERT INTO emp1 (`name`)
VALUES ('TM');  /* 其他没有声明的字段,其插入是数值,要么是NULL,要么是默认值*/


插入NULL

INSERT 语句中想要给某一列赋予 NULL 的内容,可以直接在VALUES 子句的值清单中写入 NULL

例如,为表emp1 添加数据其中的字段 hire_datesalary 设都为 NULL

INSERT INTO emp1 (id, `name`, hire_date, salary)
VALUES (4,'Jim',NULL,NULL);


同时插入多条数据

INSERT 语句可以同时向表中插入多条记录,插入时指定多个值列表,每个值列表之间用逗号分隔开,基本语法格式如下:

INSERT INTO 表名 (列名1, 列名2, 列名3)
VALUES (数据内容1, 数据内容2, 数据内容3),(数据内容1, 数据内容2, 数据内容3),(数据内容1, 数据内容2, 数据内容4);

例如: 为表 emp1 中插入多条数据

INSERT INTO emp1 (id, `name`, hire_date, salary)
VALUES   (5,'小华', '2022-9-8', 10000),(6, '小红', '2022-8-9', 8000),(7, 'KiKi', '1990-1-1', 60000);


或者一条一条的将多条数据一个一个的插入,如下:

INSERT INTO emp1(id, `name`, hire_date, salar)
VALUES (5,'小华', '2022-9-8', 10000);INSERT INTO emp1(id, `name`, hire_date, salar)
VALUES (6, '小红', '2022-8-9', 8000);INSERT INTO emp1(id, `name`, hire_date, salar)
VALUES (7, 'KiKi', '1990-1-1', 60000);

使用INSERT 同时插入多条记录时,Mysql 会返回一些在执行单行插入时没有的额外信息,这些信息的含义如下:

  • Records :表明插入的记录条数
  • Duplicates :表明插入时被忽略的记录,原因可能时这些记录包含了重复的主键值。
  • Warnings : 表明有问题的数据值,例如发生数据类型的转换
一个同时插入多行记录的 INSERT 语句等同于多个单行插入的 INSERT语句,但是多行的 INSERT 语句在
处理过程中效率更高。因为 MySQL 执行单条 INSERT 语句插入多行数据比使用多条 INSERT 语句快,
所以在插入多条记录时最好选择使用单条 INSERT 语句的方式插入

插入默认值

通过显式的方式插入默认值 推荐 ,可读性高

我们还可以向表中插入默认值(初始值), 我们使用 INSERT 中的 VALUES 子句中指定 DEFAUlT 关键字(默认值)

格式如下:

INSERT INTO 表名 (列名1, 列名2, 列名3)
VALUES (数据内容1, 数据内容2, DEFAULT);  /* DEFAULT 默认值 */

我们先将表emp1 中的 salary 的初始值设为 0 ,具体如何设定大家可以移步到

Mysql: 表中数据的增删改相关推荐

  1. MySQL对于表中数据的增删改查

    增删改查(curd) curd的解释: 代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete) 查询基本使用 查询所有列(表中所有字段) select * fr ...

  2. 8、mysql数据表中数据的增删改

    已经介绍了数据表的创建.修改和删除,接下来介绍一下如何往数据表中添加数据.修改数据.删除数据 添加数据 # 默认给表中所有字段添加数据,要保证添加的数据列和字段列一致 insert into user ...

  3. 实现对mysql增删改查_Java语言实现对MySql数据库中数据的增删改查操作的代码

    简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址( ...

  4. SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例

    SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例 开源地址:https://gitee.com/jfkjrym/demo.git evan原创内容!evan原 ...

  5. SQL语句对表中数据进行增删改操作[DML]

    文章目录 前言 一.SQL添加数据语句 二.SQL修改数据语句 三.SQL删除数据语句 总结 前言 整理一下SQL语句中增删改查操作的语句用法.先说一下简单的增删改操作,查询的话分类比较多,分开写.. ...

  6. [转]清除mysql表中数据

    delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内 ...

  7. 表、数据的增删改查(所有列、指定列、添加常量、字段起别名、和并列、去除重复、条件查询、比较、判断空、模糊查询)...

    表的增减改查 desc tablename;查看表结构 drop table name;删除表 字段增改删:格式 alter table tablename add column name varch ...

  8. 怎么删除mysql表中数据_如何删除数据库表中的数据?

    删除数据库表中数据有两种方式: 第一种:delete from tablename where 1=1; 第二种:truncate  table tablename; 区别是:第二种清空表数据比较及时 ...

  9. MySQL基础之数据的增删改查

    MySQL的增删改查: 1增加数据:INSERT INTO 表名 VALUES(值); (注意:每个具体数据用逗号分隔,且字段必须和输入数据的次序一一对应) 2删除数据:DELETE FROM 表名 ...

最新文章

  1. 2010上半年网络规划设计师下午试卷Ⅱ与论文写作要点
  2. 基于深度学习的场景分割算法研究综述
  3. python json模块详解_深入解析Python编程中JSON模块的使用
  4. curl put方法 测试http_HTTP接口调试利器!4.8万Star的HTTP命令行客户端!
  5. Docker 常用命令,还有谁不会?
  6. android 打印流程图,Android实现Activities之间进行数据传递的方法
  7. Android自定义Button样式(水平滑动多个Button)
  8. 搜索的php mysql代码生成器_PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)...
  9. Linux下配置两个或多个Tomcat启动
  10. 华为手机图标怎么变小_华为手机怎么设置图标由大变小
  11. b站python_python学习 —— B站抢楼原理
  12. 我们都被GitHub出卖了!逃跑吧兄弟!
  13. 斐波那契数列 Java实现
  14. 性能调优之JMH必知必会1:什么是JMH
  15. 什么手机抢票软件安全靠谱
  16. Qt 的网络通信(TCP)
  17. 世嘉MD游戏开发【九】:Sprite精灵
  18. Android 音频设备管理
  19. 农村污水处理项目中管网建设过程应注意哪些内容?
  20. 机加工图纸有英语看不懂?最全的翻译都在这

热门文章

  1. excel填充序列_EXCEL里如何快速填充成千上万个序号呢?
  2. VMware 新建虚拟机
  3. 携程移动App架构优化之旅
  4. 【JS面试题】将数据转换树形结构
  5. 【WC2016模拟】最假女选手
  6. 【体感手势】口袋模式或者防误触
  7. MYSQL 清除表中数据
  8. PS 旋转任意角度的照片
  9. Centos6下RocketMQ集群部署记录
  10. 【极简spark教程】spark聚合函数