和之前数据库关系代数那里讲的是一样的
Natural join 自然连接
就是前一个表和后一个表某一个元素相等的值连接后保留
Outer Join 外连接 联想之前的知识点
创建一个虚拟表
create view v as <query expression>
其中v是新表的表名,对于原表的一个SQL查询
一但创建就可以在后面继续使用
我们之前讲过with as,虽然他看起来可以实现和view一样的效果,但实际上view是全局的,之后也可以调用,而with as是局部的,之后就不能继续调用了。
会遇到很多问题
一个问题,就是更新之后View虚拟表,要映射回原本的表,
大多数 SQL 实现只允许在简单视图上进行更新
完整性约束可防止对数据库造成意外损坏。
比如如下一些限制实现
An instructor name cannot be null.
No two instructors can have the same instructor ID.
Every department name must have a matching department name in the department relation.
The salary of an instructor must be greater than $29000.
create table instructor
( ID varchar (5),
name varchar (20) not null,
dept_name varchar (20),
salary numeric (8,2) check (salary > 29000),
primary key (ID),
foreign key (dept_name) references department );
触发器是一种特殊的存储过程
。但触发器没有输入和输出参数,因而不能被显示调用。它作为语句的执行结果自动引发,而存储过程则是通过存储过程名称被直接调用。
触发器 可以自动执行一些内容,加强数据的完整性约束和业务规则等
比如在插入一个语句后,我判断他是否完整!
触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。