mysql2008分数约束_SQL数据库约束、默认和规则

数据的完整性

实体完整性 又称为行完整性,即数据库中的所有行都具有一个非空且没有重复的主键值

MSSQL中通过唯一索引、PRIMARY KEY约束、UNIQUE约束、INDENTITY属性等来强制主键的唯一性

域完整性  又叫列完整性,以保证列数据的输入具有正确的数据类型、格式和有效的数据范围

强制域有效性可以通过限制数据类型、CHECK约束和规则、FOREIGN KEY、DEFAULT、NOTNULL定义

参照完整性 又叫引用完整性,旨在保证主表和从表数据的一致性,通过FOREIGN KEY和CHECK约束实现

用户定义完整性  用户定义的不属于以上完整性的特点那个规则

SQL数据库约束、默认和规则

1)约束 CONSTRAINT

实现约束的五种方式:

(1) CHECK约束

[CONSTRAINT 约束名] CHECK (逻辑表达式)

CREATE TABLE 成绩

(

学号 char(8) NOT NULL,

CONSTRAINT ck_cj CHECK (成绩>=0 and 成绩<=100)

)

ALTER TABLE 成绩

ADD CONSTRAINT ck_cj (成绩>=60 and 成绩<=100)

ALTER TABLE 成绩

DROP CONSTRAINT ck_cj

(2)PRIMARY KEY约束

[CONSTRAINT 约束名] PRIMARY KEY [CLUSTERED] [NONLUSTERED]

CREATE TABLE 学生

(

学号 char(8) NOT NULL CONSTRAINT pl_xs PRIMARY KEY CLUSTERED

)

ALTER TABLE 学生

ADD CONSTRAINT pk_xs PRIMARY KEY CLUSTERED(学号)

(3)FOREIGN KEY约束 references

[CONSTRAINT 约束名] FOREIGH KEY    (从表外键) PEFERENCES 主表 (主表外键)

CREATE TABLE 成绩

(

学号 char(8) NOT NULL FOREIGN KEY REFERENCES 学生 (学号)

)

(4)UNIQUE约束

[CONSTRAINT 约束名] UINQUE [CLUSTERED\NONCLUSTERED](列名...)

CREATE TABLE 职工

(

身份证号 char(18) NULL CONSTRAINT uni_sfz UNIQUE

)

(5)DEFAULT约束

[CONSTRAINT 约束名] DEFAULT 默认约束值 FOR 列名

CREATE TABLE 学生

(

性别 char(2) DEFAULT '男'

)

默认[DEFAULT]

默认是一种数据库对象,可以绑定在一列或者多列上,作用与DEFAULT约束相似,在插入数据行时,为没有指定数据的列提供实现定义的默认值

创建默认对象

CREATE DEFAULT 默认对象名 AS 默认值

USE 学生成绩

CREATE DEFAULT sex_mr AS '男'

绑定默认对象

sp_bindefault [@defname=] '默认对象名' [@objname] '绑定的列名'

use 学生成绩

go

exec sp_bindefault 'sex_mr','学生.性别'

删除绑定

sp_unbindefault [@objname=] '绑定的列名'

use 学生成绩

go

exec sp_unbindefault '学生.性别'

删除默认对象

DROP DEFAULT 默认对象名

use 学生成绩

go

drop default sex_mr

规则(RULE)

规则也是一种数据库对象,可以绑定在一列或多列上,作用与CHECK约束相似,在插入数据行时,指定接收的数据值的范围

创建规则

CREATE RULE 规则名 AS 规则条件

USE 学生成绩

go

create rule cj_rl as @cj>=0 and @cj<=100

绑定规则

sp_bindrule [@rulename=] '规则对象名' [@objname] '绑定的列名'

use 学生成绩

go

exec sp_bindrule 'cj_rl','成绩.成绩'

删除规则

sp_unbindrule [@objname=] '绑定的列名'

use 学生成绩

go

exec sp_unbindrule '成绩.成绩'

删除规则对象

DROP RULE 规则对象名

use 学生成绩

go

drop rule cj_rl

SQL数据库修改默认备份和恢复路径

每次都做数据恢复和备份的时候,点Add文件,系统会自动指定到一个默认路径,是SQL的安装目录,但是我的数据库不是备份在这里,每次都要更改有点麻烦. 如上图,更改这个有三个方法. 方法一:找到注册表,手 ...

SQL数据库约束

针对维护数据库的完整性,关系型数据库SQL提供了数据约束来管理数据,常用的约束有:外键.唯一.主键. 主键约束:标识数据的唯一,便于数据查询索引: 唯一约束:保证数据的唯一性:常用语法 alter t ...

