mysql面试题测试岗_mysql的测试面试题12

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;

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;
经验分享 程序员 微信小程序 职场和发展