SQL知识点--插入记录
INSERT INTO 语句
- INSERT INTO 语句用于向表中插入新记录,INSERT INTO 语句可以有两种编写形式。
- 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
- INSERT INTO table_name(表名称)
- VALUES (value1,value2,value3,...);
- 第二种形式需要指定列名及被插入的值:
- INSERT INTO table_name (表名称)(column1,column2,column3,...)
- VALUES (value1,value2,value3,...);
- 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
REPLACE INTO 语句
- replace(s,s1,s2)——替换函数
- replace函数使用字符串s2代替s中所有的s1
- 例如:replace('MySQLMySQL','SQL','sql')返回M
- REPLACE的运行与INSERT很相像。如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
- REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和。如果对于一个单行REPLACE该数为1,则一行被插入,同时没有行被删除。如果该数大于1,则在新行被插入前,有一个或多个旧行被删除。如果表包含多个唯一索引,并且新行复制了在不同的唯一索引中的不同旧行的值,则有可能是一个单一行替换了多个旧行。
mysql中常用的三种插入数据的语句:
- insert into表示插入数据,数据库会检查主键,如果出现重复会报错;
- replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;
- insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
1、牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:
- 用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;
- 用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。
试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。
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)
注意两点:
- 插入的表格存在自增主键,这就意味着不需要你自己手动填入,它会跟随表格行数进行自己增加(比如这样增加id值1,2,3...n)。
- 题目显示第二个同学10分钟后退出了平台,表示第二个同学没有完成答题,用null表示即可
2、现有一张试卷作答记录表exam_record,结构如下表,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。我们已经创建了一张新表exam_record_before_2021用来备份2021年之前的试题作答记录,结构和exam_record表一致,请将2021年之前的已完成了的试题作答纪录导入到该表。
insert into exam_record_before_2021
select null,uid ,exam_id,start_time,submit_time,score from exam_record
where year(submit_time) < 2021
- 新表exam_record_before_2021已创建好;第一列为自增主键列,不能直接复制过去;
- 只复制2021年之前的记录;只复制已完成了的试题作答纪录;
3、现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将 2021-01-01 00:00:00 作为发布时间插入到试题信息表examination_info(其表结构如下图),不管该ID试卷是否存在,都要插入成功,请尝试插入它。
replace into examination_info
values
(null,9003,"SQL","hard",90,"2021-01-01 00:00:00")
SQL知识点--插入记录相关推荐
- 【第7天】SQL进阶-插入记录(SQL 小虚竹)
回城传送–><32天SQL筑基> 文章目录 零.前言 一.练习题目 二.SQL思路 插入记录:SQL110 插入记录(一) 初始化数据 解法 扩展 插入记录:SQL111 插入记录( ...
- SQL中获取刚插入记录时对应的自增列的值
--创建数据库和表 create database MyDataBase use MyDataBase create table mytable ( id int identity(1,1), nam ...
- [导入]C#向Sql Server中插入记录时单引号的处理
ASP.Net种使用C#, 向CoreDB.myBBS表中插入记录值(Title, Content)[文章的标题和内容],由于Content, Title中可能包含单引号,直接使用sql的insert ...
- 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
一条mysql教程 存在该记录则更新,不存在则插入记录的sql INSERT table (auto_id, auto_name) values (1, 'yourname') ON DUPLICAT ...
- 使用SQL Server 获取插入记录后的ID(自动编号)
使用SQL Server 获取插入记录后的ID(自动编号) jingxian 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开 ...
- 使用SQL Server 获取插入记录后的自增ID(自动编号)
http://www.jb51.net/article/39029.htm 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开发 ...
- Sql 插入记录返回主键id
有时候,我们的主键id是自动生成的,然后想要插入记录后,就取得这条记录的id,怎么做呢? 比如我现在的一个student表的字段为:id(PK autoIncrement), name, school ...
- SQL知识点、SQL语句学习
SQL知识点.SQL语句学习 原文:https://www.cnblogs.com/klb561/p/10344271.html 一. 数据库简介和创建 系统数据库 在安装好SQL SERVER后,系 ...
- mysql中sql批量插入_MySQL批量SQL插入性能优化
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长. 特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意义的 ...
最新文章
- 精选四款命令行「神器」:美、快、爽!
- ai包装插件_找AI插件很费劲,一次给你66款AI插件合集!每一款都是设计师常用...
- .sln from VS2005 convert to VS2008
- JAVA——仿Linux命令行文件管理系统命令的简单实现
- [BZOJ5303] [HAOI2018] 反色游戏
- [ckeditor系列]ckeditor 自己写的一个简单的image上传js 运用iframe的ajax上传
- JxBrowser概述与简单应用
- 自学python顺序-要成为一名Python程序员,要学习哪些内容,学习顺序是怎样的?...
- 8.15 SNAIL:神经注意力元学习
- 福建师范网络教育应用计算机,福建师范大学网络教育计算机应用基础课程期末考核答案.docx...
- 单片机C语言,从小白到菜鸟进阶教程(超详细代码解读)
- UART、RS232、RS485协议简单总结
- HP 6L WIN7 WIN8 驱动
- C#毕业设计——基于C#+asp.net+SQL server的物料管理系统(ERP)设计与实现(毕业论文+程序源码)——物料管理系统(ERP)
- Graphene 2.0.0.Alpha4,Selenium 的 Ajax 测试扩展
- 参加百度深度学习培训总结
- Spring的Tomcat服务关闭后,Quartz进程无法正常关闭,出现内存泄露
- 我的世界服务器战斗力系统,FightPower——战斗力系统插件 | 我的世界 | MC世界侠...
- JavaScript——疑难杂症总结
- 第二次作业--摩拜单车