SQL|数据插入|触发器

article/2025/10/13 10:30:24

一次插入多条信息

SQL34 链接地址:https://www.nowcoder.com/practice/51c12cea6a97468da149c04b7ecf362e?tpId=82&&tqId=29802&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking
题目描述:
题目已经先执行了如下语句:

drop table if exists actor;
CREATE TABLE actor (actor_id  smallint(5)  NOT NULL PRIMARY KEY,first_name  varchar(45) NOT NULL,last_name  varchar(45) NOT NULL,last_update  DATETIME NOT NULL)

请你对于表actor批量插入如下数据(不能有2条insert语句哦!)
在这里插入图片描述
分析:插入多条信息,在VALUES后同时写入,用逗号分隔即可

INSERT INTO actor
VALUES (1, 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'),(2, 'NICK', 'WAHLBERG', '2006-02-15 12:34:33')

不使用insert插入信息

SQL35 链接地址:https://www.nowcoder.com/practice/153c8a8e7805400ba8e384e03acc6b3e?tpId=82&tags=&title=&difficulty=0&judgeStatus=0&rp=1
题目描述:
题目已经先执行了如下语句:

drop table if exists actor;
CREATE TABLE actor (actor_id  smallint(5)  NOT NULL PRIMARY KEY,first_name  varchar(45) NOT NULL,last_name  varchar(45) NOT NULL,last_update  DATETIME NOT NULL);
insert into actor values ('3', 'WD', 'GUINESS', '2006-02-15 12:34:33');

对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)
在这里插入图片描述

//mysql中常用的三种插入数据的语句: 
//insert into表示插入数据,数据库会检查主键,如果出现重复会报错; 
//replace into表示插入替换数据,需求表中有PrimaryKey,
// 或者unique索引,如果数据库已经存在数据,则用新数据替换
//如果没有数据效果则和insert into一样; 
//insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");
//牛客SQL是SQLite3,必须按sqlite3的写法来做:
insert or ignore into actor
values(3,'ED','CHASE','2006-02-15 12:34:33');
// 如果是mysql,那么把or去掉,像下面这样:
insert into actor
values(3,'ED','CHASE','2006-02-15 12:34:33');

新加一列

SQL40 链接地址:https://www.nowcoder.com/practice/119f04716d284cb7a19fba65dd876b03?tpId=82&tags=&title=&difficulty=0&judgeStatus=0&rp=1

题目描述:
存在actor表,包含如下列信息:

CREATE TABLE  actor  (actor_id  smallint(5)  NOT NULL PRIMARY KEY,first_name  varchar(45) NOT NULL,last_name  varchar(45) NOT NULL,last_update  datetime NOT NULL);

现在在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为’2020-10-01 00:00:00’

SQLite修改表的语法为:

CREATE [TEMP|TEMPORARY] TABLE table_name (column_definitions [, constraints]);

竖线表示多选一, 用 TEMP 或 TEMPORARY 保留字声明的表为临时表,只存活于当前会话,一旦连接断开, 就会被自动删除。
参考此语法,本题答案为:

alter table actor
add
create_date datetime  NOT NULL DEFAULT '2020-10-01 00:00:00';

构造触发器

SQL41 链接地址:https://www.nowcoder.com/practice/7e920bb2e1e74c4e83750f5c16033e2e?tpId=82&tags=&title=&difficulty=0&judgeStatus=0&rp=1
题目描述:
构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。

CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
CREATE TABLE audit(
EMP_no INT NOT NULL,
NAME TEXT NOT NULL
);

后台会往employees_test插入一条数据:

INSERT INTO employees_test (ID,NAME,AGE,ADDRESS,SALARY)VALUES (1, 'Paul', 32, 'California', 20000.00 );

然后从audit里面使用查询语句:

select * from audit;

在MySQL中,创建触发器语法如下:

CREATE TRIGGER trigger_name
trigger_time trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt

其中:

  • trigger_name:标识触发器名称,用户自行指定;
  • trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
  • trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;
  • tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
  • trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句,每条语句结束要分号结尾。

结合情境,本题答案为:

create trigger audit_log
after insert on employees_test
for each row
begininsert into audit values(new.id,new.name);
end

参考博客:https://blog.csdn.net/weixin_41177699/article/details/80302987


http://chatgpt.dhexx.cn/article/KuFoTtF1.shtml

相关文章

SQLServer触发器的创建和使用

触发器也是和之前写的数据库函数和存储过程类似, 可以看做是一种特殊的数据库函数,只不过由系统调用,我们也需要表明调用的实际和规则 触发器的主体(也可以说是触发器的使用范围) 表table视图view库database服务器se…

SQL server 创建触发器详解

触发器定义:一种特殊类型的存储过程,不同于存储过程。存储过程 调用名称执行,触发器的调用 通过事件触发 自动调用执行 。 触发器分类:1、DML触发器 数据库再创建触发器时会在内存中创建了两个专用表﹕Inserted表和Deleted表。这…

sqlserver触发器

为了更好的强制业务规则和保证数据的完整性,sql server为我们提供了两种机制,它们分别是约束(主键约束、外键约束、Not Null约束、唯一约束以及检查约束)和触发器。在触发器中,我们可以查询其他表,也可以包含复杂的Transact-SQL语…

SQLServer 触发器

