①下列选项关于游标的作用叙述正确的是(D)

解析:

游标是一种从包括多条数据记录的结果集中每次提取一条记录以便处理的机制,可以看做是查询结果的记录指针。游标与视图类似,也是基于基表的临时表对象,也能够通过对游标中数据的修改反映到基表中。而游标不能对数据进行修改的情况是在定义游标时添加了insensitive关键字,使游标模式变为只读。

A:游标允许定位在结果集的特定行;

B:从结果集的当前位置检索一行或一部分行;

C:支持对结果集中当前位置的行进行数据修改。

②语句GRANT、REVOKE实现了结构化查询语言的哪类功能(C)

解析:

数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

1. 数据查询语言DQL:数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:

SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>
2 .数据操纵语言DML:主要有三种形式:

1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE
3. 数据定义语言DDL:

数据库定义语言(DDL,Data Definition Language)是负责数据的模式定义与数据的物理存取构建,主要包括CREATE建表语句,ALTER 更新表结构语句,DROP 删除语句,DECLARE 创建游标。DDL操作是隐性提交的!不能rollback

4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

1) GRANT:授权,REVOKE取消授权

2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
    回滚---ROLLBACK,回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;

3) COMMIT [WORK]:提交,提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。

(1) 显式提交
     用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;

(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,

EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。

(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON;

5.事务控制语言,(TCL,Transaction Control Language)包括SAVEPOINT 设置保存点,它是事务处理中设置临时的占位符,可以对它发布回退;ROLLBACK 回滚,撤销指定的SQL语句;COMMIT提交,将未储存的SQL写入数据库表。

③下列关于数据库系统三级模式结构的表述正确的是(B)

解析:

A选项:外模式是面向数据库用户或应用程序的局部数据视图;

C选项:模式并不涉及数据的物理存储细节;

D选项:模式/内模式映像保证了数据库具有较高的物理独立性。

④有一张emloyees表:

请根据name排名(按升序排序),找到排名为奇数对应的name值,结果如下(输出结果不用排序):

下面MySQL语句正确的是:

解析:

首先对name 进行排序(按升序),然后找到排名为奇数的name行

A选项:

1.连表查询需要的结果是由name连接起来并对其进行排序的大表,然后where条件筛选出name排序为奇数列的数据,如果连接的字段是emp_no那两张表的连接就没有了意义;
2.第一张表没有筛选出emp_no,而是name字段,怎么用的emp_no进行连接的。
C选项:ROW_NUMBER会排序,违背了题意--输出结果不用排序
D选项:用的rank作为别名

知识点:窗口函数的排序操作、位运算、两表连接JOIN函数

SQL中有三种排序函数
1、row_number() over(order by 列名)
2、rank() over(order by 列名)
3、dense_rank() over(order by 列名)

row_number():不考虑数据的重复性,按照顺序一次打上标号
如:1 2 3 4
rank():是并列顺序,会跳过重复的序号
如:1 2 2 4,会跳过3,不是连续的排名
dense_rank():是连续排序,考虑数据的重复性,不会跳过重复的序号
如:1 2 2 3 序号连续

over(partition by shirt _type order by shirt_price) 按照shirt_price升序排序,order by是个默认的开窗函数,按照shirt _type分区。

按位与判断奇偶数:

temp & 1:

  • 当 temp 为奇数时,temp的二进制末位就为1, temp & 1 返回 1;
  • 当 temp 为偶数时,temp的二进制末位就为 0 ,temp & 1 返回 0 。

mod(a,b) 可用于判断奇偶数

  • mod(tar,2) = 1 //代表此时 tar为奇数
  • mod(tar,1) = 0 //tar 为偶数

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

('1001' , '' , '2000-01-01' , '男');
('1002' , null , '2000-12-21' , '男');
('1003' , NULL , '2000-05-20' , '男');
('1004' , '张三' , '2000-08-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');
查询name除'张三'之外的记录,正确的SQL是()?

解析:

题目是要找除张三以外的其他数据

A选项:<>无法对null做筛选,所以只有1001和1005这两条数据;

C选项:length无法对null做筛选,且使用的是 or,故有三条数据1001,1004,1005

D选项:length无法对null做筛选,使用的是and,故只有两条数据1001,1005

⑥SELECT COALESCE(NULL,fat,2)AS name1,COALESCE(pig,test,test)AS name2 FROM NAMETABLE;以上SQL执行后name1和name2分别为:fat,pig。

解析:

主要考察COALESCE函数,通常我们取COALESCE中第一个非NULL的值。

COALESCE ( expression,value1,value2……) 
COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。

如果expression不为空值则返回expression;否则判断value1是否是空值,
如果value1不为空值则返回value1;否则判断value2是否是空值,
如果value2不为空值则返回value2;
……
如果所有的表达式都为空值,则返回NULL。

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

  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. 牛客网多校训练第四场C sequence

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

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

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

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

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

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

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

  9. 牛客网多校训练第三场 A - PACM Team(01背包变形 + 记录方案)

    链接: https://www.nowcoder.com/acm/contest/141/A 题意: 有n(1≤n≤36)个物品,每个物品有四种代价pi,ai,ci,mi,价值为gi(0≤pi,ai, ...

  10. 牛客网多校训练第一场 J - Different Integers(树状数组 + 问题转换)

    链接: https://www.nowcoder.com/acm/contest/139/J 题意: 给出n个整数的序列a(1≤ai≤n)和q个询问(1≤n,q≤1e5),每个询问包含两个整数L和R( ...

随机推荐

  1. base-table 加入动态slot 流程 vue2

    columns { title: '字段标题', slot: 'yourSlotName', minWidth: 50, align: 'center' }, 组件内 props: { columns ...

  2. Electron Mac 打包报 Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT 解决方法

    Electron 项目使用vue-cli-electron-builder创建,原来我的 Mac 上编译都很正常 自从 Mac 升级到 mac OS ventura version 13.0.1 后打 ...

  3. cmd查看环境变量

    1.查看当前所有可用的环境变量:输入 set 即可查看. 2.查看某个环境变量:输入 "set 变量名"即可,比如想查看path变量的值,即输入 set path 3.修改环境变量 ...

  4. 大端(big endian) 小端(little endian) --- 在多字节存储 和 多字节通信中的含义(我还是太年轻了)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  5. AntvG6-graph图谱工具

    1 快速上手 1.1 在项目中使用 npm 包引入 Step 1: 使用命令行在项目目录下执行以下命令 npm install --save @antv/g6 Step 2: 在需要用的 G6 的 J ...

  6. SSH和SFTP是否相同

    SSH和SFTP是否相同?SSH和SFTP是经典的对.在确保通信安全方面,它们交织在一起,尽管它们具有类似的功能,但它们并不是一回事.那么,它们之间有什么区别?请仔细阅读,找出答案. 什么是SSH? ...

  7. SpringMVC转发和重定向的区别是什么

    转发和重定向 视图解析器 <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalRe ...

  8. Android---intent和startActivityForResult方法的使用---页面跳转和数据回传

    Android页面跳转和数据回传 今天我尝试用两个页面实现数据的传递和回传,出现了一些问题,把问题已经成功的案例总结如下: 具体是这样的: 有两个layout布局,两个activity.MainAct ...

  9. 【WCH以太网接口系列芯片】STM32+CH390+Lwip协议栈简单应用测试

    本篇文章基于STM32F103和CH390H芯片进行例程移植及相关注意事项,简单验证TCP\UDP\Ping基础功能. 硬件:STM32F103开发板+沁恒CH390H的评估版图一示,SPI使用接口为 ...

  10. OpenHarmony应用开发—ArkUI组件集合

    介绍 本示例为 ArkUI 中组件.通用.动画.全局方法的集合. 效果预览 使用说明: 1.点击组件.通用.动画.全局方法四个按钮或左右滑动切换不同视图. 2.点击二级导航(如通用属性.通用事件等), ...