- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据库常见知识点
⼀、数据库基本概念
1.主键、外键、超键、候选键
超键:在关系中能唯⼀标识元组的属性集称为关系模式的超键。⼀个属性可以为作为⼀个超键,多个属性组合在⼀起也可以作为⼀个
超键。超键包含候选键和主键。
候选键:是最⼩超键,即没有冗余元素的超键。
主键:数据库表中对存数据对象予以唯⼀和完整标识的数据列或属性的组合。⼀个数据列只能有⼀个主键,且主键的取值不能缺
失,即不能为空值(Null)。
外键:在⼀个表中存在的另⼀个表的主键称此表的外键。
2.为什么⽤⾃增列作为主键
如果我们定义了主键(PRIMARYKEY),那么InnoDB会选择主键作为聚集索引、
如果没有显式定义主键,则InnoDB会选择第⼀个不包含有NULL值的唯⼀索引作为主键索引、
如果也没有这样的唯⼀索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着⾏记录的写⼊⽽主键递增,这
个ROWID不像ORACLE的ROWID那样可引⽤,是隐含的)。
数据记录本⾝被存于主索引(⼀颗B+Tree)的叶⼦节点上。这就要求同⼀个叶⼦节点内(⼤⼩为⼀个内存页或磁盘页)的各条数据记
录按主键顺序存放,因此每当有⼀条新的记录插⼊时,MySQL会根据其主键将其插⼊适当的节点和位置,如果页⾯达到装载因⼦
(InnoDB默认为15/16),则开辟⼀个新的页(节点)
如果表使⽤⾃增主键,那么每次插⼊新的记录,记录就会顺序添加到当前索引节点的后续位置,当⼀页写满,就会⾃动开辟⼀个新的
页
如果使⽤⾮⾃增主键(如果⾝份证号或学号等),由于每次插⼊主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间
某个位置,此时MySQL不得不为了将新记录插到合适位置⽽移动数据,甚⾄⽬标页⾯可能已经被回写到磁盘上⽽从缓存中清掉,此时
⼜要从磁盘上读回来,这增加了很多开销,同时频繁的移动、分页操作造成了⼤量的碎⽚,得到了不够紧凑的索引结构,后续不得不
通过OPTIMIZETABLE来重建表并优化填充页⾯。
3.触发器的作⽤?
触发器是⼀种特殊的存过程,主要是通过事件来触发⽽被执⾏的。它可以强化约束,来维护数据的完整性和⼀致性,可以跟踪数据
库内的操作从⽽不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另⼀个表的数据操作,⽽该操作⼜会导
致该表触发器被触发。
4.什么是存过程?⽤什么来调⽤?
存过程是⼀个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建⼀次,以后在该程序中就可以调⽤多次。如果某次操
作需要执⾏多次SQL,使⽤存过程⽐单纯SQL语句执⾏要快。
调⽤:
1)可以⽤⼀个命令对象来调⽤存过程。
2)可以供外部程序调⽤,⽐如:java程序。
5.存过程的优缺点?
优点:
1)存过程是预编译过的,执⾏效率⾼。
2)存过程的代码直接存放于数据库中,通过存过程名直接调⽤,减少⽹络通讯。
3)安全性⾼,执⾏存过程需要有⼀定权限的⽤户。
4)存过程可以重复使⽤,可减少数据库开发⼈员的⼯作量。
缺点:移植性差
6.存过程与函数的区别
7.什么叫视图?游标是什么?
视图:
是⼀种虚拟的表,具有和物理表相同的功能。可以对视图进⾏增,改,查,操作,试图通常是有⼀个表或者多个表的⾏或列的⼦集。
对视图的修改会影响基本表。它使得我们获取数据更容易,相⽐多表查询。
游标:
是对查询出来的结果集作为⼀个单元来有效的处理。游标可以定在该单元中的特定⾏,从结果集的当前⾏检索⼀⾏或多⾏。可以对结
果集当前⾏做修改。⼀般不使⽤游标,但是需要逐条处理数据的时候,游标显得⼗分重要。
8.视图的优缺点
优点:
1对数据库的访问,因为视图可以有选择性的选取数据库⾥的⼀部分。
2)⽤户通过简单的查询可以从复杂查询中得到结果。
3)维护数据的独⽴性,试图可从多个表检索数据。
4)对于相同的数据可产⽣不同的视图。
缺点:
性能:查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是由⼀个复杂的多表查询所定义,那么,那么就⽆法更
改数据
9.drop、truncate、delete区别
最基本:
drop直接删掉表。
truncate删除表中数据,再插⼊时⾃增长id
文档评论(0)