SQL数据库约束行为---防止数据乱填&lpar;即数据规范化&rpar;

防止乱填:一.Check约束.按照某种规则对数据进行检查.操作:在表的设计界面中,右击相应的列,选择“CHECK约束”在弹出的对话框中,设置约束的名称和表达式. 代码实现: create table ...

SQL数据库约束行为---防止数据漏填

防止有些该填的没有填:一.非空约束不能为NULL.操作:在表的设计界面中“允许NULL值”中的复选框去掉. 二.默认值.如果不给列赋值的话,会使用默认值填上.操作:在表的设计界面,选择相应的列,在下面 ...

sql数据库快照与恢复 规则绑定

存在数据库快照的话我发进行数据库分离 CREATE DATABASE ON (NAME=,FILENAME='') AS ...

SQL数据库约束行为---防止数据完全重复

防止同一条数据完全重复: 一.主关键字约束:主键约束.1.能够唯一的区分每一行数据.——不许重2.表中的数据按照主键字排序的.——有序3.主键字不能为空——不为空4.一个表只能有一个主键,但可以设置组 ...

Ms SQL Server 约束和规则

一.SQL约束 约束定义关于列中允许值的规则,是强制完整性的标准机制. 使用约束优先于使用触发器.规则和默认值.查询优化器也使用约束定义生成高性能的查询执行计划. 1:类型 约束的类型一共分三种 域约 ...

Sql Server约束的学习二(检查约束、默认约束、禁用约束)

接上一篇的Sql Server约束学习一(主键约束.外键约束.唯一约束) 4.检查约束 1)检查约束的定义 检查约束可以和一个列关联,也可以和一个表关联,因为它们可以检查一个列的值相对于另一个列的值, ...

MySQL-第三篇SQL语句基础(2)数据库约束

1.数据库约束. 约束是在表上强制执行的数据校验规则,约束主要用于保证数据库里数据的完整性. MySQL使用information_schema数据库里的TABLE_CONSTRAINTS表来保存该数 ...

随机推荐

C语言初级进阶2

运算符 逻辑运算符: && || ! 位运算符:& | ~ ^ 三目运算符: ? : 结构体元素访问: . -> 命令行参数argc与argv C语言中判断式 各种数据类 ...

Android TextView 添加下划线的几种方式

总结起来大概有5种做法:  1. 将要处理的文字写到一个资源文件,如string.xml(使用html用法格式化)   2. 当文字中出现URL.E-mail.电话号码等的时候,可以将TextView ...

java 28 - 4 JDK5的新特性 之 枚举的概述和自定义枚举类

枚举 枚举概述 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.举例:一周只有7天,一年只有12个月等. 回想单例设计模式:单例类是一个类只有一个实例 那么多例类就是一个类有多个实例,但 ...

JS多种方法实现随机颜色;

JS随机颜色有很多地方要用到:比如大家看到很多标签连接都是五颜六色.实现随机颜色的方法有多种,下面来看看具体的实现代码: 方法一: var getRandomColor = function() { ...

httpClient无证书访问

1.当不需要使用任何证书访问https网页时,只需配置信任任何证书 HttpClient http = new HttpClient(); String url = "https://pay ...

Oracle 参数化更新数据时报错:Oracle ORA-01722&colon; 无效数字

报错:Oracle ORA-01722: 无效数字 看了一篇博客,据说是参数与列名不能一致,改过之后还是报一样的错误:Oracle ORA-01722: 无效数字 ,后来试了一下,不是参数名必须不一样 ...

JavaScript-点击任意点显示隐藏

//开/关 var only = document.getElementById('only'); var centerBox = document.getElementById('centerBox ...

SCSS &amp&semi; SASS Color 颜色函数用法

最近做一个没有设计师参与的项目,发现 scss 内置的颜色函数还挺好用.记录分享下 rgba() 能省掉手工转换 hex 到 rgb 格式的工作,如以下 SCSS 代码 $linkColor: #20 ...

c&num;实战开发:以太坊Geth 命令发布智能合约 (五)

Token的合约代码我们参考Token-Factory的代码. 打开  https://remix.ethereum.org/#optimize=false&version=soljson-v ...

git提交到一半关闭时

一:出现问题 最近写东西,在提交代码时,突然出现一大推文件... 忘记加.gitignore文件了,导致所有的安装依赖也都上传了.所以,点击了关闭按钮,当下一次提交时,出现了错误. Another g ...

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

weixin_39684967

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值