• constraint的一些用法总结


    主要就是增加约束的

    以下几种约束 、并 一一列举:

    1.主键约束:
    要对一个列加主键约束的话,这列就必须要满足的条件就是分空
    因为主键约束:就是对一个列进行了约束,约束为(非空、不重复)
    以下是代码  要对一个列加主键,列名为id,表名为emp

    格式为:
    alter table 表格名称 add constraint 约束名称 增加的约束类型 (列名)

    例子:
    alter table emp add constraint ppp primary key (id)

    ————————————————————————————————

    2.check约束:
    就是给一列的数据进行了限制
    比方说,年龄列的数据都要大于20的
    表名(emp) 列名(age)

    格式:
    alter table 表名称 add constraint 约束名称 增加的约束类型 (列名)

    例子:
    alter table emp add constraint xxx check(age>20)

    ______________________________________________________________________

    3.unique约束:
    这样的约束就是给列的数据追加的不重复的约束类型

    格式:
    alter table 表名 add constraint 约束名称 约束类型(列名)
    比方说可以给ename列加个unique,让ename列的数据不重复
    例子:
    alter table emp add constraint qwe unique(ename)

    ————————————————————————————————

    4.默认约束:
    意思很简单就是让此列的数据默认为一定的数据

    格式:
    alter table 表名称 add constraint 约束名称 约束类型 默认值) for 列名

    比方说:emp表中的gongzi列默认为10000

    alter table emp add constraint jfsd default 10000 for gongzi


    ————————————————————————————————

    5.外键约束:
    这个有点难理解了,外键其实就是引用
    因为主键实现了实体的完整性,
    外键实现了引用的完整性,
    应用完整性规定,所引用的数据必须存在!

    其实就是个引用,
    比方说一个表名称叫dept 里面有2列数据 一列是ID一列是ENAME
    id:表示产品的编号
    ename:表示产品的名称

    另外一个表格名称是emp 里面有2列数据,一列是ID 一列是DID
    id:表示用户号
    did:表示购买的产品号

    要让emp表中的did列去引用dept表中的id

    可以用下面的方法

    格式:
    alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称(列名)

    例子:
    alter table emp add constraint jfkdsj foreign key (did) references dept (id)

    但是我经过试验默认约束这样做并不好用,我有一个例子,像我这样建表就好用了:

     

    属性

    类型(长度)

    默认值

    约束

    含义

    STUNO

    数值 (8)

    主键

    学号

    SNAME

    变长字符 (12)

    非空

    姓名

    SEX

    字符 (2)

    性别

    BIRTHDAY

    日期

    生日

    EMAIL

    变长字符 (20)

    唯一

    电子邮件

    SCORE

    数值 (5, 2)

    检查

    成绩

    CLASSNO

    数值 (2)

    外键,关联到表CLASS的CLASSNO主键

    班级编号

     

    Create table student(
    stuno number(8) ,
    sname varchar2(12not null,
    sex char(2default '',
    birthday date,
    email varchar2(20),
    score number(5,2),
    classno number(2),
    constraint student_stuno_pk primary key(stuno),
    constraint student_email_uk unique(email),
    constraint student_score_ck check(score>=0),
    constraint student_classno_fk foreign key (classno) references class(classno));

    部分出处:http://blog.csdn.net/steven_oyj/archive/2009/11/01/4754061.aspx

  • 相关阅读:
    SSH 远程执行任务
    redmine + git
    progit-cn
    bash keys
    性能优化挑战重重,鲲鹏 HPC 如何突破算力桎梏?
    基因组实现自动AI建模,华为云助力科研人员探索生命奥秘
    【华为云技术分享】从零搭建一个灰度发布环境
    全面拥抱 FastApi — 多应用程序项目结构规划
    【华为云技术分享】物体检测yolo3算法 学习笔记(1)
    【华为云技术分享】物体检测yolo3算法 学习笔记2
  • 原文地址:https://www.cnblogs.com/gredswsh/p/sql_constraint.html
Copyright © 2020-2023  润新知