mysql中如何使用insert
插入语法
【INTO】tbl_name [(col_name, ...)] 【ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或者: INSERT [LOW_PRIORITY |延迟 | HIGH_PRIORITY] [忽略] [INTO] tbl_name SET col_name={expr | HIGH_PRIORITY] DEFAULT}, ... 【ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIORITY | HIGH_PRIORITY] [忽略] 【INTO】tbl_name [(col_name,...)] 【选择... 【ON DUPLICATE KEY UPDATE col_name = expr, ... ] 如果列列表和 VALUES 列表都是空列表,则 INSERT 将创建一行,并将每列设置为默认值: INSERT INTO tbl_name ( ) VALUES(); 假设worker表只有name和email,插入一条数据: insert intoworkervalues("tom","tom@yahoo.com" ); Insert批量多条数据: 插入worker value('tom','tom@yahoo.com'),('paul','paul@yahoo.com'); 给定要赋值的列,然后列出该值的插入数据: insert into work(name)values('tom'); insert intoworker(name)values('tom'),('paul'); 使用set插入数据: insert into worker set name='tom'; SET 子句中的未命名行被分配一个默认值。无法使用这种形式的 INSERT 语句插入多行。 表达式可以引用值表中先前设置的任何列,例如 INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); > <--但不是这样的: 使用 INSERT…SELECT 语句插入并选择 fr其他表还可以。 --如果每列都有数据: insert into tbl_name1 select col3 ,col4 from tbl_name2; 查询不能包含ORDER BY子句,并且INSERT语句的目标表不能出现在SELECT查询部分的FROM子句中。 ON DUPLICATE KEY UPDATE 如果指定ON DUPLICATE KEY UPDATE,并且插入行会导致重复值出现在UNIQUE索引或PRIMARY KEY中,则执行UPDATE的老排。 - 假设a、b为唯一索引,且表中没有1、2等行,则正常插入数据。当存在冲突时,c列的值被更新。 INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=3; < -- 或 INSERT INTO table(a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=values(c); --引用其他列来更新冲突行 INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 将 NULL 插入到已定义为 NOT NULL 的列中。对于多行 INSERT 语句或 INSERT INTO...SELECT 语句,根据列数据的类型将列设置为隐式默认值。对于数字类型,默认值为0;对于字符串类型,默认值为空字符串('');对于日期和时间类型,默认值为“零”值。 插入...选择重复密钥更新 插入到tbl_name1(a,b,c) 从tbl_name2中选择col1,col2,col3 < /p> ON DUPLICATE KEY UPDATE c=values(c); INSERT DELAYED 如果您的客户端无法等待 INSERT 完成,此选项非常有用。是的,当客户端使用INSERT DELAYED时,它会立即得到服务器的确认。当表未被其他线程使用时,该行将排队并插入。 使用 INSERT D 的另一个重要好处ELAYED 是将来自多个客户端的插入聚集在一起并写入一个块。这比执行许多独立插入要快得多。 INSERT DELAYED INTOworker(name)values('tom'),('paul'); 使用DELAYED时有一些限制: INSERT DELAYED 仅适用于 MyISAM、MEMORY 和 ARCHIVE 表。对于MyISAM表,如果数据文件中间没有空闲块,则支持SELECT和INSERT语句。在这些情况下,基本上不需要将 INSERT DELAYED 与 MyISAM 一起使用。 INSERT DELAYED 只能在指定值列表的 INSERT 语句中使用。服务器忽略 INSERT DELAYED...SELECT 语句的 DELAYED 和 INSERT DELAYED...ON DUPLICATE UPDATE 语句的 DELAYED。 由于该语句在插入行之前立即返回,因此无法使用 LAST_INSERT_ID() 来获取 AUTO_INCREMENT 值。 AUTO_INCRMENT值可以由语句生成。 对于 SELECT 语句,DELAYED 行在实际插入之前不可见。 DELAYED 在从属复制服务器上被忽略,因为 DELAYED 在从属服务器上生成的数据与在主服务器上生成的数据并不不同。 看完上面的内容,你是否掌握了如何在mysql中使用insert呢?如果您想学习更多技能或者想了解更多相关内容,请关注行业资讯频道。感谢您的阅读!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > mysql中如何使用insert