# 查询昵称以"牛客"+纯数字+"号"或者纯数字组成的用户id
select uid 
from user_info
where nick_name rlike '^牛客[0-9]+号$' or nick_name rlike '^[0-9]+$'  

# 输出以上用户对于字母c开头的试卷类别(如C,C++,c#等)的已完成的试卷ID和平均得分,按用户ID、平均分升序排序。
select ui.uid, er.exam_id, round(avg(score)) avg_score
from exam_record er
join (
    select uid 
    from user_info
    where nick_name rlike '^牛客[0-9]+号$' or nick_name rlike '^[0-9]+$'
) ui
on er.uid = ui.uid
join examination_info ei
on er.exam_id = ei.exam_id
where (tag like 'C%' or tag like 'c%')
and score is not null
group by ui.uid, er.exam_id
order by ui.uid, avg_score;

正则表达式的使用需要掌握,正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。