插入数据:insert,replace
*insert高级用法*
1、语法:insert into tbname(字段列表) values 值列表;
1.1可以不将所有的字段都插入数据。如果说需要完成部分字段的插入,需要必须存在字段列表。
没有插入的字段,使用默认值填充。
insert into a_table (name) values ('jack');
1.2如果插入部分字段,可以使用下面的set语句,不同字段用逗号隔开:
insert into a_table set a_id=7,a_name='rose';
1.3值列表的语法,可以一次性插入多条数据,每条数据采用记录构造符 “括号”完成即可。
insert into a_table (a_name,a_part) values ('老刘','设计部'),('老铁','财务部');
【问题】插入数据时,如果主键冲突会如何?
答:默认有主键约束,不会插入成功,但是可以在insert语法内,控制在主键冲突时,改成执行 更新 操作。
相当于,更新所冲突主键字段相对应的更新值。update 后不跟set
例子:
MariaDB [test]> insert into a_table (a_id,a_name) values (13,'aly');
ERROR 1062 (23000): Duplicate entry '13' for key 'PRIMARY' #a_id为主键。
MariaDB [test]> insert into a_table (a_id,a_name) values (13,'aly')
-> on duplicate key update a_name='bob'; #把a_id=13中的a_name字段更新成bob。
【插入数据失败流程】
判断是否插入数据成功--->>失败(主键冲突|唯一索引冲突)--->>更新
2、插入的数据源:
2.1除了使用自定义数据外,还可以是使用select语句查询到的数据,作为插入的数据源。
insert into a_table (a_name,a_part) select b_name,b_part from b_table;
2.2数据可以来源于其它数据表,要求:字段数量和类型一致即可。
insert into a_table (a_name,a_part) select name,sex from stu_info;
3、通过强制使用default关键字,或者default()函数,使用默认值:
insert into teacher values
(13,'alex','male',default),
(14,'bob','male',default(days));
*replace替换高级用法*
1、语法:replace into,与on duplicate key update,非常相似,只要主键冲突就替换,不冲突就直接插入数据。
例子:replace into b_table values (2,'laowang','mishubu');
插入数据:insert,replace的更多相关文章
- MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理
MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...
- 批量插入数据@Insert
// 批量插入数据 @Insert("<script>" + "insert into index_kline (currency_id, currency, ...
- mysql数据库中插入数据INSERT INTO SET的优势
往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...
- 插入数据insert语句中出错:没有与这些操作数匹配的“+”运算符,操作数类型为:const char[ ]+CString
UpdateData(); CString n; n.Format(L"%d", m_n); _bstr_t strCmd_n = "insert into n(材料,折 ...
- oracle 通过查询灵活插入数据 insert into ...select..
insert into reg_user (id,name,password,area_code,reg_time,first_pswd,record_type) select l.reg_user_ ...
- 批量插入数据insert into select示例
//增加 $addSql =" insert into hxqc_auth_group_limits(group_id,company_id)"; foreach ($add_da ...
- Mysql常用sql语句(22)- insert 插入数据
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...
- olacle数据库员工表的创建,及插入数据,添加约束,删除列,查询数据的sql语句
---删除原有的员工表drop TABLE employee;---创建员工表CREATE TABLE employee ( empno NUMBER(4) NOT NULL, ...
- mysql插入数据与删除重复记录的几个例子(收藏)
mysql插入数据与删除重复记录的几个例子 12-26shell脚本实现mysql数据的批量插入 12-26mysql循环语句插入数据的例子 12-26mysql批量插入数据(insert into ...
- oracle插入数据
插入数据 insert into comm_error_code_def (ID, ERR_MESSAGE, ERR_CODE, ERR_DESC, NAME, MISC_DESC, STATUS, ...
随机推荐
- spring中实现基于注解实现动态的接口限流防刷
本文将介绍在spring项目中自定义注解,借助redis实现接口的限流 自定义注解类 import java.lang.annotation.ElementType; import java.lang ...
- MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text
MapReduce异常:java.lang.ClassCastException: interface javax.xml.soap.Text java.lang.ClassCastException ...
- Hackintosh相关资源站
猫叔博客 https://www.maoshu.cc/ 大神RehabMan https://bitbucket.org/RehabMan/ dsdt/ssdt打补丁译文 https://blog.c ...
- 获取URL 地址传值 防止乱码
//页面传值 function a() { var usernamelogin = $("#LoginNamelbl").text(); location.href =" ...
- 使用VS2017创建EF框架实例
本文例子中使用环境:vs2017,sql server 2008 一,创建EF项目 1,解决方案添加.Net Framework类库项目,在新建的项目下新建项:data->ADO.NET实体数据 ...
- C3P0连接技术
1.导入jar包(两个) c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar导入数据库驱动jar包 2.定义配置文件 配置文件名称:c3p0.proper ...
- ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II
https://www.cnblogs.com/artech/archive/2007/09/13/891266.html 二.ASP.NET Runtime Pipeline(续ASP.NET Ht ...
- TC基础与自动化
前言 互联网产品的测试常常要覆盖在不同网络下的表现,例如丢包,带宽受限,时延及抖动等网络较差的情况,为了测试场景的网络情况可定义及复现,就需要有个工具对弱网进行模拟.业界一些通用的弱网模拟工具,如NE ...
- this 的值到底是什么?一次说清楚
this 的值到底是什么?一次说清楚 方应杭 杭州饥人谷教育科技有限公司 CTO 1,071 人赞同了该文章 你可能遇到过这样的 JS 面试题: var obj = { foo: function ...
- Django教程(2)
from Django official document; Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发. from 编写你的第一个 Django 应用, ...