①Mysql中表student_info(id,name,birth,sex),字段类型都是varchar,插入如下记录:('1014' , '张三' , '2002-01-06' , '男');

SQL错误的是(B)?

解析:

普通插入(全字段):INSERT INTO 表名 VALUES (value1, value2, ...)

普通插入(限定字段):INSERT INTO 表名 (column1, column2, ...) VALUES (value1, value2, ...)

多条一次性插入:INSERT INTO 表名 (column1, column2, ...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...

从另一个表导入:INSERT INTO 表名 SELECT * FROM 另一张表名 [WHERE key=value]

主要问题在于B选项:如果`table`不是表名,不能带table关键字,会报错;如果table就是表名,需要用`table`才行。

②Mysql中表student_table(id,name,birth,sex),插入如下记录:

('1004' , '张三' , '2000-08-06' , '男');
('1005' , NULL , '2001-12-01' , '女');
('1006' , '张三' , '2000-08-06' , '女');
('1007' , ‘王五’ , '2001-12-01' , '男');
('1008' , '李四' , NULL, '女');
('1009' , '李四' , NULL, '男');
('1010' , '李四' , '2001-12-01', '女');

执行

select count(t1.birth) as c1
from (
select * from student_table where sex = '男' ) t1 
right  join 
(select * from student_table where sex = '女') t2 
on t1.birth = t2.birth and t1.name = t2.name ; 
的结果行数是:1
解析:
题目中【right join ... on t1.birth = t2.birth and t1.name = t2.name ; 】right join是以t2表为主表,(左右表中的birth、name都不为NULL时才会匹配上),无法匹配t1中一个字段为NULL或两个字段都为NULL的记录(所以t1结果不含有‘李四’、‘王五’),查询结果如下图,而这次不仅仅是right join发行数,而是查count(t1.birth),count(字段)是不包含NULL记录,所以结果是1行。
count()函数有两种使用方式:
使用count(*)对表中行的数目进行计数,不管表列中包含的是空值(null)还是非空值;
使用count(column)对特定列中具有值得行进行计数,忽略null值。

 单列单值嵌套查询:

结果集为一个值,一般使用=、<、>等运算符

多列多值嵌套查询:

结果类似于一张虚拟表,父查询中只能使用EXISTS或NOT EXISTS

集合查询:

通常是利用UNION、EXCEPT、INTERSECT集合运算符实现两个表之间的数据查询。

子查询知识点:
where型子查询:指把内部查询的结果作为外层查询的比较条件。子查询:单列单值
from型子查询:把内层的查询结果当成临时表,供外层sql再次查询。子查询:多行多列
in子查询:内层查询语句仅返回一个数据列,这个数据列的值将供外层查询语句进行比较 子查询:单列多行
exists子查询:把外层的查询结果,拿到内层,看内层是否成立,简单来说后面的返回true,外层(也就是前面的语句)才会执行,否则不执行。
any子查询:只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询条件。
all子查询:内层子查询返回的结果需同时满足所有内层查询条件。
 ④SQL更新(UPDATE语句)单个表格某一行多列数据的方法:

正确的UPDATE更新语法为:

UPDATE table_name SET field1 = new-value1, field2 = new-value2 [WHERE Clause];

注意:更新多列数据的间隔符号是逗号

REPLACE函数虽然可以批量修改数据,REPLACE的语法是:

REPLACE INTO tab_name(field1, field2...) VALUES (value1, value2)...;

⑤某高校采取电子化考试,便于查询学生对应考场号创建视图,已知student表(学号sid,姓名sname,考号s_test_id),room表(考场号rid,座位号rseat,考号s_test_id),下列语句错误的是()

解析:

建立视图的语法:

CREATE VIEW 视图名[(字段1),字段2),(字段3)...] AS select 语句
其中:[(字段1),字段2),(字段3)...] 可省
所有选项都是在多表上建立视图,AD选项在视图中重命名了选取列的列名,但是D选项的列名(rid,rseat,sname,s_test_id)与选取列内容student.sname, student.s_test_id, room.rid, room.rseat不一致,后续对于视图的操作很容易引起歧义,且指定列名和AS颠倒了位置,错误;
B选项增加了将视图存入临时表的操作,然后用临时表来执行语句;
C选项未重命名,但是并不影响。

