数据库
赤瞳寓言
加油!
展开
-
数据库篇(一)——关系型数据库与非关系型数据库
参考https://blog.csdn.net/lijinqi1987/article/details/51823506 http://wiki.jikexueyuan.com/project/mysql/introduction.html 数据库类型 特性 优点 缺点 关系型数据库SQLite、Oracle、mysql 1、关系型数据库,是指采用了关系模型...原创 2018-08-14 10:13:56 · 734 阅读 · 0 评论 -
数据库篇(九)——SQL注入的相关问题
一、SQL语句应该考虑哪些安全性?防止SQL注入,对特殊字符进行过滤、转义或者使用预编译的SQL语句绑定变量当SQL语句运行出错时,不要把数据库返回的错误信息全部显示给用户,以防止泄露服务器和数据库相关信息。二、什么是SQL注入?举例来说,在后台写的java代码拼的SQL如下:public List getInfo(String ename){ StringBuffe...原创 2018-08-16 16:22:02 · 246 阅读 · 0 评论 -
数据库篇(八)——优化查询
数据库优化查询的方法有:1、使用索引尽量避免全表扫描,首先应考虑在where及order by,group by涉及的列上建立索引。2、优化SQL语句通过explain来查看SQL语句的执行效果,可以帮助选择更好的索引和优化查询语句。例如:explain select * from news;不要返回用不到的字段不在索引列做运算或者使用函数查询尽可能使用lim...原创 2018-08-16 15:48:23 · 4242 阅读 · 0 评论 -
数据库篇(七)——数据库的索引
一、数据库索引的原理数据库索引的数据结构:目前大部分数据库系统及文件系统都采用B-Tree(B树)或其变种B+树(数据库索引的首选数据结构)作为索引结构。 参考:https://blog.csdn.net/aqzwss/article/details/53074186B-树B-树是一种多路搜索树(并不一定是二叉的) 1970年,R.Bayer和E.mccreight提出了一种适...原创 2018-08-16 09:32:45 · 285 阅读 · 0 评论 -
数据库篇(六)——数据库命令相关的问题
一、truncate与delete与drop的区别:参考:https://blog.csdn.net/ws0513/article/details/499805471、SQL中的drop、delete、truncate都表示删除,但是三者有一些差别:delete和truncate只删除表的数据不删除表的结构速度,一般来说: drop> truncate >delete ...原创 2018-08-14 21:16:59 · 239 阅读 · 0 评论 -
数据库篇(五)——数据库的锁
一、数据库的锁机制及数据库中有哪些锁?锁是一种并发控制技术,锁是用来在多个用户同时访问同一个数据的时候保护数据的。两种基本的锁类型共享锁(S):多个事务科封锁一个共享页,任何事务都不能修改该页;通常是该页被读取完毕,S锁立即被释放。排它锁(X):仅允许一个事务封锁该页,其他事务必须等X锁释放后才能对该页进行访问。二、死锁产生死锁的四个必要条件:互斥条件:一个...原创 2018-08-14 17:38:28 · 522 阅读 · 0 评论 -
数据库篇(四)——事务
一、什么是事务?事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。 事务是由一组SQL语句组成的逻辑处理单元。数据库正确执行的四个基本要素(事务的四个属性):ACID:原子性:一个事务的所有操作,要么全部完成,要么...原创 2018-08-14 11:44:54 · 270 阅读 · 0 评论 -
数据库篇(三)——数据库的三级范式
第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 第二范式(2NF):满足第二范式必须先满足第一范式。一个表只能说明一个事务。非主键属性必须完全依赖于主键属性。即所有非关键字段都完全依赖于任意一组候选关键字。 第三范式(3NF):在第二范式的基础上,每列都与主键有直接关系,不存在传递依赖。任何非主属性不依赖与其...原创 2018-08-14 11:08:30 · 1526 阅读 · 0 评论 -
数据库篇(二)——什么是存储过程?有哪些优缺点?
存储过程就是一些编译好了的SQL语句,这些SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后给这些代码块取一个名字,在用到这个功能的时候调用即可。 存储过程详解参考: http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html优点:存储过程是一个预编译的代码块,执行效率比较高存储过...原创 2018-08-14 10:29:42 · 11180 阅读 · 0 评论 -
数据库篇(十)——连接
一、内连接与外连接的区别:定义两个表:select * from t1; id name----------1 aaa2 bbbselect * from t2; id age----------1 203 20内连接:只显示符合连接条件的记录。select * from t1 inner join t2 on t1.id=t2.id; 外连接...原创 2018-08-16 17:20:04 · 162 阅读 · 0 评论