MySQL
面试题大全
1、SQL 中聚合函数有哪些?
聚合函数是对一组值进行计算并返回单一的值的函数,它经常与 select 语句中的 group by
子句一同使用。
● avg():返回的是指定组中的平均值,空值被忽略。
● count():返回的是指定组中的项目个数。
● max():返回指定数据中的最大值。
● min():返回指定数据中的最小值。
● sum():返回指定数据的和,只能用于数字列,空值忽略。
2、SQL 之连接查询(左连接和右连接的区别)?
● 外连接:
● 左连接(左外连接):以左表作为基准进行查询,左表数据会全部显示出来,右表如果和
左表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。
● 右连接(右外连接):以右表作为基准进行查询,右表数据会全部显示出来,左表如果和
右表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。
● 全连接:先以左表进行左外连接,再以右表进行右外连接。
● 内连接:显示表之间有连接匹配的所有行。
3、SQL 之 sql 注入是什么?
通过在 Web 表单中输入(恶意)SQL 语句得到一个存在安全漏洞的网站上的数据库,而不
是按照设计者意图去执行 SQL 语句。举例:当执行的 sql 为 select * from user where username
= “admin” or “a” = “a”时,sql 语句恒成立,参数 username 毫无意义。
● 防止 sql 注入的方式:
预编译语句:如,select * from user where username = ?,sql 语句语义不会发生改变,sql
语句中变量用?表示,即使传递参数时为“admin or ‘a’ = ‘a’”,也会把这整体当做一
个字符创去查询。