表的约束

防止同一条数据完全重复:主键约束(primary key)唯一键约束(unique),自增长;

防止数据为空: 非空约束(not noll),默认值;

防止乱填数据: 外键, 定义数据类型,check;

1 主键约束(Primary key constraint)要求主键能够唯一区分每一行数据,主键可以是一列也可是几列组合成主键,并且不允许为空,表中的数据按照主键有序排列,

l 语句操作: alter table stuinfo add  constraint pk-sruno primary key(stuno)

l 表格操作:在表的设计界面,在相应的列上,右击-"设为主键"/"删除主键";

2 唯一约束(unique constraint)要求该列唯一,允许为空,但只能出现一个空值

l 语句操作:alter table stuinfo add constraint unique(stuid)

l 表格操作:在表的设计界面上,右击--“索引/键”在弹出窗口上,点击左下角“添加”,右侧属性列表,修改类型——唯一键,设置列

例子 qq 号与qq邮箱的关系

3 检查约束(check constraint)某列取值范围 格式限制等 例如 有关年龄的限制

4 默认约束(default constraint)某列的默认值

语句操作:sxex varchar(2) default('男'),

表格操作:在表的设计界面,选择相应的列,在下面的属性面版中——默认值

例子insert into Studente(sno,sname,sbirthday,class) values('201','小王','1974-06-03','95031')

5 外键约束(foreeign key constraint)用于建立两表之间的关系,需要制定引用主表的那一列

三、自增长列:标识列,Identity列

1.不能手动向里面填值。如果要写insert语句的话,则语句应当把这一列忽略

2.自增长列主要用于整型、长整型,Decimal类型。

3.不要随便把自增长列作为主键。

--

操作:在表的设计界面中,选中相应的列,在下面的属性面版——“标识规范”--选择是

防止有些该填的没有填:

一、非空约束

不能为NULL。

操作:在表的设计界面中“允许NULL值”中的复选框去掉。

二、默认值。

如果不给列赋值的话,会使用默认值填上。

操作:在表的设计界面,选择相应的列,在下面的属性面版中——默认值

防止乱填:

一、Check约束。

按照某种规则对数据进行检查。

操作:在表的设计界面中,右击相应的列,选择“CHECK约束”在弹出的对话框中,设置约束的名称和表达式。

二、外键约束。主表,从表。

主表是用来约束从表的。外键应当建在从表上。

使用主表的主键来约束从表外键。

从表中的外键列是不能随便乱填内容的,它只能填写主表主键中存在的数据。

一旦建立起外键关系来,从表的外键不能乱填,反过主表中的主键列也不能乱删除乱改。

级联删除的设置——整理

操作:先建好主表,在从表的设计界面上,右击-“关系”,在弹出的对话框中选择“添加”,在右边属性列表中设“表和列的规范”

三、类型。

完整性包括

1 实体完整性

数据行不能存在重复

2 域完整性

实现了对输入到特定列的数值的限制

3 引用的完整性

1 要求子表中的相关项必训在主表中也存在

2 如果建立了主表和子表 则 子表中的相关项目的数据,在主表中必须存在

3主表中相关的项数据更改了,则子表中的数据也要相应的更改

4在删除子表前主表不能删除

四 自定义完整性

创建表包括选择字段的名称 数据类型 定义是否为空 设置默认值 主键 外键关系 检查约束等 。表中没有合适的列作为主键可以创建标示列。

sql 中存在的5中约束

添加约束的方法: alter table 表名 add constraint 约束名 约束类型

具体的约束说明

约束名取名规则 :

主键 pk-stuno

唯一 uq

默认 de

检查 ck

外键 fk

代码添加约束书写方法(以表格stuinfo)

添加主键约束:

添加唯一键约束:alter table stuinfo add constraint unique(stuid)

添加默认约束键: alter table stuinfo add constraint df-stuadddress  default(‘地址不详’)for stuaddress

添加检查约束:alter table stuinfo add constraint ck-stuage  check(stuage between 13 and 40 )

添加外约束键: ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo  FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)

