表的约束

防止同一条数据完全重复:主键约束(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. cocos2dx json数据解析

    转自:http://blog.csdn.net/wangbin_jxust/article/details/9707873 cocos2dx本身没有json解析类库,我们这里引入libjson进行解析 ...

  2. vs2010代码注释自动生成api文档

    最近做了一些接口,提供其他人调用,要写个api文档,可是我想代码注释已经写了说明,能不能直接把代码注释生成api?于是找到以下方法 环境:vs2010 先下载安装Sandcastle 和Sandcas ...

  3. Codeforces Gym 100803G Flipping Parentheses 线段树+二分

    Flipping Parentheses 题目连接: http://codeforces.com/gym/100803/attachments Description A string consist ...

  4. linux C(hello world)三个数最大和三个数最新

  5. android一些系统相关的东西

    添加快捷方式和删除快捷方式: private void addShortcut() { Intent shortcut = new Intent( "com.android.launcher ...

  6. 2013 Fench Open quart-semifnl press conference

    http://v.youku.com/v_show/id_XNTY3NTAwOTA4.html?firsttime=179 Novak, very  congradutlations,  to rea ...

  7. 一步步学Mybatis-告别繁琐的配置之Mybatis配置文件生成工具 (7)

    今年是2013年的杀青之日,前几天由于比较忙,没有及时更新本篇的最后一篇东西,前六篇中我们主要都是采用手动配置相关的Mybatis映射文件与相应的接口类与实体类.当然如果在真正的使用过程中,由于业务的 ...

  8. Objective-C的对象模型和runtime机制

    内容列表 对象模型(结构定义,类对象.元类和实例对象的关系) 消息传递和转发机制 runtime系统功能理解 对象模型 结构定义 对象(Object): OC中基本构造单元 (building blo ...

  9. Android 数据库打包随APK发布

    有些时候我们的软件用到SQLite数据库,这个时候怎么把一个做好的数据库打包进我们的APK呢,其实很简单,就是把我们的数据库文件放到我们的手机里,所以不必局限在哪个地方写这个代码,在第一次创建数据库的 ...

  10. 【JavaScript】关于prototype原型的一些链接

    http://www.cnblogs.com/slowsoul/archive/2013/05/30/3107198.html http://www.thinksaas.cn/group/topic/ ...