表的约束

防止同一条数据完全重复:主键约束(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. 有关ListBox

    如何拿到Source:从SQL,从XML file SQL:一个是ObjectDataProvider //用linq方法拿到SQL data,wrap到一个IEnumerable<Custom ...

  2. C:指针、数据类型、格式化输入输出、输入函数的坑点

    指针.数据类型.格式化输入输出.输入函数的坑点 有时候我们迷茫的时候,坚持就是最好的选择. 1.指针的分类为什么很重要? 参考 答:因为指针会根据相应的类型取对应长度的数据,类型决定所取数据的长度.如 ...

  3. GetSafeHwnd()函数解释[转]

    当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ ...

  4. INNO&&DELPHI

    好久不弄delphi了,再次见到inno,居然不知所措~ 让人亲切的 var,又见到了.而如今,到处可见. 整目录复制 Flags: igNoreversion recursesubdirs crea ...

  5. 第三章TP-Link 703N OpenWrt设置网络

    默认情况下不开启wifi,另外需要连接到网络来安装软件,所以需要修正配置文件. 可以用vi修改相关配置(不会用vim的同学悲剧了). 首先修改/etc/config/wireless文件,注释掉 # ...

  6. Django官方文档学习1——第一个helloworld页面

    Django 1.10官方文档:https://docs.djangoproject.com/en/1.10/intro/tutorial01/ 1.查看django版本 python -m djan ...

  7. AS与JS相互通信(Flex中调用js函数)

    转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是:     1.导入包 (import f ...

  8. 新唐M0 ISP下载要点

    http://blog.csdn.net/rejoice818/article/details/7736029 一.注意:官方光盘内“Software Utilities”目录下,可找到ICP或ISP ...

  9. 如何在DigitalOcean安装Ghost

    查看原文: http://leancodingnow.com/how-to-install-ghost-on-digital-ocean-vps/ 这篇文章主要讲一下如何在DigitalOcean V ...

  10. MySQL主从读写分离专题

    主机A:192.168.1.101从机B:192.168.1.102 1.先登录主机 Amysql>GRANT REPLICATION SLAVE ON *.* TO slave_user@19 ...