牛客网-SQL专项练习2
①从学生信息表(student)中提取姓名(name)列值为NULL的记录,SQL语句为:
解析:注意不是只查name值,而是查name值为空的所有信息
SQL语句为:
SELECT * FROM student WHERE name is NULL;
知识点:判断是否为空值用 IS NULL 和 IS NOT NULL。
②需查看stu表中索引的索引信息时,应使用的存储过程是()
A.sp_helpindex B.sp_help
C.sp_helpdb D.sp_helptext
解析:查看索引信息时,应使用的存储过程是sp-helpindex。sp_help:报告有关数据库对象的信息。sp_helpdb:返回指定数据库或者全部数据库的信息。sp_helptext:显示规则、默认、存储过程、触发器、视图等对象的未加密的文本定义信息。
③SQL中,对于数据定义语言DDL描述是:定义数据库的结构。
SQL主要分成四部分:
(2)数据操纵语言。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
(3)数据库控制语言,授权,角色控制等。(DCL)包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
现要找出,除开在职员工(指to_date = '9999-01-01')的最大、最小工资(可能存在并列最大或最小)后,其他员工的平均工资avg_salary,示例数据查询后输出:

MySQL查询语句为:

我的理解:我觉得这个题目有点让人误解,我以为是除开在职员工工资的最大值和最小值,算剩下员工工资的平均值。当我看了他的结果,一计算发现73292是除了在职员工的最大值和最小值后,算在职员工的平均薪资。而且还说了可能有并列的最大值和最小值,如果按照D选项算出最大值和最小值后,又用了NOT IN 就会排除所以的最大值和最小值。感觉C选项是对的。但是官方答案是D。
⑤Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1009' , '李四', '2000-01-01', '男');
('1010' , '李四', '2001-01-01', '男');
('1006' , '王五', '2000-08-06' , '女');
('1008' , '张三', '2002-12-01', '女');
('1012' , '张三', '2001-12-01', '女');
('1011' , '李四', '2002-08-06' , '女');
执行
from (
select * from student_table where sex = '男' ) t1
right join
(select * from student_table where sex = '女')t2
on t1.name = t2.name ;
的结果行数是:5
NULL NULL NULL NULL 1006 王五 2000-08-06 女
1004 张三 2000-08-06 男 1008 张三 2002-12-01 女
1004 张三 2000-08-06 男 1012 张三 2001-12-01 女
1009 李四 2000-01-01 男 1011 李四 2002-08-06 女
1010 李四 2001-01-01 男 1011 李四 2002-08-06 女
id name birth sex id name birth sex
1004 张三 2000-08-06 男 1008 张三 2002-12-01 女
1004 张三 2000-08-06 男 1012 张三 2001-12-01 女
1009 李四 2000-01-01 男 1011 李四 2002-08-06 女
1010 李四 2001-01-01 男 1011 李四 2002-08-06 女
如果为左连接left join,t1为主表,t2为从表,从表有两个张三满足条件,于是主表再重复一遍张三,则查得结果为:
1004 张三 2000-08-06 男 1008 张三 2002-12-01 女
1004 张三 2000-08-06 男 1012 张三 2001-12-01 女
1009 李四 2000-01-01 男 1011 李四 2002-08-06 女
1010 李四 2001-01-01 男 1011 李四 2002-08-06 女
总结:
1)不论左右连接,两表排序都是先写的放在左边,后写的放在右边;
2)左右连接中,以谁为主表,则其信息全部保存。从表中有多于一项符合条件的,则额外重复一次主表从而列出全部从表情况。
牛客网-SQL专项练习2的更多相关文章
- MySql面试题、知识汇总、牛客网SQL专题练习
点击名字直接跳转到链接: Linux运维必会的100道MySql面试题之(一) Linux运维必会的100道MySql面试题之(二) Linux运维必会的100道MySql面试题之(三) Linux运 ...
- 牛客网Sql
牛客网Sql: 1.查询最晚入职的员工信息 select * from employees where hire_date =(select max(hire_date) from employee ...
- 牛客网sql刷题解析-完结
查找最晚入职员工的所有信息 解题步骤: 题目:查询最晚入职员工的所有信息 目标:查询员工的所有信息 筛选条件:最晚入职 答案: SELECT *--查询所有信息就用* ...
- Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题
1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...
- 牛客网sql练习
一建表语句 /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50717 Source Host ...
- 牛客网sql实战参考答案(mysql版):16-21
16.统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资.结果给出ti ...
- 牛客网sql实战参考答案(mysql版):1-15
1.查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为--,mysql为comment) CREATE TABLE `employees ...
- 牛客网数据库SQL实战解析(51-61题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(41-50题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- 牛客网数据库SQL实战解析(31-40题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
随机推荐
- python3中print()函数打印多个变量值
第一种方法: print("变量1", file_name, "变量2", new_name) print("变量1", file_name ...
- max30100心率血氧健康传感器调试总结备忘
前记 在健康监测领域,心率血氧传感器是一个非常重要的前端采集设备.了解,研究并使用它,是一个方案商的基本素质.鉴于此,笔者花了一些时间在不同的硬件平台来使用它.中间遇到了一些问题值得总结和反思一下. ...
- c语言随笔
c语言随笔 整型数据类型 unsigned int [signed] int [signed] short [int] unsigned long long [int] // long long 为c ...
- Linux 上 libcurl库 curl_easy_perform Crash(signal 11 - SIGSEGV)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 编码ascii码,unicode码,utf-8编码
1. ASCII ASCII 只有127个字符,表示英文字母的大小写.数字和一些符号,但由于其他语言用ASCII 编码表示字节不够,例如:常用中文需要两个字节,且不能和ASCII冲突,中国定制了GB2 ...
- 从 Linux 内核角度探秘 JDK MappedByteBuffer
本文涉及到的内核源码版本为: 5.4 ,JVM 源码为:OpenJDK17,RocketMQ 源码版本为:5.1.1 在之前的文章<一步一图带你深入剖析 JDK NIO ByteBuffer 在 ...
- 记录--用js如何实现将手机号中间的几位数字变成****
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 今天,我们要实现一个很常见并且简单的功能:将手机号中间的几位数变成**** 这个功能其实很常见,比如我们微信的账号安全里面显示的手机号.掘 ...
- 使用SpringBatch读取csv文件
目录 1.需求 2.解决方案 3.注意事项 1.文件路径的获取 2.各个Step如果获取到ExecutionContext中的值 3.FlatFileItemReader使用注意 4.实现步骤 1.导 ...
- AXI4的IP的输入配置
AXI4的IP的输入配置 1.实验原理 前面一篇验证中验证了AXI中的data_reg_out是输出缓存器.这里再引入一个slv_reg2作为slv-_reg1的输入输出配置寄存器.这里先实现一个简单 ...
- NF-ResNet:去掉BN归一化,值得细读的网络信号分析 | ICLR 2021
论文提出NF-ResNet,根据网络的实际信号传递进行分析,模拟BatchNorm在均值和方差传递上的表现,进而代替BatchNorm.论文实验和分析十分足,出来的效果也很不错.一些初始化方法的理论效 ...