牛客网-SQL专项训练21的更多相关文章

  1. MySql面试题、知识汇总、牛客网SQL专题练习

    点击名字直接跳转到链接: Linux运维必会的100道MySql面试题之(一) Linux运维必会的100道MySql面试题之(二) Linux运维必会的100道MySql面试题之(三) Linux运 ...

  2. 牛客网Sql

    牛客网Sql: 1.查询最晚入职的员工信息  select * from employees where hire_date =(select max(hire_date) from employee ...

  3. 牛客网多校训练第二场D Kth Minimum Clique

    链接:https://ac.nowcoder.com/acm/contest/882/D来源:牛客网 Given a vertex-weighted graph with N vertices, fi ...

  4. 牛客网sql刷题解析-完结

    查找最晚入职员工的所有信息 解题步骤: 题目:查询最晚入职员工的所有信息        目标:查询员工的所有信息 筛选条件:最晚入职           答案: SELECT *--查询所有信息就用* ...

  5. 牛客网sql练习

    一建表语句 /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50717 Source Host ...

  6. 牛客网多校训练第四场C sequence

    (牛客场场有笛卡尔树,场场都不会用笛卡尔树...自闭,补题心得) 题目链接:https://ac.nowcoder.com/acm/contest/884/C 题意:给出两个序列a,b,求max{mi ...

  7. 牛客网sql实战参考答案(mysql版):16-21

    16.统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资.结果给出ti ...

  8. 牛客网2018暑期训练 第三场 a题

    #include <bits/stdc++.h> using namespace std; vector<int> path; ; short dp[maxn][maxn][m ...

  9. Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题

    1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...

  10. 牛客网多校训练第三场 C - Shuffle Cards(Splay / rope)

    链接: https://www.nowcoder.com/acm/contest/141/C 题意: 给出一个n个元素的序列(1,2,...,n)和m个操作(1≤n,m≤1e5),每个操作给出两个数p ...

随机推荐

  1. 基于stm32H730的解决方案开发之freertos系统解析

    一 概述 在嵌入式小系统领域,freertos是一个非常厉害的角色.它和小芯片结合,能迸发出非常大的威力.这里在H730上使用了这个freertos,是应该做一个总结和备忘. 二 实例解析 1 线程初 ...

  2. 阿里云centos Linux系统挂载数据盘操作流程

    这里假设的是已经在阿里云管理后台购买完了新增的硬盘.我们只讲在Linux系统里操作挂载硬盘过程. 一. 环境: 操作系统: Centos 7 二.查看云服务下所有硬盘 使用root账号登录服务器,执行 ...

  3. Performance Improvements in .NET 8 & 7 & 6 -- String【翻译】

    原文:https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/#strings-arrays-and-spans ...

  4. 喜报|3DCAT成为国内首批适配Vision Pro内容开发者

    近日,苹果在上海总部举办了国内首场 Apple Vision Pro 开发者实验室活动,3DCAT作为国内领先的实时渲染云平台参与了此次活动,成为国内首批适配 Vision Pro 的内容开发者之一. ...

  5. JS数据扁平化

    最近找到了一些数据扁平化的精品文章,这里分享给大家,希望对大家有所帮助 什么是扁平化 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组. 举个例子,假设有 ...

  6. MapReduce的基础知识

    1.什么是MapReduce Hadoop MapReduce 是一个 分布式计算框架,用于轻松编写分布式应用程序,这些应用程序以可靠,容错的方式并行处理大型硬件集群(数千个节点)上的大量数据(多TB ...

  7. 一文搞懂JavaEE的接口

    在Java EE(Java Enterprise Edition)开发环境中,编程意义上的"接口"(interface)和API接口虽然都涉及接口的概念,但它们属于不同层面的术语. ...

  8. 【UE插件DTRabbitMQ】 虚幻引擎蓝图连接RabbitMQ服务器使用插件说明

    本插件可以使用蓝图连接 RabbitMQ服务器,并推送或者监听消息. 下载地址地址在文章最后. 1. 节点说明 Create RabbitMQ Client - 创建RabbitMQ客户端对象 创建一 ...

  9. FPGA中的面积优化

    FPGA中的面积优化 一.优化的意义 面积优化,就是在实现预定功能的情况下,使用更小的面积.通过优化,可以使设计能够运行在资源较少的平台上,节约成本,也可以为其他设计提供面积资源. 二.操作符平衡 对 ...

  10. Circle Loss:从统一的相似性对的优化角度进行深度特征学习 | CVPR 2020 Oral

    论文提出了Circle loss,不仅能够对类内优化和类间优化进行单独地处理,还能根据不同的相似度值调整对应的梯度.总体而言,Circle loss更灵活,而且优化目标更明确,在多个实验上都有较好的表 ...