首页 > 数据库 >牛客网-SQL专项训练20

牛客网-SQL专项训练20

时间:2022-09-22 21:38:02浏览次数:43  
标签:count 事务 20 读取 sum 销量 牛客 score SQL

①学生、书店和图书三个实体集之间的联系属于:多元联系。

解析:

参与联系的实体集个数大于2个时,为多元联系;这里学生、书店、图书是三个实体,为多元联系。

二元联系指只有两个实体集参与的联系;

自反联系描述了同一实体集内两部分实体之间的联系,是一种特殊的二元联系;一对一联系是二元联系下的一种细分。

②下列不属于触发事件的是(A)

 触发器是与表有关的数据库对象,在 insert/update/delete 之前或之后触发并执行触发器中定义的 SQL语句

 

 AFTER触发器又称后触发器,在执行了INSERT、UPDATE、DELETE语句操作之后执行AFTER触发器。

 ③检索销量表中销量最好的商品id和销量(假设每件商品只有一个订单),下列SQL语句正确的是(D)

 

 解析:

A选项:where子句后面不能使用聚合函数max()

B、C选项:首先B选项的group by 销量,这个销量并没有在Select后面出现,语法就是错误的。C选项,就对商品id进行分组,然后找寻最大销量,题中说假设每件商品只有一个订单,其实这效果等同于查询所有的数据---select * from  销量表

D选项:先从销量表中找到最大销量值,然后再找到销量和最大销量值相同的商品。就算是有销量一样的不同商品,那么查询出来的将是多个销量相同的商品,也是符合题意的。

④”确保事务可以多次从一个字段中读取相同的值,在此事务持续期间,禁止其他事务对此字段的更新”是对下列选项哪一个事务隔离级别的描述()

解析:

在标准SQL规范中,定义了4个事务隔离级别,不同的隔离级别对事务的处理不同。
● 未授权读取(Read Uncommitted):允许脏读取,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个数据则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。
● 授权读取(Read Committed):允许不可重复读取,但不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
● 可重复读取(Repeatable Read):禁止不可重复读取和脏读取,但是有时可能出现幻影数据。这可以通过“共享读锁”和“排他写锁”实现。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
● 序列化(Serializable):提供严格的事务隔离。最严格的事务隔离级别,要求所有事物被串行执行,不能并发执行,可避免脏读、不可重复读,幻读情况的发生。如果仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed,它能够避免脏读取,而且具有较好的并发性能。尽管它会导致不可重复读、虚读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。读未提交是事务隔离级别的最低级别; 

⑤表结构如下:

以下查询语句结果是:

 解析:

count(字段):不会统计null值。

A.SELECT sum(score) / count(*) FROM score WHERE cno = 2; count(*)统计是所有学生的个数,就算成绩为空, sum(score) / count(*)得到的也是所有学生的平均分数
B.SELECT sum(score) / count(id) FROM score WHERE cno = 2; id为非空,从而count(id)得到也是学生的个数,sum(score) / count(id)也是所有学生的平均分数

C.SELECT sum(score) / count(sno) FROM score WHERE cno = 2; sno为非空,从而count(sno)得到也是学生的个数,sum(score) / count(sno)也是所有学生的平均分数

D.SELECT sum(score) / count(score) FROM score WHERE cno = 2;
score可能为空,空值在统计时会被忽略,所以count(score)和sum(score)统计的只是score不为空的学生的成绩,计算得到的平均分也只是有成绩的学生的平均分,无法计算所有学生的平均分。
E.SELECT sum(score) / count(1) FROM score WHERE cno = 2; count(1)的统计结果也包含null,与count(*)一样,所以得到的还是所有学生的平均成绩

F.SELECT avg(score) FROM score WHERE cno = 2; avg(score)会忽略掉为空值的学生,计算的是有成绩的学生

 

标签:count,事务,20,读取,sum,销量,牛客,score,SQL
From: https://www.cnblogs.com/liu-myu/p/16720862.html

相关文章

  • 产生10个1-20以内的随机数,要求不能重复(集合)Java
    publicclassDemo{ //产生10个1-20以内的随机数,要求不能重复 publicstaticvoidmain(String[]args){ //新建集合存放随机数 Set<Integer>set=newHashSet<>()......
  • 20220922缉
    20220922(种苹)t1[COCI2015-2016#6]PAROVI最初思路若选择二元组中不包含1,那Slavko只需选择2作为x即可对所有二元组满足a,b≥x;同样,若不包含n,则Slavko只需选择n作为x即可满......
  • 2022.9.12———HZOI【CSP-S模拟4】游寄
    \(Preface\)\(Rank32/43\)\(0pts+40pts+40pts+20pts=100pts\)\[\Huge\mathbf{水博客警告}\]\(\mathfrak{T1}\石子游戏\)\(mad\)上来一个博弈论呼我脸上,这......
  • [NOIP2001 提高组] 统计单词个数
    [NOIP2001提高组]统计单词个数题目描述给出一个长度不超过\(200\)的由小写英文字母组成的字母串(该字串以每行\(20\)个字母的方式输入,且保证每行一定为\(20\)个)。......
  • 洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)
    https://www.luogu.com.cn/problem/P1025给定一个n和k,把n拆分成k个数字的和,数字可以相同,但是种类不能相同。求能凑出的数量。输入73输出4明明是一道很简单的dfs,......
  • [JSOI2010]冷冻波
    [JSOI2010]冷冻波题目描述WJJ喜欢“魔兽争霸”这个游戏。在游戏中,巫妖是一种强大的英雄,它的技能FrozenNova每次可以杀死一个小精灵。我们认为,巫妖和小精灵都可以看成是......
  • MySQL及MySQL Workbench下载与安装
     安装MySQLWorkbench参考链接:https://blog.csdn.net/qq_51813155/article/details/121705128一、下载MSI文件下载地址:https://dev.mysql.com/downloads/workbench/......
  • 计算机专业毕业设计怎么选?计算机本科毕业设计选题 2023年选题推荐
    前言现在已经迎来2023年的毕业季,很多同学咨询“IT跃迁谷毕设展”关于计算机毕业设计选题方面的问题。例如计算机毕设选题什么好?计算机毕设选题选什么新颖一些?计算机毕设选......
  • Flask 学习-73.Flask-SQLAlchemy 分页查询paginate
    前言Flask-SQLAlchemy提供了一个分页查询方法paginate(),方便我们实现在后端查询分页。分页查询在django框架里面有个rest_framework.pagination分页器,只需简单的配......
  • CVE-2017-0143(永恒之蓝)漏洞复现By metasploit
    一、永恒之蓝介绍永恒之蓝是在Windows的SMB服务处理SMBv1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端......