约束:
什么是约束以及约束的作用:
为保证数据的完整性(一致性,准确性),需要对数据进行限制,这个限制就叫做约束
目的:保证数据的完整性(一致性,正确性),使数据符合业务规则(业务逻辑)
约束的分类:
(1).非空约束(not null):保证其中的数据不能为空
(2).唯一约束(unique):保证其中数据不能重复(唯一)
(3).主键约束(primary key):保证其中的数据非空且唯一
(4).外键约束(foreign key):保证其中出现的数据必须为其依附字段(为主键约束或唯一约束约束的字段)中出现过的数据
(5).检查约束(check):保证其中出现的数据必须符合范围
外键约束依附的本质是:
本质上外键约束依附的是能够作为生成索引的字段(被主键约束或唯一约束约束的字段)
创建约束的方式:
(1).直接在constraint标签下创建约束
(2).通过手动建表的方式直接创建约束和表信息
①.在字段后直接声明约束信息 字段名 数据类型 约束类型(约束字段)
②.通过constraint关键字声明约束 constraint 约束名 约束类型(约束字段) references 表名 (字段名)
索引:
索引的优势:
提高查询的效率和速度
索引的劣势:
因为每次创建索引之前都会对表中数据进行动态维护(扫描表中所有数据)
所以会大大降低增删改的效率及速度
索引是依附于什么存在的:
索引是需要依据唯一(非重复)的数据存在的,因为无法很好的找到优劣势之间的平衡关系,
所以数据库会根据唯一约束或者主键约束为我们自动创建索引
视图:
定义:
将表中对某一账户有用的信息单独提取出来叫做视图(view)
创建视图:
(1).通过view标签右键新建的方式
(2).create view 视图名 as 查询语句 (with read only)
视图的好处:
(1).剔除对特定用户无用的信息(无用并非指无用数据,而是对特定用户无用)
(2).具有一定的保密作用
(3).简化sql语句
序列:
序列的作用:
生成一段等间隔的数字供我们使用(sequence),为了避免数据的重复
创建序列:
(1).通过sequence标签右键新建的方式
(2).代码创建
序列中的参数:
(1).start with:初始值。指的是序列从哪开始
(2).minvalue:最小值。
(3).maxvalue:最大值。
(4).increment by:自增量。指的是等间隔的数字,这个间隔是多少
(5).cache:预分配空间(缓冲)。预先分配好的序列值,避免多个请求时,造成的数据库卡顿,默认值为20。
(6).cycle:循环。指生成的序列值是否循环,不循环为nocycle。
(7).order:顺序保证。不保证为noorder。
sql语言
sql语言的分类:
(1).DML:数据操纵语言。其中包含insert, delete, update
(2).DQL:数据查询语言。其中包含select
(3).DDL:数据定义语言。其中包含create, alter, drop等
(4).DCL:数据控制语言。其中包含grant(给用户权限),revoke(撤销用 户权限)
(5).TCL:事务控制语言。其中包含commit(提交), rollback(回滚)
触发器:
触发器是许多关系数据库系统都提供的一项技术。
触发器是当ORACLE事件发生时自动地隐式运行的一项技术。
ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作。
行级触发器和语句级触发器的区别:
行级触发器在执行批量添加(或删除、修改)时,添加了几条数据,就触发几次触发器。
语句级触发器在执行批量添加时,不管添加了几条数据,都只触发一次触发器。
常用触发器:
①添加数据的时候将相同的数据添加到备份表中
②删除数据的同时将删除的数据添加到备份表中
③添加操作时间
④自动添加流水号(序列号)