Oracle-SQL-基本表的定义&约束

定义基本表格式:ps:方括号代表可有可无

CREATE TABLE <表名>

        <列名>  <数据类型> [列级完整性约束],

        <列名>  <数据类型> [列级完整性约束],

        ....

        [表级完整性约束]

);   

一.数据类型

二.约束 constraint

这里写的比较完整

1.约束的种类

在Oracle中,可以通过设置约束来防止无效数据进入表中。Oracle一共有5种约束:

  • 主键约束(primary key)
  • 外键约束(foreign key)
  • 唯一性约束(unique)
  • 非空约束(not null)
  • 检查约束(check)

(1)主键约束

--主键约束可以定义在一列或多列上,值具有唯一性、非空性;

--在一个表上只能定义一个主键约束;

--Oracle会自定在主键约束的列上创建唯一性索引,可以指定唯一性索引的位置及存储参数。

(2)外键约束

--外键约束列的取值来源于参照表(父表)的参照列的值,或者空值;

--定义外键约束的列只能参照父表的主键约束列和唯一性约束列;

--父表与子表必须在同一个数据库中。

(3)唯一性约束

--可定义在一列或多列上,列的取值必须唯一;

--如果在某些列上定义了唯一性约束,而没有定义非空约束,那么在这些列上可以出现多个空值;

--Oracle会自定在主键约束的列上创建唯一性索引,可以指定唯一性索引的位置及存储参数。

(4)非空约束

--只能定义在列上;

--在同一个表中可定义多个非空约束。

(5)检查约束

--检查约束用来限制列的取值范围,其表达式必须引用相应列,表达式的计算结果是一个布尔值;

--一个列可以定义多个检查约束

--这个博主写的很详细可以看一看

2.列级约束和表级约束

根据创建表的基本语法,可以看出,列级约束紧跟着创建的列,表级约束则在创建表的最后写。

CREATE TABLE STUDENT

(

       SNO CHAR(9) PRIMARY KEY,

        SNAME CHAR(4) UNIQUE NOT NULL,

        SCOUSE CHAR(10),

        SSEX CHAR(2),

        CONSTRAINT check_STUDENT_SSEX CHECK(SSEX='BOY' OR SSEX='GRIL')

        CONSTRAINT fk_STUDENT_COURSE FOREIGN KEY( SCOURSE ) REFERENCES COURSE( CNO ) 

);

需要注意的是,除了非空约束只能定义列级约束外,其他的均可定义列级/表级约束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Karon_NeverAlone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值