视图、序列、索引、约束

Java入门第158课——视图、序列、索引与约束 摘要:本文系统介绍了数据库四大核心对象:视图(简化查询、数据保护)、序列(自动生成唯一值)、索引(提升查询效率)和约束(数据完整性)。详细阐述了各对象的创建语法、使用场景和管理要点,包括视图的CHECK OPTION/READONLY约束、序列的NEXTVAL/CURRVAL伪列、索引的适用条件以及五种约束类型的实现方式。通过综合案例展示了这些对象在实际数据库设计中的协同应用,如视图多表关联、序列生成主键配合约束等,为数据库性能优化和数据规范提供了完整解决方案。 阅读详情

一、视图

1.什么是视图?

视图(view)也被称作虚表,即虚拟的表,是一组数据的逻辑表示。

2.视图的类型

根据视图所对应的子查询种类,分为几种类型:

1)select语句是基于单表建立的,且不包含任何函数运算、表达式或分组函数,叫做“简单视图”,此时视图是基表的子集;

2)select语句同样是基于单表,但包含了单行函数、表达式、分组函数或group by子句,叫做“复杂视图”;

3)select语句是基于多张表的,叫做“连接视图”。

3、视图的作用

3.1.如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,以后查询此视图即可。——简化复杂查询

3.2.视图本质上就是一条select语句,所以当访问视图时,只能访问到所对应的select语句中涉及到的列,对基表中其他列起到安全和保密的作用。——限制数据访问

4.对视图进行DML操作

4.1.DML(数据操纵语言):insert、update、delete。

4.2.对视图执行DML操作的基本原则:

—简单视图能够执行DML操作;下列情况除外:

    在基表中定义了非空列,但简单视图对应的select语句并没有包含这个非空列,导致这个非空列对视图不可见,这时无法对视图执行insert操作;

—delete操作时,只能删除现有视图里能查到的记录;

—如果视图定义中包含了函数、表达式、分组语句、distinct(过滤重复)关键字或rownum伪列,不允许执行DML操作;

—DML操作不能违反基表的约束条件。

二、序列

1.什么是序列?

序列(sequence)是一种用来生成唯一数字值的数据库对象。

2.创建序列

创建一个序列,起始数据是100,步进是10。

create sequence emp_seq start with 100 increment by 10;

3.使用序列

3.1.序列中有两个伪列:

—NEXTVAL:获取序列的下个值;

—CURRVAL:获取序列的当前值。

3.2.当序列创建以后,必须先执行一次NEXTVAL,之后才能使用CURRVAL。

三、索引

1.索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是独立于表的对象,可以存放在与表不同的表空间(tablespace)中。

2.索引记录中存有“索引关键字”和“指向表中数据的指针”(地址)。

3.合理使用索引,提升查询效率

3.1.为经常出现在where子句中的列创建索引;

3.2.为经常出现在order by、distinct后面的字段建立索引。

    如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致;

3.3.为经常作为表的连接条件的列上创建索引;

3.4.不要在经常做DML操作的表上建立索引;

3.5.不要在小表上建立索引;

3.6.限制表上的索引数目,索引并不是越多越好;

3.7.删除很少被使用的、不合理的索引。

四、主键约束

1.主键的意义

1.1.主键(Primary Key)约束条件,从功能上看,相当于非空(not null)且唯一(unique)的组合。

1.2.一个表上只允许建立一个主键,而其他约束条件则没有明确的个数限制。

2.主键选取的原则

2.1.主键应是对系统无意义的数据;

2.2.永远也不要更新主键,让主键除了唯一标识之外,再无其他的用途;

2.3.主键不应包含动态变化的数据,如时间戳;

2.4.主键应自动生成,不要人为干预,以免使它带有除了唯一标识以外的意义;

2.5.主键尽量建立在单列上。

五、外键约束

1.外键约束的意义

外键约束条件定义在两个表的字段或一个表的两个字段上,用于保证相关两个字段的关系。

2.外键约束对一致性的维护

外键约束条件包括两个方面的数据约束:

1)从表上定义的外键的列值,必须从主表被参照的列值中选取,或者为null;

