①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. 候捷-C++程序设计(Ⅱ)兼谈对象模型

    目录 笔记参考 学习目标 转换函数与explicit pointer-like classes function-like classes 模板template 模板特化与偏特化 模板模板参数 引用( ...

  2. Leetcode 1161 最大层内元素和

    一.题目 给你一个二叉树的根节点 root.设根节点位于二叉树的第1层,而根节点的子节点位于第2层,依此类推. 请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个. 示 ...

  3. pcm5102芯片解析之基本概念

    一 前记 1 在音频领域深耕,那就要不断的前行.最近有几个项目需要用到pcm5102这颗料,藉此机会,针对这个料进行深入的研究一下.做一一些简要的分析. 二 概念 音频芯片的指标,其实,很多年都没啥变 ...

  4. Android 发布aar远程依赖出现扩展方法无法找到问题

    原文: Android 发布aar远程依赖出现扩展方法无法找到问题-Stars-One的杂货小窝 起因 最近在整合自己的工具类库,偶然发现之前写的扩展方法使用远程依赖却是提示找不到 但我有个aar库却 ...

  5. PAT 甲级【1013 Battle Over Cities】

    本题就是dfs.连通图个数-2: 但是java慢,最后一个case 超时 import java.io.*; import java.util.HashSet; import java.util.Se ...

  6. 三维模型3DTILE格式轻量化压缩主要技术方法浅析

    三维模型3DTILE格式轻量化压缩主要技术方法浅析 三维模型3DTILE格式轻量化压缩主要技术方法浅析 随着三维地理空间数据的应用日益广泛,为了更快速地传输和存储这些大规模数据,3DTile格式的轻量 ...

  7. 记录-JS 基础知识大全

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分 document.w ...

  8. 记录--从AI到美颜全流程讲解

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 美颜和短视频 美颜相关APP可以说是现在手机上的必备的软件,例如抖音,快手,拍出的"照骗"和视频不加美颜效果,估计没有 ...

  9. C++中自定义事件与委托

    自定义事件,和委托其实是一类操作. 在蓝图中都表现为红色方块. 自定义事件通过DECLARE_EVENT(ClassName, EventName)来创建一个属于ClassName的EventName ...

  10. 使用 Nginx 在服务器上搭建一个 Xooxle 镜像站

    配置目标 期望能够通过 xooxle.example.com 访问 www.xooxle.com. 配置 DNS 配置地址:「DNS 解析 DNSPod」->「域名」->「解析」-> ...