SQL---------表的约束的更多相关文章

  1. SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束

    创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...

  2. SQL Server— 存在检测、建库、 建表、约束、外键、级联删除

    /******************************************************************************** *主题: SQL Server- 存 ...

  3. SQL Server建库-建表-建约束

    ----------------------------------------SQL Server建库-建表-建约束创建School数据库------------------------------ ...

  4. 5-06使用Sql 语句为表添加约束

    约束名的命名规则推荐采用:约束类型_约束列. 为用户表添加约束 ALTER TABLE UserInfo ADD CONSTRALNT PK_UserId PRIMATY REY(UserId) CO ...

  5. [Nhibernate]SchemaExport工具的使用(二)——创建表及其约束、存储过程、视图

    目录 写在前面 文档与系列文章 表及其约束 存储过程 视图 总结 写在前面 由于一直在山西出差,有几天没更新博客了.昨晚回到家,将博客园最近三天更新的文章搜集了一下,花费了半天的时间,看了看,有些文章 ...

  6. SQL PRIMARY KEY 约束\SQL FOREIGN KEY 约束\SQL CHECK 约束

    SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...

  7. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  8. sql语句添加约束

    sql语句添加约束 --主键约束(Primary Key constraint):要求主键列的数据唯一,并且不允许为空. --唯一约束(Unique Constraint):要求该列唯一,允许为空,但 ...

  9. SQL基础--> 约束(CONSTRAINT)

    --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...

  10. SQL 数据类型、约束、索引及视图

    一.数据类型:整数:int,bigint,smallint小数:float,real,decimal(长度,精度),numeric(长度,精度)字符:char(n),varchar(n) 8000英文 ...

随机推荐

  1. HTTP 错误 405.0 - Method Not Allowed

    如果A页面通过表单(form)向B页面传递参数,而B页面是以“.htm or .html ”为扩展名的话,通过IIS解析会出现“HTTP 错误 405 -禁止访问资源”错误的提示. 原因:IIS解析文 ...

  2. 有关获取session属性时报nullPointException(空指针异常)的解决方案

    一般我们在从session中获取数据时,需要先进行赋值,也就是必须先进行session.setAttribute(String,Object)方法进行赋值,然后我们才能从session中获取内容,但是 ...

  3. eclipse提示servlet不存在 的解决办法

    在以前的版本中,Tomcat的common/lib目录下有一个名为servlet-api.jar的包,把它拷贝至你的java安装目录下jre/lib/ext下就可以了. 如果是:tomcat6就在To ...

  4. :app:transformResourcesWithMergeJavaResForDebug FAILED

    资源xml有错误,应该排查每一处xml. 如果提示gradle相关错误,需要修改系统级的build.gradle和程序级的build.gradle,比如后者不能缺少:dependencies {    ...

  5. Segger RTT : Real Time Terminal SRAM 调试解决方法

    http://segger.com/jlink-real-time-terminal.html Real Time Terminal SEGGER's Real Time Terminal (RTT) ...

  6. 有关于CSS的面试题和练习

    如果你处在一个需要面试别人有关于CSS方面技巧和知识,一时想起来还真有点难.我把我能想出来的整理在一起,提供给大家参考. 练习要做 正如他们说的,大家实际工作很重要.当然,大家通过工作练习更为重要.这 ...

  7. 【JavsScript】推荐五款流行的JavaScript模板引擎

    摘要:Javascript模板引擎作为数据与界面分离工作中最重要一环,受到开发者广泛关注.本文通过开发实例解析五款流行模板引擎:Mustache.Underscore Templates.Embedd ...

  8. Sqlserver事务发布实现数据同步

    事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的.这 里以sqlserver2008的事务发布功能为例,对发 ...

  9. php或js判断网站访问者来自手机或者pc机

    php或js判断网站访问者来自手机或者pc机 2013年9月26日,在弄wtuonline的时候为了区分用户是来自手机版浏览器还是pc,针对不同平台选择不同的网站版本,最终总结如下:         ...

  10. 话说C语言const用法

    const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰 的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修饰局部变量. 例: void ...