2)当主表参照列的值被从表参照时,主表的该行记录不允许被删除。
机器人视觉仿真软件:PCL (Point Cloud Library)_(8).点云分割技术 点云分割技术在机器人视觉处理中起着至关重要的作用,通过不同的分割方法可以有效地将点云数据中的不同物体或区域分离出来。PCL提供了丰富的分割算法,包括基于平面的分割、基于聚类的分割、基于模型的分割和基于条件的分割等。每种方法都有其适用的场景和优缺点,选择合适的方法可以显著提高点云处理的效率和准确性。希望本节的内容能够帮助读者更好地理解和应用点云分割技术。 阅读详情

相关推荐

ESP32之 ESP-IDF + Clion 开发环境搭建(二)—— Linux版

本文介绍了 Linux 下,使用Clion IDE 用官方 ESP-IDF 开发包进行 ESP32 开发的环境搭建

Augtons 的博客 6097

数据库 索引,序列 的理解与使用方法

索引是建立在数据库表中的某些列的上面,是与表关联的,可提供快速访问数据方式,但会影响增删改的效率;常用类型(按逻辑分类):单列索引和组合索引、唯一索引和非唯一索引。   什么时候要创建索引 (1)在经常需要搜索、主键、连接的列上 (2)表很大,记录内容分布范围很广 (3)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的 (4)在经常使用在WHERE子句中...

ipllt 3757

C#报表,使用微软rdlc模板,生成Excel, PDF, Word, Image文件,使用自定义对象做数据集不连接数据库

我项目是用vs2017 建的,.NET farmwork 4.7.2 这种报表可以用于任何模式的应用,web,桌面,因为这只是生成一个文件或者文件流 步骤比较详细啰嗦,其中有讲到rdlc怎么新建设计,如果已经会设计rdlc了的可以直接跳到底部看代码的执行结果, 底部还有源码下载链接,百度盘 首先控制台安装报表包 新建rdlc 报表 建立rdlc里要用的数据模型 模型建完,或者修改都要重新...

qq_35955916的博客 5202

java索引序列_视图、序列、索引

