oracle04 约束,索引
约束(constraint)
一、定义
为表的列添加一些约束,以满足用户的需求。在之后的DML(select,insert,update)
数据时,若不满足约束条件,则语句不能执行
注:可以为约束起别名
二、约束的分类
1)非空约束 not null
2)唯一约束 unique
注:可以有多个空值
3)自定义检查约束 check
4)主键约束 primary key
表中能够唯一确定一个行数据的字段 ,列中只能有一个主键约束实际约束效果与(not null unique)一致。
注:主键联合,可以用表级约束联合几个列为主键
5)外键约束 reference
外键用来描述两张表之间的关系,必须保证外键列的值必须为参考列的值中具有唯一约束的一个
三、添加约束
1)建表时为某一列后添加约束(也可在所有列之后再添加)
2)建表后通过alter... add...或alter...drop...修改
代码演示:
create table tempt(
tname varchar2(15) not null,--非空约束,值非空
tid number(4) unique,--唯一约束,值唯一
age varchar2(3) constraint ck_age check(age between 0 and 150)--自定义检查约束
)
create table classer(
cid number(2) primary key, --主键约束
cname varchar2(15) not null
)
create table student(
cid number(3) references classer(cid),--外键约束
stuname varchar2(15) not null unique
)
索引
一、作用:
在数据库中用来加速对表的查询,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O
二、创建:
1)自动: 当在表上定义一个PRIMARY KEY 或者UNIQUE 约束条件 时,Oracle数据库自动创建一个对应的唯 一索引.
2)手动: 用户可以创建索引以加速查询
三、语法格式:
CREATE INDEX index ON table ( column [, column ]...);
Oracle分页
- Oracle下select语句每个结果集中都有一个伪字段存在,这个字段的名 字叫做rownum.用来标识每条记录的行号,行号从1开始,每次递增1
- 只能使用:<,<=
- 注意:Oracle中的rownum的是在取数据的时候产生的序号 。当 rownum和order by一起使用时,会首先选出符合rownum条件的记 录,然后再进行排序,这会给我们的查询带来难度。
rowid
- rowid 是oracle实际存在的值,是唯一的值
- rownum 是一个虚拟的顺序值 ,前提是一定要排序 select emp.*,rowid from emp;
oracle04 约束,索引的更多相关文章
- SQL 约束 索引
--约束constraint--not null 非空约束create table demo01(empno number(4),ename varchar2(10) not null,job var ...
- SQLServer与MySQL约束/索引命名的一些差异总结
约束是数据库完整性的保证,主要分为:主键/外键/唯一键/默认值/check等类别,约束是一个逻辑概念,表示数据的某些特性(不能为空,唯一,必须满足某些条件等等),索引是一个逻辑与物理概念的结合,逻辑上 ...
- 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...
- 2-16 MySQL字段约束-索引-外键
一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) ...
- Oracle 表管理 约束 索引
表的约束与完整性: 1.实体完整性 主键唯一性 2.域完整性 不能向number中插入varchar 3.参照完整性 外键 以别的表的字段作为外键,再插入该表时所插入外键的值必须在被参照表中该字段有那 ...
- mysql字段约束-索引-外键---3
本节所讲内容: 字段修饰符 清空表记录 索引 外键 视图 一:字段修饰符 (约束) 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table wo ...
- SQL基础-约束&索引
一.约束 1.约束简介 约束(constraint): 表中数据的限制条件. 完整性 有效性 约束的种类: 主键约束 外键约束 唯一约束 检查约束 非空约束 2.主键约束 主键约束: 唯一标识表中每一 ...
- day38:MySQL数据库之约束&索引&外键&存储引擎
目录 part1:数据类型 part2:约束 part3:主键索引 PRI &唯一索引 UNI &普通索引 MUL part4:外键:foreign key part5:在外键中设置联 ...
- 循环TRUNCATE表,再ENABLE约束索引等
CREATE OR REPLACE PROCEDURE STG.FP_REMOVE_MST_OLD_DATA (EXITCODE OUT NUMBER) IS /******************* ...
随机推荐
- thinkpad 睡眠唤醒后热键功能正常,但屏幕无法显示状态/进度条/图标
由于博主比较习惯笔记本开盖即用,合盖即走,不大习惯开机关机(毕竟SSD速度杠杠滴^_^).可是发现笔记本长时间睡眠乃至休眠唤醒后,使用thinkpad热键,虽然可以调节,但屏幕不显示调节状态了.解决步 ...
- 用echarts写的multiple-trees demo
echarts-multiple-trees 预览https://zhangzn3.github.io/echarts-multiple-trees/demo.html //根据数据条数自适应区域大小
- 创建Node.js TypeScript后端项目
1.安装Node.js扩展,支持TypeScript语法 npm install -g typescript npm install -g typings 2.创建项目目录project_fold ...
- mysql 表结构及基本操作
说明在mysql语句中,sql语句总共分四种 a.DDL数据定义语句=>常用的ddl语句有(CREATE[创建],DROP[删除],ALTER[修改表结构]) b.DML数据操作语句=>常 ...
- 修改linux终端命令行各字体颜色
这里我用的是 CentOS 7.5,觉得linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨.于是上网找到修改linux终端命令行颜色的方法,发现通过定义PS1环境变量即可实现,下面我以r ...
- 学习笔记: yield迭代器
yield 与 IEnumerable<T> 结对出现, 可实现按需获取 , 迭代器模式 static void Main(string[] args) { ...
- 洛古P1036 选数 题解
[我是传送门] 这是一道很经典的深搜与回溯(难度一般) 可是就这个"普及-" 让本蒟蒻做了一晚上+半个上午(实际我不会深搜回溯,全靠框架+去重); 下面让我分享下本蒟蒻的(全排列+ ...
- Android键盘显示和隐藏
一.不自动弹出键盘: 带有EditText控件的在第一次显示的时候会自动获得focus,并弹出键盘,如果不想自动弹出键盘,有两种方法: 方法一:在mainfest文件中把对应的activity设置 a ...
- eclipse怎么对项目重命名,eclipse怎么重命名类
eclipse怎么对项目重命名,eclipse怎么重命名类
- NEO智能合约开发(一)不可能完成的任务
悬赏任务 兹有如下合约 public static object Main(string method, object[] args) { if (Runtime.Trigger == Trigger ...