MySQL_插入

news/2024/7/24 5:08:30 标签: mysql, 数据库

一、 INSERT INTO

第一种方法:

INSERT INTO table_name  (field1, field2,...fieldN)  VALUES  (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;

(1)列出列名 

insert into exam_record (uid,exam_id,start_time,submit_time,score)
values (1001,9001,'2021-09-01 22:11:12', '2021-09-01 22:11:12'+ INTERVAL 50 minute,90),
(1002,9002,'2021-09-04 07:01:02',null,null);

(2)按原表中的顺序插入值,空值填null 

INSERT INTO exam_record 
VALUES (null , 1001, 9001, '2021-09-01 22:11:12', '2021-09-01 22:11:12'+ INTERVAL 50 minute, 90),
(null , 1002, 9002, '2021-09-04 07:01:02', null, null);

备注:Mysql_interval函数与关键字_lcx1252267029的博客-CSDN博客 

 第二种方法:

INSERT INTO table_name (field1, field2,...fieldN) SELECT  (field1, field2,...fieldN) FROM table_name  WHERE ……;

(1)列出列名  

INSERT INTO exam_record_before_2021 (uid, exam_id, start_time, submit_time, score)
SELECT uid, exam_id, start_time, submit_time, score
FROM exam_record 
WHERE submit_time < '2021-01-01';

(2)用null列名 代替 自增列

INSERT INTO exam_record_before_2021
SELECT null,uid,exam_id,start_time,submit_time,score 
FROM exam_record 
WHERE year(submit_time) < 2021

注:select null 返回的列名和值为NULL 

  第三种方法:

 INSERT INTO table_name SET field1=valueA1, field2=valueA2,field3=valueA3...

二、REPLACE INTO

replace into 也是有三种形式:

1. replace into tbl_name(col_name, ...) values(...)

2. replace into tbl_name(col_name, ...) select ...

3. replace into tbl_name set col_name=value, ...

第一种形式类似于insert into的用法, 但是replace into的特殊之处在于当使用replace into插入数据时,会先判断表中是否有重复元素 如果有重复元素,先将重复元素删除,然后插入新的元素 如果没有则直接插入 replace into语句所作用的表一定有主键

第二种replace select的用法也类似于insert select,这两种用法并不一定要求列名匹配,事实上,MYSQL甚至不关心select返回的列名,它需要的是列的位置。例如,replace into tb1( name, title, mood) select rname, rtitle, rmood from tb2;?这个例子使用replace into从?tb2中将所有数据导入tb1中。

第三种replace set用法类似于update set用法,使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1。

前两种形式用的多些。其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。


http://www.niftyadmin.cn/n/735324.html

相关文章

JS 基础: 从 5 种创建对象的方式看 new 操作符的作用与实现

JS 基础: 从 5 种创建对象的方式看 new 操作符的作用与实现 文章目录JS 基础: 从 5 种创建对象的方式看 new 操作符的作用与实现前言正文创建 Object 对象的五种方式使用 Object.create(proto) 创建对象自定义类型函数属性 & 原型创建自定义类型对象自定义类型小结再谈对象…

MySQL_更新

UPDATE table_name SET field1new-value1, field2new-value2 [WHERE Clause] 可以同时更新一个或多个字段。可以在 WHERE 子句中指定任何条件。可以在一个单独表中同时更新数据。 一、更换一个字段 update examination_info set tag "Python" where tag "PY…

JS 基础: JavaScript 中 4 种继承方式 instanceof 实现

JS 基础: JavaScript 中 4 种继承方式 & instanceof 实现 文章目录JS 基础: JavaScript 中 4 种继承方式 & instanceof 实现前言正文1. 借用构造函数的继承2. 借用原型对象的继承3. 创建实例对象作为原型的继承4. 创建未初始化实例作为原型的继承Babel 编译后的继承ins…

Vue2 源码解析: MVVM 双向绑定2 - 虚拟 DOM diff 算法原理深度解析

Vue2 源码解析: MVVM 双向绑定2 - 虚拟 DOM & diff 算法原理深度解析(长文慎入&#xff01;) 文章目录Vue2 源码解析: MVVM 双向绑定2 - 虚拟 DOM & diff 算法原理深度解析(长文慎入&#xff01;)前言回顾&#xff1a;MVVM 实现细化Render Proxy 渲染代理Render Proxy …

MySQL_删除

DELETE FROM table_name [WHERE Clause] delete from exam_record where timestampdiff(minute, start_time, submit_time) < 5 and score < 60;再深一步&#xff1a; 请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中&#xff0c;开始作答时间最早的3条记…

查找HP服务器业务网口

背景&#xff1a;IDC新上hp服务器&#xff0c;业务口连接服务器接入交换机的接口未登记&#xff0c;此服务器已安装esxi&#xff0c;无业务运行。现配置业务IP&#xff0c;但网络不通&#xff0c;需要检查交换机接口配置。 处理过程&#xff1a;1、登录hp服务器管理界面hp服务器…

TS 基础: 运用 TypeScript 进行开发的 5 种方式

TS 基础: 运用 TypeScript 进行开发的 5 种方式 文章目录TS 基础: 运用 TypeScript 进行开发的 5 种方式前言正文1. 使用官方 tsc 命令编译1.1 安装编译器依赖 typescript1.2 指定编译文件1.3 使用 tsconfig.json 配置文件1.4 监听变化实时编译1.5 编译后执行代码2. 使用 ts-no…