MySQL中的insert set 和 insert values用法

目录
  • insert set 和 insert values用法
    • insert values
    • insert set
  • mysql 语法 insert into set

insert set 和 insert values用法

insert values

  • 优点:可以批量插入;
  • 缺点:单条执行效率低。<适合批量插入>
insert into table(col1,col2,col3) values('val1','val2','val3');

insert set

  • 优点:执行效率高;
  • 缺点:每次只能插入一条数据。<适合单条插入>
insert into table set col1='val1',col2='val2',col3='val3';

mysql 语法 insert into set

MySQL 对于不同种类的日期和时间有很多的数据类型,比如YEAR和TIME。如果只需要记录年份,则使用YEAR类型即可;如果只记录时间,只需使用TIME类型。如果同时需要记录日期和时间,则可以使用TIMESTAMP或者DATETIME类型。

由于TIMESTAMP 列的取值范围小于DATETIME的取值范围,因此存储范围较大的日期最好使用DATETIME.

  • TIMESTAMP 也有一个DATETIME 不具备的属性。
  • 默认的情况下,当插入一条记录但并没有指定TIMESTAMP 这个列值时, MySQL会把TIMESTAMP列设为当前的时间。
  • 因此当需要插入记录同时插入当前时间时,使用TIMESTAMP是方便的,另外TIMESTAMP在空间上比DATETIME 更有效。

《当需要插入记录同时插入当前时间时,使用TIMESTAMP是方便的》

理解了一下这句话的含义,百度查了一下mysql支持这样的语法, insert into set

mysql> insert into tmp14 values(1);
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> insert into tmp14 set id=1;
Query OK, 1 row affected (0.00 sec)
 
mysql> select * from tmp14;
+------+---------------------+
| id   | td                  |
+------+---------------------+
|    1 | 2022-03-31 16:28:07 |
+------+---------------------+
1 row in set (0.00 sec)

在mysql5.7中无法设置为两个列设置为timestamp类型。

mysql> create table tmp14(id int,td timestamp,td2 timestamp);
ERROR 1067 (42000): Invalid default value for 'td2'
 
mysql> alter table tmp14 add column td2 timestamp;
ERROR 1067 (42000): Invalid default value for 'td2'

insert into set语法在postgresql中是不支持的。

[txadmin@node2 ~]$ psql
 
txdb_default=# create table tmp14(id int,td timestamp);
CREATE TABLE
txdb_default=#  insert into tmp14 set id=1;
ERROR:  syntax error at or near "set"
位置:  insert into tmp14 set id=1;
                         ^

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

    MySQL数据库insert和update语句引:用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT.UPDATE以及DELETE. 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就 是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT.UP

  • mysql插入数据INSERT INTO SET的优势

    往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2-) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = "INSERT INTO products (p_title,p_price.........) VALUES ('$p_title','$p_price'............)"; 缺点是当这个表的列特别多时,会特别乱. 1.前后需要对应,容易写错顺序. 2.后期改动(增加列,减少列

  • mysql insert语句操作实例讲解

    insert的语法 复制代码 代码如下: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]     [INTO] tbl_name [(col_name,...)]     VALUES ({expr | DEFAULT},...),(...),...     [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIORITY | DELAYED | HIGH

  • 浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* to c

  • MySql中的IFNULL、NULLIF和ISNULL用法详解

    今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 使用= 的null 值对比通常是错误的. isnull() 函数同 is nul

  • mysql中find_in_set()函数的使用及in()用法详解

    MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以","分隔 如 (1,2,6,8,10,22) 查询字段(strlist)中包含(str)的结果,返回结果为null或记录 假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间. 一个字符串列表就是一个由一些被 ',' 符号分开的子链组成的字符串.如果第一个参数是一个常数字符串,而第

  • MySQL中的join以及on条件的用法解析

    目录 join的用法:连接 on的用法:添加约束 在数据库中验证 MySQL中连接表时join和on的区别 MySQL中 join的用法:join具有 连接的作用,即当两个或者两个以上的表有关系时,需要用join来连接这些相关的表,来处理或分析数据: join的用法:连接 举例先看看,就懂了: 例如: 有一个表叫做stu,一个表叫class,stu join class会生成一个新的表, 我们执行: stu join class 后,新的表成为: 通过上面的例子总结一下: join后的列名是两个

  • MySQL中any、some和all的用法实例

    目录 一.any,some,all all 逻辑运算符 any 和 some 运算符 总结 一.any,some,all any,some,all 是 MySQL 当中的逻辑运算符,作用是将子查询返回的单列值的集合与查询的单个值作比较. any,all,some 前面需跟比较运算符(>, >=, <, <=, !=, =,但是这里的单个使用 = 号的情况只有子集的数据是单个值或者子集数据全部相同才能符合情况,如果子集是多个不同的就不满足,根据实际情况使用) mysql> se

  • MySQL中常见的八种SQL错误用法示例

    前言 MySQL在2016年仍然保持强劲的数据库流行度增长趋势.越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来.但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况. 阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题.现将<ApsaraDB专家诊断报告>中出现的部分常见SQL问题总结如下,供大家参考. 1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方. 比如对于下面简单的语句

  • python 在mysql中插入null空值的操作

    python在mysql中插入null空值 sql = "INSERT INTO MROdata (MmeUeS1apId) VALUES (%s)"%'NULL' %s没有引号,可以将"null"中null写进数据库,达到NULL值效果. %s加引号 values就是字符串,导致类型错误,插入错误. sql = "INSERT INTO MROdata (MmeUeS1apId) VALUES ('%s')"%'NULL' 补充:数据库中的空值

  • Mysql中的触发器定义及语法介绍

    目录 1.定义: 2.语法: 3.删除触发器 4.查询触发器 5.触发器类型OLD和NEW的使用 1.定义: 触发器和存储过程相似,都是嵌入到 MySQL 中的一段程序.触发器是由事件来触发某个操作.当数据库执行这些事件时,就会激活触发器来执行相应的操作.这些事件称为触发条件,在MySQL中,有UPDATE,INSERT,和DELETE. 在MySQL中,目前只有UPDATE,INSERT,和DELETE这三种操作,才会触发触发器,其他操作都不支持触发器.这和Oracle中的触发器有很大的区别,

  • MySQL中Replace语句用法实例详解

    目录 前言 一.replace into函数 二.replace into .insert ignore 和 insert into的区别 三.replace函数 总结 前言 replace into平时在开发中很少用到,这次是因为在做一个生成分布式ID的开源项目,调研雅虎推出的一个基于数据库生成唯一id生成方案:flickr 碰到的一个知识盲点,仅以此篇记录一下. 一.replace into函数 表结构 CREATE TABLE `id_generator` ( `id` bigint(20

  • MySQL中distinct与group by语句的一些比较及用法讲解

    在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC).           DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已.所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是

随机推荐