牛客网-SQL专项训练6
①要将employee 的表名更改为 employee_info,下面MySQL语句正确的是(A)
解析:
RENAME用于表的重命名:RENAME <NAME>(修改表名或索引名) 或 RENAME TO <NAME>(修改列名,不更改定义)
MODIFY用于字段类型的修改:MODIFY COLUMN <列名> <类型>(只改字段定义,不改名字)
STUFF(原字符, 开始位置, 删除长度, 插入字符):从指定的起点处开始删除指定长度的字符,并在此处插入另一组字符
故这里:原字符为lo ina,从第三个位置删除1个字符,即删除lo后面的空格,然后插入ve ch,结果为:love china
知识点:STUFF()函数
③快件信息表waybillinfo(id, waybillno, zonecode, optype, update_time)中存储了快件的所有操作信息,请找出在'中山公园'网点,异常派送(optype='异常派件')次数超过3次的快件(waybillno),正确的sql为:
解析:
本题需要找到在'中山公园'网点,异常派送次数 > 3的快件,不需要查次数故需要以快件进行分组,找到次数大于3的快件。不需要查次数就可以排除SELECT中含有的count(*)的选项ABC,其次where 后面是不能跟聚合函数的(A错),B选项用的order by。
④有一张persons表包含如下信息:
现要选取居住地址Address以'C'或'h'开头 或以 'et' 结尾的所有数据,结果显示为:
下列MySQL查询语句正确的是:C
解析:
MySQL 中使用 REGEXP 来操作正则表达式的匹配。
- ^ 该符号表示匹配输入字符串的开始位置;
- $表示匹配输入字符串的末尾位置;
- [...] 表示匹配所包含的任意一个字符;
- [^...]表示不能匹配括号内的任意单个字符;
- x|y 这条竖线表示匹配x 或匹配y。
A选项:'[^Ch]|et$' :表示不能匹配C,h任意一个字符或者与et结尾的字符相匹配;
B选项:'^[Ch]et$':表示匹配以C或h开头的字符串并且以et结尾的字符串(缺少 |);
C选项:'^[Ch]|et$':表示匹配以C或h开头的字符串或以et结尾的字符串;(符合条件);
D选项:'^[Ch]|[et]$':表示匹配以C或h开头的字符串或者有e、t任意一个字母结尾的字符串(与题中以et两个连着的结尾不符);
知识点:MySQL中正则表达式的匹配规则
⑤Mysql中表student_table(id,name,birth,sex),查询男生、女生人数分别最多的3个姓氏及人数,正确的SQL是:
解析:
A选项:是分别找出男生女生姓氏最多的三个,而A选项男生女生一共只有三条记录;
B选项:需要使用子查询
C和D选项的区别,在于D选项中having c1 >= 3,查询的是人数大于等于3,而题目要求的是前三的数据。C正确。
在mysql中,group by中可以使用别名;where中不能使用别名;
length(name) >= 1:确保名字非空,空值无法进行计算会报错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)