我是靠谱客的博主 刻苦黄豆,最近开发中收集的这篇文章主要介绍数据库知识总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(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) 检查提取数据的查询所返回的记录数量。如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就当做出错处理。

最后

以上就是刻苦黄豆为你收集整理的数据库知识总结的全部内容,希望文章能够帮你解决数据库知识总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部