概述
(1)数据库:存储过程与函数的区别
在数据库中,存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据库已经定义的方法,它接收参数并返回某种类型的值,但不涉及特定用户表。
(2)什么是数据库事务
数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务的开始和结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按默认规定自动划分事务。事务具有原子性,一致性,独立性以及持久性等特点。
(a)原子性:一个事务要么全部执行,要么全不执行。也就是说一个事务不可能只执行一半就停止了。
(b)一致性:事务的运行并不改变数据库中数据的一致性。例如完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变。
(c)独立性:两个以上的事务不会出现交错执行的状态,因为可能会导致数据不一致。
(d)持久性:事务运行成功以后,就系统的更新是永久的。不会无缘无故的回滚。
(3)游标的作用是什么?如何知道游标已经到了最后。
游标用于定位结果集的行。通过判断全局变量@@FETCH_STATUS可以判断其是否到了最后。通常此变量不等于0表示出错或者到了最后。
(4)触发器分为事前触发和事后触发,这两种触发有何区别?语句级触发和行级触发有何区别?
事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件之后。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
(5)什么是SQL注入式攻击?如何防范?
SQL注入式攻击:攻击者把SQL命令插入到Web表单的输入域或者页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
(a)替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。
(b)删除用户输入内容中的所有连字符,防止攻击者顺利获得访问权限。
(c)限制用来执行查询的数据库账号的权限。用不同的用户账号执行查询,插入,更新,删除操作。
(d)用存储过程来执行所有的查询。
(e)检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当在客服端和服务器端都执行。
(f) 将用户登录名,密码等数据加密保存。
(g) 检查提取数据的查询所返回的记录数量。如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就当做出错处理。
最后
以上就是刻苦黄豆为你收集整理的数据库知识总结的全部内容,希望文章能够帮你解决数据库知识总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复