①假设创建新用户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符号,也是可以查询出来的。