视图视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示。视图对应于一个SELECT语句,结果集被賦予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。使用视图的两种情况:使用的查询基于非常复杂的查询之上。查询的时候希望屏蔽数据库中真实的字段名和数据CREATE [OR REPLAC] VIEW view_name[...

weixin_32816821的博客 205

金蝶云星空核心数据表解析与高效关联查询指南

本文深入解析金蝶云星空核心数据表结构,提供高效关联查询的实战指南。文章详细介绍了基础资料、业务单据和财务模块的关键表及其关联逻辑,重点阐述了如何利用关联表(_LK表)进行跨单据溯源,并分享了编写高性能SQL的实用技巧与避坑建议,帮助开发者、实施顾问和数据分析师快速掌握数据查询方法,提升工作效率。

weixin_29254673的博客 524

Xshell 连接 kali 虚拟机教程

启动ssh服务,启动后重新查看ssh服务状态,如下图active(running)正常。至此便可以直接使用Xshell登录kali系统了。至此虚拟机已经可以上网。-查看ssh服务状态。

qq_40726937的博客 2219

序列和索引

了解序列和索引的相关概念;序列的相关操作

qq_34683631的博客 757

LDRA Testbed软件静态分析_操作指南

从本文起,将开始LDRA Testbed(TBrun)教程的系列文章,包括软件静态分析、单元测试、集成测试,以及基于Testbed的自动化工具开发、持续集成、常见问题解答等。LDRA公司是专业的软件测试工具与测试技术、咨询服务提供者,其总部位于英国利物浦。其旗舰产品Testbed/TBrun功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试。不仅能进行软件静态测试,还能进行软件单元测试、软件集成测试,在白盒测试领域运用比较广泛。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1万+

SQL研习录(27)——视图基础知识详解及示例分析

SQL研习录(27)——视图版权声明一、视图1、什么是视图?2、视图有什么作用?3、如何创建视图?4、WITH CHECK OPTION5、更新视图6、向视图中插入新行7、删除视图中的行8、删除视图 版权声明 本文原创作者:清风不渡 博客地址:https://blog.youkuaiyun.com/WXKKang 一、视图 1、什么是视图?   计算机数据库中的视图就是一张虚拟的表一样,表里面的内容由...

清风不渡 540

车载软件刷写工具vFlash --- 自动化接口(Automation API)应用简介

车载软件刷写工具vFlash --- 自动化接口(Automation API)应用简介

Soly_kun的博客 359

MinerU 系列教程 | 第二课:快速上手 -- 安装与第一次解析

本篇教程作为的第二课,将带你从零完成 MinerU 的环境搭建、模型下载,并成功运行第一次文档解析。上一课我们从宏观视角认识了 MinerU,本课开始正式动手实践。

weixin_43674738的博客 299

视图 序列 索引 约束 事务

视图 在创建视图之前,要先给用户创建视图的权限,切换至管理员账户,输入grant create view to scott;给scott用户创建视图的权限,然后重新切换回scott用户进行操作。 创建视图命令:create or replace view 视图名 as select 表结构名 from 表名;视图创建完成后可直接套用表查询命令进行查询 例: --建立视图,查询员工姓名与入职日期,员工的职务 create or replace view v_emp as select ena..

klads的博客 223

MATLAB代码实现了船舶航线优化的功能,使用混合遗传算法(结合模拟退火算法)来寻找从大连港到格拉斯通港的最优航线,同时考虑了船舶的参数、气象数据(风速、风向、有效波高、波浪阻力系数等)对航行的影响

这段MATLAB代码主要实现了船舶航线优化的功能,使用混合遗传算法(结合模拟退火算法)来寻找从大连港到格拉斯通港的最优航线,同时考虑了船舶的参数、气象数据(风速、风向、有效波高、波浪阻力系数等)对航行的影响。通过以上步骤,该代码能够找到一条在考虑船舶性能和气象条件下,从大连港到格拉斯通港的较优航线,最小化燃油消耗和航行时间的加权和。

AI的内部世界的博客 512

KES数据库视图、序列、索引与约束实战教程

作为《电科金仓数据库从入门到精通》第三篇内容,这一章可以说是咱们从会写基础SQL,正式迈进企业级数据库设计的关键一步。我会用多年项目里踩坑、实战、打磨出来的经验,把视图、序列、索引、约束这四个核心对象讲得明明白白。所有内容都严格贴合电科金仓官方规范,案例全部来自政务、金融真实上线项目,用老专家带徒弟的口吻一步步带你上手,跟着做就能直接落地到项目里。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 2万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

oracle学习—视图、序列、索引、约束练习

今天学习了oracle之视图、序列、索引、约束,下面用一些练习来巩固今天的学习 练习: 1、创建一个视图v_emp_salesman,内容是所有职位SALESMAN的员工。 2、创建一个视图v_mgr_salary,列出每个主管的名字,以及他的下属中的最高薪水和最低薪水。 3、创建学生表student及序列stu_seq,然后,对student表进行插入,插入数据时,使用该

小圣_fighting的博客 2719

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SQL中的约束,索引,视图,序列

set null 串联当父表数据删除时子表数据变为空。后一条符合条件的数据位置,将符合条件的数据的rowid取出,根据。cascade 串联当父表数据删除时子表数据一起删除。将符合条件的数据的rowid取出,根据rowid取出整行数据。按照条件,在对应的条件列,从第一条开始检索到最后一条数据,按照条件,在对应的索引列,从第一条数据开始检索,检索到最。1.建立完表之后,单独的添加约束(不建议使用)强加在表中的字段上的 条件或者限制。指向表中的数据,通过建立索引,可以。索引失效的情况(重点)

dhasdha的博客 493

建立表空间、视图索引、序列、约束

表空间 创建表空间:如果要进行非系统表空间的创建,可以使用如下语法完成。 CREATE [TEMPORARY] TABLESPACE 表空间名称 [DATAFILE | TEMPFILE 表空间文件保存路径 …] [SIZE 数字[K | M]] [AUTOEXTEND ON | OFF] [NEXT 数字 [K|M]] [LOGGING | NOLOGGING] ; 本程序各个创建子句的相关说明...

dllswhy的博客 385

Oracle数据库学习(五)--视图,序列,索引,约束

1. 视图、序列、索引 1.1. 视图 1.1.1. 什么是视图 视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。 视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。 图-1视图和表 创建视图的语法: CREATE [OR R

fudapeng7的博客 7081

DB(六):视图、常用的数据字典、序列、索引、约束、事务

包括什么是视图、授权创建视图、创建视图、视图的作用、对视图进行DML操作、创建具有CHECK OPTION约束的视图、创建具有READ ONLY约束的视图、复杂视图、删除视图、常用的数据字典、创建序列、删除序列、索引的原理、创建索引、修改和删除索引、合理使用索引提升查询效率、那些写法会导致索引用不了、约束的作用、约束的类型、非空约束、唯一性约束、主键约束、外键约束、检查约束、什么是事务、事务的特性、事务的隔离级别、数据库开发的关键挑战、锁的基本概念、ORACLE锁机制、事务不提交的后果、回滚事务、保留点。

qq_45138120的博客 1882

oracle.约束、视图、序列、索引、

一、约束 1、not NULL:非空约束,不允许为null值 建表时创建: CREATE TABLE 表名(   列名 数据类型 DEFAULT 默认值 NOT NULL,   ... ); 修改表时创建非空约束: ALTER TABLE  表名 MODIFY(列名 NOT NULL); 由not NULL 修改为null ALTER TABLE  表名 MODIFY(列名 NULL); C...

JING__12的博客 357

(4)Oracle——————约束,视图,序列和索引

1,约束 1.1, 什么是约束? 1.2, 表级约束和列级约束? 1.3, NOT NULL 约束 1.4, UNIQUE 约束 1.5, PRIMARY KEY 约束 1.6, FOREIGN KEY 约束 1.7, 添加约束 1.8, 删除约束 1.9, 无效化约束 1.10,激活约束 1.11,查询约束 约束 1,什么是约束? 约束是表级的强制规定 有以下五种约束: NOT N...

qq_2533491534的博客 401

mysql建立视图 包含约束_约束、视图、序列、伪列和索引

前言 约束条件用于保证数据的完整性。主要有主键约束(primary key)/非空约束(not null)、唯一约束(unique) 检查约束(check)和外键约束(foreign key). 正文 约束 主键约束(primary key) 主键约束包含了非空和唯一 create table 表名(字段名 字段前言约束条件用于保证数据的完整性。主要有主键约束(primary key)/非空约束(...

weixin_39617405的博客 280

Oracle基础 三(约束、序列、视图 、索引)

数据分析约束约束分类修改约束序列序列的创建序列操作删除序列ROWNUM视图视图的优点创建视图同名视图视图操作索引索引优缺点创建索引删除索引索引的分类什么时候创建索引什么时候不创建索引 约束 约束就是指对插入数据的各种限制,例如:人员的姓名不能为空,人的年龄只能在 0~150 岁之间。约束可以对数据库中的数据进行保护。 约束可以在建表的时候直接声明,也可以为已建好的表添加约束。 约束分类 1:主键约...

sxau_zhangtao的博客 743

day09—oracle视图、序列、索引、约束

今天,学习oracle的第四天,学习了oracle的视图、序列、索引和约束。 视图 视图(VIEW)被称作一个虚表,是一个虚拟的表,它是基于基表存在的。它是一组数据的逻辑显示,本质是一条select语句,相当于JAVA的封装,将一条select语句封装起来。并且查询出来的结果图,赋予一个名字,即视图名。 视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发

小圣_fighting的博客 1071

oracle约束、视图、索引、序列、PL/SQL、存储过程

1、约束 主键约束 外键约束 非空约束 唯一约束 检查约束 ALTER TABLE TBL表名 ADD CONSTRAINT 约束的标识名 具体的约束; ALTER TABLE S ADD CONSTRAINT CHK_S_001 CHECK ( SSEX IN ('男','女') ); INSERT INTO S VALUES( 1008 , '任盈盈' , '...

level_Tiller的博客 234

oracle对象【约束,序列,索引,视图,同义词】

一:约束            --直接添加不为空的约束         create table tb_userinfo(                      userid number primary key, --primary key表示主键 (唯一 并且不能为空)                       username varchar2(20) n

t0404的博客 555
上一篇: SQL性能优化
下一篇: HTTP适配层
Spring_Lws
博客等级 码龄8年 110粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值