今天修复K3系统生产出库单,审核、返审核 领料数量一直不变,没有相应改变,K3是16年买的,没有源码开发文档和表结构,只能在sqlserver中添加sql语句监视,看审核后改变那个表的状态和数据源sql语句,用触发器改变…

Mac 解压rar 文件

Mac 解压rar 文件 第一种方法: 下载下面链接中的软件,安装好就可以直接用了。 http://baijiahao.baidu.com/s?id1604390455412644388&wfrspider&forpc 安装过程中,一直点击下一步即可 第二种方法: https://blog.csd…

Mac电脑上视频压缩处理

第一步:用QuickTime Player打开你准备压缩的视频 第二步:选择文件——导出——1080P 720P 480P(建议用720和480) 第三步:选择你想要导出的大小,点击保存 最后一步,等存储完成就了 上面的图片视…

苹果电脑的压缩工具——FastZip

1.FastZip,一键快捷! FastZip可以进行分卷压缩解压,支持7Z,ZIP,RAR,TAR,GZIP,BZIP2,XZ,LZIP,ACE,ISO,CAB,PAX&#xff0c…

Linux/macOS的打包、压缩、解压缩

打包 tar,打包后的扩展名为 .tar xxx.tar为打包后的文件名,xxx为被打包的文件 tar -cf xxx.tar xxx压缩 压缩命令为:gzip、bzip2,但是tar命令中已经集成压缩命令,可以通过制定参数进行文件压缩 tar -zcf xxx.tar.…

【Mac-rar文件解压】Mac系统如何打开rar压缩包文件_无需下载应用程序的快捷4步操作法

一位不喜欢下很多应用程序在💻的目录 0.查阅说明1. 打开终端2.输入命令3. 输入命令4. 开始解压! 0.查阅说明 大家好👋,因为本人属实很不喜欢下载很多应用程序在电脑上,因此在网络上找到了另外一种解决解压rar压缩包的…

mac压缩文件多了__MACOSX目录问题

文章目录 背景原因解决方案:更换压缩方式分析问题拓展(.DS_Store) 背景 项目中有一个场景,需要把目录压缩为app离线包的zip 但是压缩之后一致打不开,别人上传的zip是好的 原因 如图,我上传的在安卓设备…

Mac 终端解压缩命令大全

Mac 终端解压缩命令大全 .zip 解压缩: unzip FileName.zip 压缩: zip FileName.zip DirName zip 使用细节 zip -q -r -e -m -o FileName.zip DirName -q 表示不显示压缩进度状态-r 表示子目录子文件全部压缩为zip //这部比较重要,不然的…

Mac使用命令行工具解压和压缩rar文件

目前在Mac电脑里支持解压缩的格式主要有:zip、gz等,但是还不支持rar格式的文件,接下来带着大家学习一下如何解压缩rar格式文件。 1.下载rar工具 打开:https://www.rarlab.com/download.htm 根据自己电脑的芯片要求选择自己的安装…

如何在Mac上快速压缩和解压文件?Mac上解压和压缩文件的方法

苹果mac电脑怎么压缩和解压文件?Mac电脑仅默认支持把文件压缩成zip格式,解压成zip、tar.gz,bz2等格式,有些操作需要安装第三方软件来完成,这篇文章为大家带来几种关于在Mac上解压和压缩文件的方法,有兴趣的朋友可以来了解一下载哦! 一、解压工具 1.MacOS自带的解压 只能…

Mac有哪些解压缩软件,他们的优缺点是什么,哪款比较好用?

Mac有哪些解压缩软件,他们的优缺点是什么,哪款比较好用? 相信有很多小伙伴和我有一样的疑问,Mac 有哪些解压缩软件,那款更好用哪?下面我们就带着疑问来详细了解一下 Mac 上的常见解压缩软件 一、macZip ⇲…

使用数字芯片将5V转3.3V方案电路图

5V转3.3V常用方案 ## 1.AMS117 优点:便宜,1毛一片 缺点:体积大 电路图(来自正点原子): 2. HT7833 优点:体积比AMS1117小一号 缺点:比1117贵一点,8~9毛…

数字芯片后端设计——SRAM宏模块布局布线

在40nm SMIC工艺下,根据手册总结单端SRAM的布局布线问题。 ArtiGrid power structure options:以下图为例,memory的电源布线,无论是core核还是外围periphery,都是在M4层展开,在整个SRAM宏模块中&#xff0…

华为2019数字芯片岗笔试解析二(单选第三部分)

首发来自公众号:数字芯片设计 21.数字电路设计中,下列哪种手段无法消除竞争冒险现象()【A】加滤波电容,消除毛刺【B】增加冗余项消除逻辑冒险【C】增加选通信号,避开毛刺【D】降低时钟频率 解析&#xff1a…

【开卷】第一期(下) ​海思提前批数字芯片笔试(带解析)

2022届的IC招聘,也来的太早了一些。应届生们刚刚办理完入职,各个企业的提前批招聘就突然启动。颇有秋招变夏招的架势。伴随着更多的非科班同学的转行,卷起来已成必然。而各个企业涉猎广泛的笔试题更是打了刚刚开始进行秋招准备的同学们一个措…

华为2019数字芯片岗笔试解析(多选部分)

首发来自微信公众号:数字芯片设计 不定项选择 1.关于状态机编码,如下描述中正确的是()【A】状态编码用parameter定义【B】状态机必须有default态【C】用组合逻辑和时序逻辑分离的风格描述FSM【D】用case语句描述状态的转移 解析&a…