面试—MySQL(基础知识)

基础知识

超键、候选键、主键、外键

  • 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
  • 候选键:最小超键,在元组中找不到其真子集,即不含多余的超键
  • 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值
  • 外键:在一个表中存在的另一个表的主键称此表的外键

存储过程和函数

什么是存储过程?

一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

特殊的存储过程(触发器)

主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

函数

MySQL函数,是一种控制流程函数,属于数据库用语言

存储过程和函数的区别

存储过程

函数

用于在数据中完成特定的操作或者任务

用于特定的数据

程序头部申明procedure

程序头部申明function

程序头部申明时不需要描述返回类型

程序头部申明时需要描述返回类型,而且PL/SQL至少要包含一个有效的return语句

可以使用in/out/ in out

可以使用in/out/in out

可作为一个独立的PL/SQL语句来执行

不能立即执行,必须作为表达式的一部分

可以通过out.int out

通过return语句返回一个值

SQL语句中不得调用任何存储过程

SQL语句中可以调用函数

视图

视图

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改会影响基本表。它使得我们获取数据更容易,相比多表查询。

数据库范式

  • 第一范式:(确保每列保持原子性) 所有字段值都是不可分解的原子值。
  • 第二范式:(确保表中的每列都和主键相关) 在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
  • 第三范式:(确保每列都和主键列直接相关,而不是间接相关) 数据表中的每一列数据都和主键直接相关,而不能间接相关。

关系型数据库和非关系型数据库

关系型数据库

关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。

非关系型数据库

泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。NoSQL是一项全新的数据库革命性运动,其拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。