Oracle数据库操作大全(十三)——约束,索引
2014-10-05 17:55
337 查看
索引——在查询表慢的时候,说先要想到建索引
维护数据的完整性:
***约束:
经典案例:
建表:
create table
goods(
goodsId char(8) primary key,--主键
goodsName varchar2(30),
unitprice number(10,2) check (unitprice>0),
category varchar2(8),
provider varchar2(30)
);
create table customer(customerId char(8) primary key,--主键
name varchar2(50) not null,
address varchar2(50),
email varchar2(50) unique,
sex char(2) default'男' check(sex in('男','女')),//sex默认为男,其只可在‘男’或‘女’范围内.
cardId char(18)
);
create table
purchase(
customerId char(8) references customer(customerId),
goodsId char(8) references goods(goodsId),
nums number(10) check (nums between 1 and 30)
);
alter table goods modify goodsName not null;//修改表goods中goodsName字段使其不为空。
alter table customer add constraint
aa unique(cardId);//增加身份证不为空,其中阴影标记为约束名自定义即可
alter table customer add constraint
bb check (address in ('东城','西城'));//增加客户住址约束
显示约束信息:
表级定义和列级定义:
管理索引:
为什么添加索引会加快查询速度?
****一个图书馆书图书没有进行分类存放
****一个图书馆书图书进行按类别(且按序)存放,
去借书可先在电脑查询书的具体位置,可快速的找到要看的书。(电脑相当于建立的索引)
索引的建立:
***简单索引建立
create index
nameIndex on customer(name);//nameIndex为索引名,自定义;customer为表名,name为列
***单列索引
***复合索引
create index emp_isx1 on emp(ename,job);//表示先按ename查询,然后按job查询
create index emp_isx2 on emp(job,ename,);//表示先按job查询,然后按ename查询
知识小提:
在利用select语句查询时,如:select * from customer where job='CLERK' and
ename='SMITH';
一般把检索范围小(更容易检索出结果)的放在后(ename),比较大的放在前(job);(因为SQL语句为从后往前扫描)
索引使用原则:
维护数据的完整性:
***约束:
经典案例:
建表:
create table
goods(
goodsId char(8) primary key,--主键
goodsName varchar2(30),
unitprice number(10,2) check (unitprice>0),
category varchar2(8),
provider varchar2(30)
);
create table customer(customerId char(8) primary key,--主键
name varchar2(50) not null,
address varchar2(50),
email varchar2(50) unique,
sex char(2) default'男' check(sex in('男','女')),//sex默认为男,其只可在‘男’或‘女’范围内.
cardId char(18)
);
create table
purchase(
customerId char(8) references customer(customerId),
goodsId char(8) references goods(goodsId),
nums number(10) check (nums between 1 and 30)
);
alter table goods modify goodsName not null;//修改表goods中goodsName字段使其不为空。
alter table customer add constraint
aa unique(cardId);//增加身份证不为空,其中阴影标记为约束名自定义即可
alter table customer add constraint
bb check (address in ('东城','西城'));//增加客户住址约束
显示约束信息:
表级定义和列级定义:
管理索引:
为什么添加索引会加快查询速度?
****一个图书馆书图书没有进行分类存放
****一个图书馆书图书进行按类别(且按序)存放,
去借书可先在电脑查询书的具体位置,可快速的找到要看的书。(电脑相当于建立的索引)
索引的建立:
***简单索引建立
create index
nameIndex on customer(name);//nameIndex为索引名,自定义;customer为表名,name为列
***单列索引
***复合索引
create index emp_isx1 on emp(ename,job);//表示先按ename查询,然后按job查询
create index emp_isx2 on emp(job,ename,);//表示先按job查询,然后按ename查询
知识小提:
在利用select语句查询时,如:select * from customer where job='CLERK' and
ename='SMITH';
一般把检索范围小(更容易检索出结果)的放在后(ename),比较大的放在前(job);(因为SQL语句为从后往前扫描)
索引使用原则:
相关文章推荐
- Oracle数据库操作大全(十三)——pl/sql编程(存储过程、函数、触发器)
- Oracle数据库Constraint约束的常用操作及异常处理
- Oracle数据库Constraint约束的常用操作及异常处理
- Oracle数据库操作大全(十四)pl/sql编程之存储过程
- ORACLE数据库的数据对象-表、约束、视图、索引、序列
- [置顶] Oracle数据库常见的增删改查操作语句大全
- Oracle PL\SQL操作(四)索引与约束
- 【从零开始学习Oracle数据库】(5)约束视图与索引
- Oracle数据库基本操作(二) —— 视图、序列、索引、同义词
- Oracle数据库创建表是有两个约束带有默认索引
- 如何获取Oracle数据库中某个用户下的所有表、索引、约束、触发器
- Oracle数据库SQL语句操作大全汇总
- Oracle数据库操作(视图,序列,索引,同义词)
- Oracle数据库操作大全(八)——Oracle的函数运用
- oracle的segments(表、字段、约束、索引)操作
- Oracle数据库SQL语句操作大全汇总
- 关于Oracle数据库各种操作大全(四)——分页(视图)
- MySQL数据库表约束、索引、表操作及部分常见条件运算符
- Oracle数据库表操作的五种约束条件(主键、外键、非空、唯一、检查)
- Oracle数据库学习(五)--视图,序列,索引,约束