牛客网-SQL专项训练23

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

 解析:

考察知识点-数据库授权命令:
GRANT<权限> on 表名(或列名) to 用户 
回收权限:
REVOKE <权限> on 表名(或列名) FROM 用户 
GRANT "权限" on "数据库" to "用户名"@"IP地址"         (IP地址无限制可输入'%')

A:赋予nkw用户所有连接IP的所有数据库的select和insert权限;

C:赋予nkw用户所有连接IP的所有数据库的所有权限;

D:赋予nkw用户所有连接IP的user数据库的所有权限。

②下列选项中的锁模式,可以用于数据修改操作,确保不会同时对同一资源进行多重更新的是(C)

 

解析:

共享锁:共享锁锁定的资源可以被其他用户读取,但是其他用户无法修改,如SELECT语句;

更新锁:防止死锁,如果你读数据,我用共享锁,如果修改数据,我换成排他锁;

排它锁:(独占锁)其他人不能读也不能写(所以不会多重更新);

架构锁:在执行依赖于表架构的操作时使用。

③下列选项关于函数的描述正确的是(C)

 解析:

A:用户定义函数不用于执行修改数据库状态的操作;

B:用户定义函数属于数据库,只能在该数据库下调用;

C:标量函数和存储过程一样,可以使用EXECUTE语句执行。

④声明游标语法中的INSENSITIVE参数,表示声明一个静态游标。当发生下列选项中的哪一项时,游标将会自动设定INSENSITIVE选项(D)

 解析:

当遇到以下情况发生时,游标将自动没定成insensitive选项:

1. 在SELECT 语句中使用distinct、group by、having union语句。

2. 使用outer jon。

3. 所选取的任意表没有索引。

4. 将实数值当作选取的列。

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

 解析:

1.having子句既可包含聚合函数作用的字段也可以包括普通的标量字段;

2.使用having的同时可以使用where子句,where在分组前过滤,having在分组后过滤,两者之间不冲突;

3.使用having子句的作用是限定分组条件,having子句用在group by之后用于附加筛选条件,必须在group by 之后使用,不单独使用

4.select语句中没有聚合函数时,也可以使用having子句

⑤下列关于索引的描述不正确的是(D)

解析:

索引会提高查询速度 但不会提高更新表的速度。索引滥用会降低更新表的速度,更新表时,MySQL不仅要更新数据,保存数据,还要更新索引,保存索引,索引会占用磁盘空间。 

⑥下列函数语句得不到相同数值结果的选项是()

 解析:

ROUND(number, decimals)函数将number四舍五入到指定的小数点位数decimals。如果decimals省略,则返回整数。

TRUNCATE(X,D)函数将X截取到指定的小数点位数D,没有四舍五入。

A:对参数四舍五入保留整数,结果为2;

B:对前面参数进行四舍五入操作并保留至小数点后1位,结果为2.0;

C:对前面参数进行截取操作,截至小数点后一位,结果为1.9;

D:对前面参数进行截取操作,截至小数点位置,没有小数,结果为2

⑦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' , '女');
执行 select count(name) from student_table 的结果是:3
解析:
有3行可以被查询出来:
('1001' , ' ' , '2000-01-01' , '男');
('1004' , '张三' , '2000-08-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');

注意:这种只是没有实际的值,不是null(空),可能是空格,回车,tab符号,也是可以查询出来的。

posted on 2022-09-25 10:58  我不想一直当菜鸟  阅读(216)  评论(0编辑  收藏  举报