一、索引
    1.为了方便快速查找数据表中的记录,索引也是数据库中的一个对象,索引内部信息包含记录的rowid,相当于地址信息。

2.索引被创建后,由数据库自动维护。

--格式:create [unique] index indexName on tableName(colName[,……])
--练习:创建索引,使用员工表中的部门号和员工编号create index emp_index on emp(deptno,empno);
--当使用语句:select * from emp order by deptno,empno;
--此时数据库中就使用了索引,进行快速排序。drop index emp_index;

4.索引的优缺点
    当数据表需要频繁进行DML操作时,此时数据库会自动维护索引,会增加开销,所以索引的使用需要看表的操作情况。

二、约束(constraint)
    1.也叫完整性约束条件,数据表中的一些限制条件。当数据表中的数据发生变化必须遵循这些限制条件,不遵循,不能进行DML操作。
    2.分类
          (1)非空约束 not null 简称 NN
          (2)唯一性约束 unique  简称 Uk
          (3)主键约束 primary key 简称PK
          (4)外键约束 foreign key 简称FK
          (5)检查约束 check 简称CK
    3.非空约束的建立

    drop table temp_100;create table  temp_100(name varchar2(20) not null,age number(3) constraint temp_100_age_NN not null--列级约束);

约束分列级约束和表级约束两种写法。
      列级约束:就是在建表时写在列类型后面。
      表级约束:就是在建表时写在最后一个字段后。
 非空约束没有表级约束的写法。

--建表后修改非空约束:
--解除非空约束:alter table temp_100 modify age number(3) null;
--添加非空约束:alter table temp_100 modify age number(3) not null;

4.唯一性约束:unique
       对字段进行此约束时,字段的值是唯一的,不能重复,可以为null.  
    建表时:

    create table temp_101(name varchar2(20) not null,idcard varchar2(30) unique,--列级约束);
--插入数据:insert into temp_101 values('张三','123456789');insert into temp_101 values('李四',null);drop table temp_102;create table temp_102(name varchar2(20) not null,idcard varchar2(30),constraint t_idcard_uk unique(idcard)--表级约束写法);--建表后设置唯一性约束:alter table temp_102 add constraint t_idcard_uk unique(idcard);

5.主键约束:(非空且唯一)
    主键:是一张表中能给记录唯一标识符的字段。通常此字段除了作为唯一标识符,没有其他意义。
    (1)一张表中只能有一个主键约束。其他约束没有个数限制。
    (2)主键约束相当于非空约束和唯一性约束
    (3)主键要选择表中尽可能没有数据逻辑的字段。

建表时(列级约束写法)

  create table temp_103(id number(4) primary key,name varchar2(20));insert into temp_103 values(1001,'张三');insert into temp_103 values(1002,'李四');

建表时(表级约束写法)

  create table temp_104(id number(4),name varchar2(20),constraint t_id_pk primary key(id,name));insert into temp_104 values(1001,'张三');insert into temp_104 values(1001,'李四');insert into temp_104 values(1002,null);

主键约束:可以对一个字段或多个字段进行约束,多个字段时,组合值:非空且唯一。
建表后增加主键约束:

  create table temp_105(id number(4),name varchar2(20));alter table temp_105  add constraint t_105_id_pk primary key(id);

6:外键约束:
  两张表的两个字段存在关系或者一张表的两个字段的关系。其中表B的一个字段的值依赖表A一个字段中的某一个值或者可以为null.
  那么:表A叫主表、父表,表B叫从表,子表。
  建表时(列级约束写法):

  create table temp_120(empno number(4) primary key,mgr number(4) references temp_120(empno));

建表时(行级约束写法):

  create table temp_106(empno number(4) primary key,mgr number(4),constraint te_mgr_fk foreign key(mgr) references temp_106(empno));insert into temp_106 values(1001,null);

建表后追加外键约束:

  create table temp_107(id number(4),mgr number(4));alter table temp_107 add constraint t_107_mgr_fk foreign key(mgr) references temp_106(empno);insert into temp_107 values(1001,1003);

7.检查约束:
    对某一字段或某些字段做一些条件限制。必须满足条件的可以DML.
    建表时:

  create table temp_108(name varchar2(20),gender char(1) check(gender in('f','m')));insert into temp_108 values ('张三','f');create table temp_109(name varchar2(20),sal number(9,2) check(sal>1000 and sal<10000));

建表后追加检查性约束:

  create table temp_110(name varchar2(20),gender char(3));alter table temp_110 add constraint t_gender_ck check(gender ='女' or gender='男');

select * from  emp where '1'='1';

十六、Oracle学习笔记:索引和约束(表字段快速查询和约束)相关推荐

  1. 推荐系统三十六式——学习笔记(三)

    由于工作需要,开始学习推荐算法,参考[极客时间]->[刑无刀大牛]的[推荐系统三十六式],学习并整理. 3 原理篇之紧邻推荐 3.1 协同过滤 要说提到推荐系统中,什么算法最名满天下,我想一定是 ...

  2. ORACLE学习笔记 索引和约束

    /*** 约束 ***/ * 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约 束,但如果某个约束作用于多个字段,   必须在表级定义约束 * 在定义约束时可以通过CONST ...

  3. Oracle 学习笔记 14 -- 集合操作和高级子查询

    Oracel提供了三种类型的集合操作:各自是并(UNION) .交(INTERSECT). 差(MINUS) UNION :将多个操作的结果合并到一个查询结果中,返回查询结果的并集,自己主动去掉反复的 ...

  4. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  5. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的实践-高斯牛顿法和曲线拟合

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  6. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  7. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  8. 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理

    第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 ​​​​​​视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...

  9. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-三角测量和实践

     专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第 ...

  10. 视觉SLAM十四讲学习笔记专栏汇总

    专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二 ...

最新文章

  1. 工业4.0进行时:工业机器人为何能够快速爆发?
  2. 创建租房网House脚本
  3. LinkedIn的使用开源项目
  4. Oracle结构设计技巧(访问数据库象访问内存一样 快)
  5. junit junit_JSON的JUnit Hamcrest Matcher
  6. 随机生成从大到小排序python_随机快速排序(使用Python描述)
  7. Hibernate查询方式
  8. iOS开发之地图与定位
  9. 【GDB调试学习笔记】Makefile多级目录生成多个可执行文件
  10. iPhone 无线投影到 Mac
  11. 远程计算机用户名win7,Win7远程桌面连接设置的方法
  12. 【技能】excel小技巧:利用宏制作工资条
  13. 百度旋转验证码打码模块,集成鱼刺模块类
  14. 腾讯产品经理培训生笔试攻略,笔试题型详细解析(送历年笔试题库)!
  15. 世界时间经纬_世界纬度和经度地图
  16. 如何通过组织管理提升团队战斗力?每个CTO都需要了解的三大支柱
  17. 红孩儿编辑器的模块设计13
  18. img固定宽高,图片等比缩小不变形
  19. AJAX基础教程zz
  20. Camera两种快门方式区别

热门文章

  1. 在lua中优雅的操作日期和时间
  2. IE, FF, Safari前端开发常用调试工具(转载)
  3. 网站屏蔽搜索引擎的方法
  4. 非确定型图灵机(转移函数的选择)
  5. 偏序关系与全序关系的区别
  6. linux 能降低内核,Linux 内核移除并整改了导致性能下降 50% 的 STIBP
  7. 7-8 阅览室 (20 point(s))
  8. (5)数据分析-T检验
  9. php合并两个有序链表,PHP如何实现合并两个有序链表为一个有序链表(代码)
  10. Java从入门到精通 第12章 类的封装、继承与多态