美文网首页
mysql的测试面试题12

mysql的测试面试题12

作者: ugvibib | 来源:发表于2018-06-14 09:54 被阅读129次
    image.png
    答案:
    # 1
    select avg(Salary) from Table_A where position('张' in `Name`);
    # 2
    select Name, Salary from Table_A where Salary >=4000 union all select Name, Salary from Table_B where Salary >=4000;
    # 3
    insert into Table_A select * from Table_B;
    # 4
    select * from Table_A limit 31, 10;
    
    解析:

    1

    第一题的考查点有两个,平均值和模糊查询
    平均值用avg()函数即可
    模糊查询用 like/position/location 均可以

    
    # 如果写成‘%张%’的话,查询不会用到索引,会慢。如果是‘张%’会用到索引,相对快些
    select avg(`Salary`) from Table_A where `name` like '张%';
    
    # POSITION('substr' IN `field`),传入两个值,一个是要查的模糊值,一个是字段
    select avg(Salary) from Table_A where position('张' in `Name`);
    
    # LOCATE('substr',str,pos)可传入三个值,一个是要查的模糊值,一个是字段,一个是第几个位置
    # 如果查出来是多个值的话,pos可以取第n个值
    select avg(Salary) from Table_A where position('张' in `Name`);
    

    这里要注意一下:avg()函数
    avg() 当和 limit连用的时候,并不是想象中那么简单:

    # 例如下面这种方式,limit并没有生效,avg()计算是全表统计
    SELECT AVG(`code`) from user_sms_verify_log LIMIT 31, 40;
    
    # 要写成下面这样子:
    select AVG(`code`) from (SELECT `code` FROM user_sms_verify_log LIMIT 0,1) as A;
    

    2

    第二题考查的是相同表结构多张表的连查
    主要用到的字段为union

    # all如果不加的话,会去掉;加上后就不去重
    select Name, Salary from Table_A where Salary >=4000 
    union all 
    select Name, Salary from Table_B where Salary >=4000;
    

    3

    第三题考查的是表数据插入的用法
    主要用到的字段为insert into

    # 会把Table_B查到的数据,全部插入到table_A中
    insert into Table_A select * from Table_B;
    

    4

    第四题考查的是limit的用法

    # 注意的是,limit后面不加括号;(我第一次写的时候,就经常会加上,这是不对的。)
    select * from Table_A limit 31, 10;
    

    参考:
    https://blog.csdn.net/luojishan1/article/details/73540118
    https://www.cnblogs.com/EasonJim/p/7718022.html

    https://www.cnblogs.com/wangyayun/p/6133540.html

    http://www.w3school.com.cn/sql/sql_insert.asp
    https://blog.csdn.net/u010159842/article/details/73287502

    相关文章

      网友评论

          本文标题:mysql的测试面试题12

          本文链接:https://www.haomeiwen.com/subject/uzseeftx.html