当前位置: 首页 > article >正文

SQL练习(2)

题源:牛客官网

选择题

假设创建新用户nkw,现在想对于任何IP的连接,仅拥有user数据库里面的select和insert权限,则列表语句中能够实现这一要求的语句是()
 

A

grant select ,insert on *.* to 'nkw'@'%'

B

grant select ,insert on user.* to 'nkw'@'%'

C

grant all privileges on *.* to 'nkw'@'%'

D

grant all privileges on user.* to 'nkw'@'%'

正确答案:B。

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

('1003' , '' , '2000-01-01' , '男');
('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(t2.birth)  as c1
from (
select * from student_table where sex = '男' ) t1 
inner  join 
(select * from student_table where sex = '女')t2 
on t1.birth = t2.birth and t1.name = t2.name ; 
的结果行数是()?

A

1

B

2

C

3

D

4

正确答案:A。不存在左右连接,且生日为NULL的无法比较,因此查出的数据只有张三

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

('1004' , '张三' ,'2000-08-06' , '男');
('1009' , '李四', '2000-01-01', '男');
('1010' , '李四', '2001-01-01', '男');
('1006' , '王五', '2000-08-06' , '女');
('1008' , '张三', '2002-12-01', '女');
('1012' , '张三', '2001-12-01', '女');
('1011' , '李四', '2002-08-06' , '女');

执行

select t1.*,t2.*
from (
select * from student_table where sex = '男' ) t1 
left join 
(select * from student_table where sex = '女')t2 
on  t1.name = t2.name ; 
的结果行数是()?

A

4

B

3

C

2

D

5

正确答案:A。

在SQL中语法规范中,having子句的使用下面描述正确的是:(    )

A

having子句即可包含聚合函数作用的字段也可包括普通的标量字段

B

使用having的同时不能使用where子句

C

having子句必须于group by 子句同时使用,不能单独使用

D

使用having子句的作用是限定分组条件

E

Having子句和where子句是等同的

F

如果select语句中没有聚合函数的使用,就不能使用having子句

正确答案:AC。

官方解析:

having是在分组后过滤,where在分组前过滤,不冲突,可以同时使用,BE错;

having是用来过滤的,group by是限定分组,D错;

select语句中没有聚合函数的使用时也可以用having,F错

关于返回受上一个SQL语句影响的行数,下列SQL语句正确的是()

A

SELECT @@ERROR

B

SELECT @@IDENTITY

C

SELECT @@ROWCOUNT

D

SELECT @@MAX_CONNECTIONS

 

正确答案:C

官方解析:

A选项,是返回最后一个T_SQL错误的错误号;B选项,返回最后一个插入的标识值;D选项,显示可以创建的同时链接的最大数目。

某软件公司正在升级一套水务管理系统。该系统用于县市级供排水企业、供水厂、排水厂中水务数据的管理工作。系统经重新整合后,开发人员决定不再使用一张备份数据表waterinfo001表,需永久删除。选出符合要求的语句。 

A

DELETE TABLE waterinfo001

B

DELETE FROM TABLE waterinfo001

C

DROP TABLE waterinfo001

D

DROP FROM TABLE waterinfo001

 

正确答案:C。DROP是完全删除表结构和数据,其他都是删除数据,并且DROP语句删除表时不用加FROM

 下列操作在视图上无法完成的是?

A

视图数据查询

B

更新视图数据

C

在视图中定义新的基本表

D

在视图中定义新视图

正确答案:C。视图可以查询和更新数据,视图是一个虚表,可以定义一个新的视图,但是不能定义基本表

Mysql(版本8.0.25)中表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(t2.birth) as c1
from (
select * from student_table where sex = '男' ) t1 
full  join 
(select * from student_table where sex = '女') t2 
on t1.birth = t2.birth and t1.name = t2.name ; 
的结果行数是()?

A

2

B

3

C

执行报错

D

4

 

正确答案:C。

官方解析:Mysql(版本8.0.25)不支持full join,Oracle数据库支持

这里有一张user表包含如下信息:

现在要把name列的所有值都转换为大写,并将字段重命名为names,像下面这样:

下列语句正确的是:

A

SELECT LCASE(name) AS names FROM user;

B

SELECT UCASE(name) AS names FROM user;

C

SELECT CASE(name) AS names FROM user;

D

SELECT UCASE(name) FROM user;

正确答案:B。A是小写,C关键字错误,D没有修改列名

Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1003' , NULL , '2002-05-20' , '男');
('1004' , '张三' , '2000-09-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');

('1006' , NULL , '2001-12-02' , '女');

修改name字段为NULL的记录,是男生时设置name='男生姓名',是女生时设置name='女生姓名',如下SQL正确的是()?

 

A

update student_table set name = ( case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名' end) if name is null ;

B

update student_table when name is null set name = ( case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名')

C

update student_table set name = ( when sex = '男' then '男生姓名' when sex = '女' then '女生姓名') where name is null ;

D

update student_table set name = ( case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名' end) where name is null ;

 

正确答案:D。

case和end不能缺少!并且A选项if错误!

下列选项中关于数据库事务的特性描述正确的是()

A

事务允许继续分割

B

多个事务在执行事务前后对同一个数据读取的结果是不同的

C

一个事务对数据库中数据的改变是暂时的

D

并发访问数据库时,各并发事务之间数据库是独立的

 

正确答案:D。A选项,事务是最小的执行单位,不允许分割;B选项,执行事务前后,数据保持一致,对同一数据读取的结果相同;C选项,一个事务被提交后对数据库中数据的改变是持久的。


http://www.kler.cn/a/396762.html

相关文章:

  • 【miniMax开放平台-注册安全分析报告-无验证方式导致安全隐患】
  • CentOS7.9 源码编译 FreeSWITCH 1.10.12
  • Spring Batch :高效处理海量数据的利器
  • Python学习从0到1 day26 第三阶段 Spark ④ 数据输出
  • hrnet人体关键点检测模型适配atlas笔记
  • 【数据库系列】 Spring Boot 集成 Neo4j 的详细介绍
  • Linux篇(用户管理命令)
  • Python 桌面应用开发:使用 Tkinter 创建 GUI 应用程序
  • QT定时器
  • iOS swift开发--- 加载PDF文件并显示内容
  • 聊聊Flink:Flink的运行时架构
  • 【含开题报告+文档+PPT+源码】基于Spring Boot智能综合交通出行管理平台的设计与实现
  • 除了 TON, 哪些公链在争夺 Telegram 用户?数据表现如何?
  • 【IEEE出版 | 中国石油大学(华东)主办】第六届信息与计算机前沿术国际学术会议(ICFTIC 2024,12月13-15日)
  • 两部手机的IP地址:是否会相同?全面探讨
  • K8S 查看pod节点的磁盘和内存使用情况
  • 【364】基于springboot的高校科研信息管理系统
  • Python 如何通过 cron 或 schedule 实现爬虫的自动定时运行
  • Flink_DataStreamAPI_源算子Source
  • Java进阶 - 并发编程
  • 帽子矩阵--记录
  • SQL 中 BETWEEN AND 用于字符串的理解
  • Element UI如何实现按需导入--Vue3篇
  • Kotlin jetpack MVP
  • sql server 查看io资源使用
  • Docker环境搭建Cloudreve网盘服务(附shell脚本一键搭建)