数据库SQL面试题1)谈一下数据库的索引的原理,如何发挥作用的?针对插入操作索引会起正面作用么?
索引类似于书的目录,主要用于提高查询效率,也就是按条件查询的时候,先查询索引,再通过索引找到相关的数据,索引相当于记录了对某个关键词,指定到不同的文件,或者文件里的不同位置的结构索引会降低数据更新的效率,当插入、修改、删除时会引起索引结构的更新
2数据库表里如果数据行数很多,做分页查询,SQL如何书写?3说说groupbyhavi
g是做什么的,举一个groupby的例子
4说说外连接和内连接的区别5事务是什么概念,举例说明6一个表:emp姓名,性别,年龄,工作类型,领导姓名,工资,部门a列出每个部门的最高工资和最低工资Selectmax工资mi
工资fromempgroupby部门b列出各部门’工作类型’为’普通职员’的最低和最高工资Selectmax工资mi
工资fromempgroupby部门Where工作类型’普通职员’c列出高于本部门平均工资的员工姓名,工资,部门select姓名,工资,部门fromempe1where工资selectavg工资fromempe2wheree2部门e1部门存储过程和函数的区别是什么?答:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据库已定义的方法,它接受参数并返回某种类型的值,并且不涉及特定用户表。4事务是什么?答:事务是作为一个逻辑单元执行的一系列操作。一个逻辑工作单元必须有4个属性,称为ACID原子性、一致性、隔离性和持久性属性,只有这样才能称为一个事务。5游标的作用是什么?如何知道游标已经到了最后?答:游标用于定位结果集的行。通过判断全局变量FETCH_STATUS可以判断其是否到了最后。通常此变量不等于0表示出错或到了最后。
f7什么叫做SQL注入式攻击?如何防范?答:所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。防范SQL注入式攻击闯入:只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。替换单引号,如:即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。10什么是聚集索引?什么是非聚集索引?什么是主键?答:表中经常有一个列或列的组合,其值能唯一地r