zoukankan      html  css  js  c++  java
  • 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; 
  • 相关阅读:
    Android weight属性详解
    设计模式(一)__单例设计模式
    Java中线程的生命周期
    抽象类和接口
    SQL sever 怎样将DBF文件导入到数据库
    JS去除字符串中空格,及常用正则表达式
    Oracle 11g问题1:关于error:ORA12541: TNS: 没有监听器
    access、excel取随机n条记录
    tsql字符串操作
    测试SQL Server执行时间和CPU时间
  • 原文地址:https://www.cnblogs.com/heviny/p/10743824.html
Copyright © 2011-2022 走看看