数据库 完整性约束定义
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修改约束
先删除 再添加
数据库 完整性约束定义相关推荐
- 主键SQL教程–如何在数据库中定义主键
Every great story starts with an identity crisis. Luke, the great Jedi Master, begins unsure - " ...
- 数据库的定义、模型 和 模式
目录 数据库的定义 数据模型 数据库系统的模式 数据库的定义 数据库是长期储存在计算机内.有组织的.可共享的大量数据的集合. 数据库中的数据按一定的数据模型组织.描述和存储,具有较小的冗余度.较高的数 ...
- mysql数据操作-数据库的定义-DLL
>查询数据库中有哪些内容 了解这几个东西是个啥 >登陆与退出 从命令提示符进入到mysql >SQL规范 DDL,定义阶段 DML,操作 DCL,控制 mysql操作之DDL - q ...
- 数据库的定义、建立和维护
数据库的定义.建立和维护 一.实验目的 定义.建立.维护数据库 二.实验内容 1.E-R 图 及简单说明 2.创建数据库.基本表和修改基本表结构的方法: 3.向数据库表中输入数据.修改数据和删除数据 ...
- mysql存放double_double在数据库怎么定义 如何将double数组转成二进制存到数据库里...
double是什么数据类型?它有什么作用? 怎么在MYSQL数据库的表中插入一个double型数据? 我插入double型数据的时候MYSQL会直接将double型数据四舍五入为整数,如double型 ...
- mysql查看指定数据库的定义声明(字符集等信息)
@TOCmysql查看指定数据库的定义声明(字符集等信息) 欢迎使用Markdown编辑器 mysql8.0以上: SHOW CREATE DATABASE '数据库名字': 完成了. 新的改变 我们 ...
- Django站点管理、视图和URL(管理界面本地化、创建管理员、注册模型类、发布内容到数据库、定义视图、配置URLconf)
1.Django站点管理 站点: 分为内容发布和公共访问两部分 内容发布的部分由网站的管理员负责查看.添加.修改.删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模 ...
- 数据库的定义、关系型数据库的四种约束。。
今天离开C#开始进入数据库的学习,初步认识了一下:1,什么是数据库 2,数据库表的创建 3,关系型数据库的四种约束方法 1,什么是数据库: (1)定义:数据库是存储在计算机硬盘上,有组织,可以共享 ...
- 联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...
知识点太多太杂了,随机一个: 十. 定义约束 1 数据库中的约束类型 – 非空约束(NOT NULL) – 唯一性约束(UNIQUE) – 主键约束(PRIMARY KEY) – 外键约束(FOREI ...
最新文章
- YII2 models非常好用的控制输出数据【重写Fields】
- python解析数据包时出现问题_MySQL Connector / Python InterfaceError:“解析EOF数据包失败”...
- java jigsaw_是从Java 8启动的Project Jigsaw吗?
- 如何评价强gis与弱gis_什么是gis的简化解释
- dom4j实现为list添加父节点_Heap 堆的实现
- 数字图像处理--图像颜色
- 移动计算云分布式数据缓存服务,实现快速可靠的跨区域多活复制
- c语言怎么加分数,用C语言编程平均分数
- 《树莓派Python编程入门与实战》——1.2 获取树莓派
- 使用T4模板动态生成邮件内容并储存到任意位置
- lux视频下载工具的安装和使用
- Android Studio 占C盘空间是什么原因?
- Https网站中请求Http内容
- 关于求余和取模的区别以及负数取摸
- 软工实践第二次作业之个人项目
- 全国企业信用信息公示系统
- 加盟店可靠吗?如何识破加盟骗局?
- android连接雷电模拟器,android studio连接雷电模拟器 【AS 模拟器】
- 一个团队(很多人)都存在的共性问题
- (译)对利物浦来说杰拉德仍适用吗? is Steven Gerrard good for Liverpool?
热门文章
- 软考_法律法规与标准化知识
- java xmap_转:使用XMAP完成JavaBean和XML之间转换
- 网页小技巧-360doc个人图书馆复制文字
- ACL的rule中的deny/permit在各个业务模块里的场景是怎样的
- ElasticSearch-查询语法(结构化查询)
- matlab绘制三维柱状图(hist3,bar3)
- linux php重启
- 如何正确使用TreeView的HitTest方法?
- SoftMax函数,交叉熵损失函数与熵,对数似然函数
- 奥数-------i3*6528=3i*8256 让我们猜猜i的值