插入数据: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, ...
随机推荐
- window snmp
https://blog.csdn.net/weixin_30367543/article/details/99923014 https://jingyan.baidu.com/article/e3c ...
- [ZJOI2008] 骑士 - 基环树dp
一类基环树dp都是这个套路吧 随便拆掉环上的一条边 然后跑树形dp,设\(f[i][0/1]\)表示以第\(i\)个人为根的子树,第\(i\)个人选或不选,能收获的最大值 以断点\(u,v\)为根分别 ...
- Linux DataGuard --
概述 Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保 ...
- Java开发技术
1.基础技术 数据结构与算法 逻辑结构:数据对象中的数据元素之间的逻辑关系 1.集合结构:集合结构中的数据元素除了同属一个集合外,没有其他关系. 2.线性结构:线性结构中的数据元素之间是一对一的关 ...
- 自定义Ribbon客户端策略
说明 为了实现Ribbon细粒度的划分,让调用不同的微服务时采用不同的客户端负载均衡策略, 通常情况下我们会自定义配置策略. 本文以内容中心(content-center)调用户中心微服务(u ...
- JS Data 时间对象
new Date() 返回当前的本地日期和时间
- JDBC未知列
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4. MySQLSyntaxErrorException: Unk ...
- Windows DOS下查看硬盘分区
运行cmd Diskpart //加载 list Disk //列出硬盘 list Volume //列出分区 Select Disk //选择 编号0的硬盘 list Partition //列出当 ...
- 网易云信融合CDN方案及实践
日前,网易云信视频云架构师席智勇在第七届GFIC全球家庭互联网大会进行了题为<网易云信融合CDN方案及实践>的分享,以下是演讲内容回顾. 图为 网易云信视频云架构师席智勇 CDN所面临的问 ...
- 控制台输出Scanner和BufferedReader区别
Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键 时,Scanner就会返回下一个输入. 当你输入的内容中间包括空格时,显然,使用Scanner就不能完整 ...