数据库范式
● 数据库设计范式
● 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。
● 目前关系数据库有5种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
● 满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。
第一范式(确保每列保持原子性)
第二范式就是要有主键,要求其他字段都依赖于主键。
第三范式就是要消除传递依赖,方便理解,可以看做是“消除冗余”。
视图
什么是视图
视图是基于查询的虚拟表。通俗的理解,视图就是一条 SELECT 语句执行后返回的结果集。
SELECT 语句所查询的表称为视图的基表,而查询的结果集称为虚拟表,视图本身并不存储具体的数据,视图的数据存在于视图的基表中,基本表数据发生了改变,视图的数据也会跟着改变。
使用视图是为了方便复杂的查询语句。基本思路是将复杂的查询语句定义在视图内部,然后对视图进行查询,从而简化复杂的查询语句。
定义视图
CREATE VIEW 视图名 AS SELECT 列 1,列 2… FROM 表(查询语句);
使用视图
SELECT * FROM 视图名
删除视图
drop view 视图名
- CREATE VIEW view_admin AS SELECT * FROM admin;
- SELECT * FROM view_admin
- DROP VIEW view_admin
存储过程
概述
如果实现用户的某些需求时,需要编写一组复杂的 SQL 语句才能实现,那么
可以将这组复杂的 SQL 语句集编写在数据库中,由 JDBC 调用来执行这组 SQL
语句。把编写在数据库中的 SQL 语句集称为存储过程。
存储过程(PROCEDURE)是事先经过编译并存储在数据库中的一段 SQL 语
句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库
和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
存储过程类似于 JAVA 语言中的方法,需要先定义,使用时需要调用。存储
过程可以定义参数,参数分为 IN、OUT、INOUT 类型三种类型。IN 类型的参
数表示接收调用者传入的数据,OUT 类型的参数表示向调用者返回数据,INOUT
类型的参数既可以接收调用者传入的参数,也可以向调用者返回数据
函数
1. 窗口排序函数:ROW_NUMBER()、RANK()、DENSE_RANK();
2. 窗口聚合函数:SUM()、MIN()、MAX()、AVG();
3. LAG()
4. LEAD()
5. FIRST_VALUE()
6. LAST_VALUE()
7. NTILE()