什么是空值?如何处理空值?

 空值表达以下意义:

  • 某个属性应该有一个值,但是目前不知道其具体值;
  • 某个属性不应该有值;
  • 某个属性的值不便于填写;
      在创建表的时候,可以对某个属性做出是否可以为空的限定。如果一个属性可以为空(UNIQUE和码属性不能取空),那么在插入一个元组时,可以选择性的将该属性设置为空(NULL)。判断一个属性值是否为空,使用IS NULL 或IS NOT NULL来判断。
     另外,空值与另外一个值的算数运算结果为空;空值与另外一个值的比较结果为UNKNOWN。

对表的删除操作有哪些?其中的区别是什么?

  DROP TABLE 用于删除一个表,即从数据库中删除这个关系;
  DLETE FROM TABLE 用于在表中删除指定一行或多行元组;
  TRUNCATE TABLE 用于清空表中的所有元组,但是表关系仍然存在;

什么是索引?为什么需要索引?使用索引有什么优劣?

  当表的数据量比较大时,查询操作会比较耗时。建立索引是加快查询速度的有效手段。
 索引是一种将数据库中单列或者多列的值进行排序的结构。用户通过索引查询数据,不但可以提高查询速度,同时还可以降低服务器的负载,在查询数据时,系统可以不必遍历数据中的所有记录,而是查询索引列。而一般的数据查询是通过遍历全部数据,并寻找数据库中的匹配记录而实现的。
 但是创建索引和维护需要耗费时间,并且耗费的时间与数据量的大小成正比,而且索引需要占用物理空间,给数据的维护造成很多麻烦。

索引的类型与索引的分类

 数据库索引根据存储方式可以分为多种类型,常见的包括顺序文件上的索引,B+树索引,哈希索引等。
 索引根据在不同的属性列上进行建立可以分为:普通索引,即不应用任何限制条件进行索引,该索引可以在任何数据类型中创建;唯一性索引,使用UNIQUE参数可以设置唯一性索引,创建该索引时,索引的值必须唯一,通过唯一索引用户可以快速定位某条记录;全文索引,全文索引只能建立在CHAR、VARCHAR、TEXT类型的字段上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度;空间索引,只能建立在空间数据类型上。

什么是视图?为什么使用视图?

 视图是由数据库中的一个表或多个表导出的虚拟表,其内容由查询定义。同基本表一样,视图包含一系列带有名称的列和行数据(即一个表),但是数据库中值存放了视图的定义而没有存储视图中的数据,每当使用视图进行查询时,从这些数据原先的基本表中,临时获取这些数据。因此,视图中的数据依赖与原基本表中的数据,一旦表中的数据发生变化,在视图中的数据也会发生变化。
 使用视图主要出于两种原因:安全原因—— 视图可以对特定的用户隐藏一些数据;另外一个原因是可以是复杂的查询变得简单易用。