1.check约束 范围

-- 建表时定义性别取值为“男或女” 默认为“男”
-- 年龄在14到65之间(14,65)

-- in (值1,值2,值3...值n)  属于值1到值n其中之一(详见聚集函数)

create table Student(
    Sno Char(7) primary key,--学号
    Sname Char(10) not null,--学生姓名
    Ssex Char(2) check(Ssex in('男','女')) default '男'not null,--性别
    Sage Smallint check(Sage>14 and Sage<65)--年龄
);

2.外码违约处理方式为删除级联或更新级联

-- 成绩表Sno(学号)关联学生表Sno    
-- 成绩表Cno(课程号)关联课程表Cno
-- 设置两个外键违约处理方式为删除级联和更新级联

create table Cj(
    Sno Char(7),--学号
    Cno Char(1),--课程号
    Grade Decimal(4,1) check(Grade>0 and Grade<100),--成绩
    primary key(Sno,Cno),
    foreign key(Sno) references Student(Sno) on delete cascade on update cascade,
    foreign key(Cno) references Course(Cno) on delete cascade on update cascade

);

建表后添加check约束:
alter table Cj add constraint ck_1 check(Grade>0 and Grade<100);

为外键设置了删除级联和更新级联,当处理主表时外表受到牵连。即:更新(删除)主表值-》外表相应值也更新(被删除)

注意:
-- 建表时这样建立外键是错误的
create table Borrow(
    bid varchar(6) primary key,
    bkid varchar(6)    foreign key(bkid) references Book(bid) --error  错误写法
);

-- 乖乖这样吧
create table Borrow(
    bid varchar(6) primary key,
    bkid varchar(6),
    constraint Bor_kid_Book_bid foreign key(bkid) references Book(bid)
);

3.添加,删除,修改约束

3.1添加约束

alter table 表名 add constraint 约束名 约束表达式
alter table Course add constraint CK_Course_Credit  check(Credit in (1,2,3,4));

3.2删除约束

alter table 表名 drop 约束名
alter table Course drop CK__Course__Credit__164452B1;

3.3修改约束

先删除 再添加

数据库 完整性约束定义相关推荐

  1. 主键SQL教程–如何在数据库中定义主键

    Every great story starts with an identity crisis. Luke, the great Jedi Master, begins unsure - " ...

  2. 数据库的定义、模型 和 模式

    目录 数据库的定义 数据模型 数据库系统的模式 数据库的定义 数据库是长期储存在计算机内.有组织的.可共享的大量数据的集合. 数据库中的数据按一定的数据模型组织.描述和存储,具有较小的冗余度.较高的数 ...

  3. mysql数据操作-数据库的定义-DLL

    >查询数据库中有哪些内容 了解这几个东西是个啥 >登陆与退出 从命令提示符进入到mysql >SQL规范 DDL,定义阶段 DML,操作 DCL,控制 mysql操作之DDL - q ...

  4. 数据库的定义、建立和维护

    数据库的定义.建立和维护 一.实验目的 定义.建立.维护数据库 二.实验内容 1.E-R 图 及简单说明 2.创建数据库.基本表和修改基本表结构的方法: 3.向数据库表中输入数据.修改数据和删除数据 ...

  5. mysql存放double_double在数据库怎么定义 如何将double数组转成二进制存到数据库里...

    double是什么数据类型?它有什么作用? 怎么在MYSQL数据库的表中插入一个double型数据? 我插入double型数据的时候MYSQL会直接将double型数据四舍五入为整数,如double型 ...

  6. mysql查看指定数据库的定义声明(字符集等信息)

    @TOCmysql查看指定数据库的定义声明(字符集等信息) 欢迎使用Markdown编辑器 mysql8.0以上: SHOW CREATE DATABASE '数据库名字': 完成了. 新的改变 我们 ...

  7. Django站点管理、视图和URL(管理界面本地化、创建管理员、注册模型类、发布内容到数据库、定义视图、配置URLconf)

    1.Django站点管理 站点: 分为内容发布和公共访问两部分 内容发布的部分由网站的管理员负责查看.添加.修改.删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模 ...

  8. 数据库的定义、关系型数据库的四种约束。。

    今天离开C#开始进入数据库的学习,初步认识了一下:1,什么是数据库  2,数据库表的创建  3,关系型数据库的四种约束方法 1,什么是数据库: (1)定义:数据库是存储在计算机硬盘上,有组织,可以共享 ...

  9. 联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...

    知识点太多太杂了,随机一个: 十. 定义约束 1 数据库中的约束类型 – 非空约束(NOT NULL) – 唯一性约束(UNIQUE) – 主键约束(PRIMARY KEY) – 外键约束(FOREI ...

最新文章

  1. YII2 models非常好用的控制输出数据【重写Fields】
  2. python解析数据包时出现问题_MySQL Connector / Python InterfaceError:“解析EOF数据包失败”...
  3. java jigsaw_是从Java 8启动的Project Jigsaw吗?
  4. 如何评价强gis与弱gis_什么是gis的简化解释
  5. dom4j实现为list添加父节点_Heap 堆的实现
  6. 数字图像处理--图像颜色
  7. 移动计算云分布式数据缓存服务,实现快速可靠的跨区域多活复制
  8. c语言怎么加分数,用C语言编程平均分数
  9. 《树莓派Python编程入门与实战》——1.2 获取树莓派
  10. 使用T4模板动态生成邮件内容并储存到任意位置
  11. lux视频下载工具的安装和使用
  12. Android Studio 占C盘空间是什么原因?
  13. Https网站中请求Http内容
  14. 关于求余和取模的区别以及负数取摸
  15. 软工实践第二次作业之个人项目
  16. 全国企业信用信息公示系统
  17. 加盟店可靠吗?如何识破加盟骗局?
  18. android连接雷电模拟器,android studio连接雷电模拟器 【AS 模拟器】
  19. 一个团队(很多人)都存在的共性问题
  20. (译)对利物浦来说杰拉德仍适用吗? is Steven Gerrard good for Liverpool?

热门文章

  1. 软考_法律法规与标准化知识
  2. java xmap_转:使用XMAP完成JavaBean和XML之间转换
  3. 网页小技巧-360doc个人图书馆复制文字
  4. ACL的rule中的deny/permit在各个业务模块里的场景是怎样的
  5. ElasticSearch-查询语法(结构化查询)
  6. matlab绘制三维柱状图(hist3,bar3)
  7. linux php重启
  8. 如何正确使用TreeView的HitTest方法?
  9. SoftMax函数,交叉熵损失函数与熵,对数似然函数
  10. 奥数-------i3*6528=3i*8256 让我们猜猜i的值