文章目录
1.基本概念
1.1索引
索引有哪几种
- 单列索引(普通索引:允许空值和重复值 唯一索引:允许空值,不能有重复值 主键索引:不允许有空值和重复值)
- 组合索引:多个字段组合上创建的索引
- 全文索引:只能在char、varchar、text类型字段上使用,实际工作没用到过哈
建立索引的优劣
- 优势:
类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本;
通过索引对数据进行排序,降低数据排序的成本,降低CPU的消耗; - 劣势:
实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间的;
虽然索引提高了查询效率,同时也降低了表更新的速度,如对表进行INSERT、UPDATE、DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。
总结:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
-- 添加唯一索引
alter table actor add unique index uniq_idx_firstname(first_name);
-- 添加普通索引
alter table actor add index idx_lastname(last_name);
1.2.视图
视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。
视图作用:
a.简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
b.安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。
通过视图,用户可以被限制在数据的不同子集上:使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。
c.逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响
create view actor_name_view as select first_name first_name_v,last_name last_name_v from actor
1.3数据库三范式
- 第一范式(1NF)无重复的列
- 第二范式(2NF)属性完全依赖于主键[消- 部分子函数依赖]
- 第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖]
2.常用函数
1.1 时间函数
- to_date()
- to_char()
1.2 字符串函数
- substr
- concat
1.3 条件表达式
- case when
- nvl、ISNULL(score,0) --如果不为NULL,这直接返回该值;当学生成绩为空时,成绩记为0。