数据库中的约束我归纳了一下有几种据我所知道的列举出来数据库中的字段的约束很有哟个他可以对输入的内容及逆行一个规则
为了防止以后忘了所以现在列举出来给大家和我一个参考
1)主键约束(primary key)
主键约束通常都是在id字段上使用的他又两个特点不能为空或 不能重复 ,
主键约束(primary key)
例如:create table 表名(
uid number(20) primary key ,
uname varchar2(6)
);
2)非空约束(not null)
非空约束,就是保证一个字段不能为空,不能有空值存在,如果插入空值,则会报错。
3)唯一约束(unique)
如果想让某个字段唯一,则为它加上unique唯一约束,当插入了相同的值时会报错。
例如:create table 表名(
uname varchar2(6) unique,
uid number(10) primary keye
);
4)检查性约束(check (字段名 in (一个合法范围)))
使用检查性约束可以用来约束某个字段值的合法范围。例如用1表示男,2表示女。
create table 表名(
gender number(1) check (gender in(1,2)),
);
5)外键约束
外键约束用于两张表之间,用来保证关联数据的完整性。例如订单和订单明细表,一对多关系。
创建订单表:
create table 表名(
order_id number(10),
total_price number(10,2),
);
创建订单明细表:
create table order_detail(
detail_id number(10),
order_id number(10),//在order表中是主键
item_name varchar2(10),
quantity number(10),
constraint order_detail_detail_id_pk primary key (detail_id),
constraint order_detail_order_id_fk foreign key (order_id) referencs orders(order_id)|on delete cascade|on update cascade
);
6)自增(identity)
identity一起使用的时候就会出现 他可以去自动的增长不用你去人为的输入。
identity(1,1)自增从1开始每次自增 的空间是1
参考自:https://www.cnblogs.com/sunxuchu/p/5578057.html
参考自:https://www.cnblogs.com/jasonboren/p/10921508.html
数据库字段的约束
标签:uname 数据库 date identity 参考 报错 name uniq 关系
小编还为您整理了以下内容,可能对您也有帮助:
数据库里的约束有何意义?有什么作用?
能保证数据的完整性。比如主键约束实现了实体完整性,外键约束实现了参照完整性。追问我是菜鸟!能说的再详细点吗? 谢谢~
追答比如你建立了一个主键,这表示你建立了一个主键约束。那么数据库管理系统就会自动保证主键不取空值,并且主键的值互相不重复。这是实体完整性规则。
什么是数据库约束
数据库约束是对表中的数据进行进一步的,保证数据的正确性、有效性和完整性。
约束通常与一个表相关联,并使用CREATE CONSTRAINT或CREATE ASSERTIONSQL语句创建。
所有的关系数据库都支持对数据表使用约束,通过约束可以更好地保证数据表里数据的完整性。
是表上强制执行的校验规则,除此之外,当表中数据存在相互依赖性时,可以保护相关数据不被删除。约束通常无法修改。
扩展资料
数据库中的五大约束:
1、主关键字约束
主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。
2、外关键字约束
外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。
3、唯一性约束
惟一性约束指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的值。唯一性约束指定的列可以有NULL 属性。由于主关键字值是具有唯一性的,因此主关键字列不能再设定唯一性约束。唯一性约束最多由16 个列组成。
4、检查约束
检查约束对输入列或整个表中的值设置检查条件,以输入值,保证数据库的数据完整性。可以对每个列设置复合检查。
5、缺省约束
缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。SQL Server 推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。
数据库有哪几种类型约束?
主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。
唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。
检查约束(Check constraint):某列取值范围,格式等,如有关年龄、邮箱(必须有@)的约束。
默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。
外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。
扩展资料
主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。
(非空,唯一)
例如:
alter table member
add
constraint PK_member_member_no primary key clustered (member_no)
主键列的数据类型不限,但此列必须是唯一并且非空。
如该表中已有主键为1000的行,则不能再添加主键为1000。
人工或程序不好控制的时候,也可以设置主键列为自动增长列。
主键主要用在查询单调数据,修改单调数据和删除单调数据上。做程序的时候,都将表的主键设置为int型的可自增的列,这样在编程的时候,很容易区分数据。
参考资料来源:百度百科-主键约束
参考资料来源:百度百科-约束
关系数据库的三个完整性约束是什么?各是什么含义
可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion)。
1、与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。包括列约束(表约束+NOTNULL)和表约束(PRIMARYKEY、foreignkey、check、UNIQUE)。
2、域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3、断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。不必与特定的列绑定,可以理解为能应用于多个表的check约束,因此必须在表定义之外独立创建断言。
扩展资料:
完整性约束中包含四个完整性,即域完整性,实体完整性、参照完整性和用户定义完整性。
1、域完整性为保证数据库字段取值的合理性。属性值应是域中的值,这是关系模式规定了的。除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。
2、实体完整性,指关系的主关键字不能重复也不能取“空值"。一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。
3、参照完整性,定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。
4、用户定义完整性,则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
参考资料来源:百度百科-数据完整性约束
关系数据库的三个完整性约束是什么?各是什么含义
可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion)。
1、与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。包括列约束(表约束+NOTNULL)和表约束(PRIMARYKEY、foreignkey、check、UNIQUE)。
2、域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3、断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。不必与特定的列绑定,可以理解为能应用于多个表的check约束,因此必须在表定义之外独立创建断言。
扩展资料:
完整性约束中包含四个完整性,即域完整性,实体完整性、参照完整性和用户定义完整性。
1、域完整性为保证数据库字段取值的合理性。属性值应是域中的值,这是关系模式规定了的。除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。
2、实体完整性,指关系的主关键字不能重复也不能取“空值"。一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。
3、参照完整性,定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。
4、用户定义完整性,则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。
参考资料来源:百度百科-数据完整性约束
测试中经常使用到数据库, 请问数据库中字段类型和约束有什么作用?
类型和约束都是保证字段数据的完整性,
类型约束的是数据的存储类型,而约束是基于类型之上的额外。
数据类型:
①.作用: 保证字段数据的完整性
②.分类: int(有符号整数) / int unsigned (无符号整数,不可以是负数)
tinyint / tinyint unsigned
decimal(5,2) 浮点数(小数) 共占用5位,小数占用2位,整数占用3位
varchar(20) 变长字符串, varchar("hello") 最终只用5位
date 日期 "2012-12-31"
time 时间 "12:12:12"
datetime 日期时间 "2019-08-23 20:20:20"
enum("男", "女") 枚举数据类型 把所有可能的结果全部列举出来
约束:
①.作用: 保证数据的完整性,对字段中的数据进行和约束
②.分类: primary key 主键 (表示唯一一行记录)
not null (不能为空)
unique 唯一值约束, 不允许重复
default 默认值约束
foreign key 外键约束
说明: 对于字段来说, 数据类型必须要有, 但是约束可以没有
举例: 字段名 数据类型 约束
id int unsigned primary key not null
name varchar(30) not null
high decimal(5,2) default 0
数据库的知识,黑马程序员视频库有很多,想学习,可以去看一下哦!
简述数据库的三大范式和五大约束
范式书上讲解太拗口,自己总结一下:
第一范式:数据表中的每一列(每个字段)必须是不可拆分的最小单元,不允许存在隐藏字段,属性保持“原子性”(最大细分的二维表)
第二范式:第一范式基础上要有主键,所有列都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情(相当于这行阐述的是一个人时,你不能加一列说明天气)
第三范式:满足第二范式,表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键)
正规化范式(BCDF):所有表中的决定因素必须是一个候选键,如果只有一个候选键,那么就和第三范式是一样的。
有第四第五范式,更高的范式是为了解决数据冗余问题,但可以通过其他办法达到。所以一般用不到
五大约束:
1. primary KEY :设置主键约束;
2. UNIQUE :设置唯一性约束,不能有重复值;
3. DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2
4. NOT NULL :设置非空约束,该字段不能为空;
5. FOREIGN key :设置外键约束。