mysql表字段非空约束_mysql表约束---主键、外键、非空等

使用主键约束

主键又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系是一一对应的。主键分为两种类型,单字段主键和多字段联合主键。

定义的方式也分为两种,一种是在定义列的同时指定主键,一种是完成所有列之后指定主键

CREATE TABLE tr_user

(

id INT(11) PRIMARY KEY,

name VARCHAR(25),

dept_id INT(11),

salary FLOAT

)

#或者

CREATE TABLE tr_user

(

id INT(11),

name VARCHAR(25),

dept_id INT(11),

salary FLOAT,

PRIMARY KEY(id)

)

#定义联合主键的时候为

CREATE TABLE tr_user

(

id INT(11),

name VARCHAR(25),

dept_id INT(11),

salary FLOAT,

PRIMARY KEY(id,name)

)

使用外键约束

外键用来在两个表的数据之间建立连接,它可以是一列或多列,一张表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以是空值,若不为空值,则每一个外键值必须等于另一张表中主键的某个值。

外键是表中的一个字段,它可以不是本表的主键,但对应另外一张表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一张表中具有关联关系的行。

====================================

2016.7.30验证,外键关联主表的字段可以不是主键

====================================

主表:对于两个具有关联关系的表,相关联字段中主键所在的表是主表。

子表:对于两个具有关联关系的表,相关联字段中外键所在的表是子表。

创建外键的语法规则:

[CONSTRAINT ] FOREIGN KEY 字段名1 [,字段名2,...]

REFERENCES 主键列1 [,主键列2,...]

#创建一个部门表

CREATE TABLE tr_dept

(

id INT(11) COMMENT '部门编号',

name VARCHAR(25) COMMENT '部门名称',

location VARCHAR(50) COMMENT '部门位置',

PRIMARY KEY(id)

);

#创建一个员工表

CREATE TABLE tr_user

(

id INT(11) COMMENT '员工id',

name VARCHAR(25) COMMENT '员工姓名',

deptId INT(11) COMMENT '部门编号',

salary FLOAT COMMENT '薪水',

PRIMARY KEY(id)

CONSTRAINT fk_user1 FOREIGN KEY(deptId) REFERENCES tr_dept(id)

);

执行成功后,在表tr_user上添加了名为fk_user1的外键约束,外键的名称为deptId,其依赖表tr_deot的主键id。

关联指的是在关系型数据库中,相关表之间的联系。它是通过相容或相同的属性或属性组来表示。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一样,则创建字表时,就会出现错误。

使用非空约束

非空约束指字段的值不能为空。对于使用了非空约束的字段,如果再添加数据时没有指定值,数据库系统就会报错。

创建方式: 字段名 数据类型 not null。

使用唯一性约束

唯一性约束,要求该列唯一,允许为空,但只能出现一次。保证一列或几列不出现重复值。

也有两种语法方式:

字段名 数据类型 UNIQUE;

[CONSTRAINT ] UNIQUE([,,...]);

PRIMARY KEY 跟UNIQUE的区别在于,PRIMAEY只能有一个而UNIQUE可以多个,且主键值不能为空。

使用默认约束

指定某一列的默认值,如果新增一条记录时,没有给值,就会使用默认值

使用语法 : 字段名 数据类型 DEFAULT 默认值

使用表的属性值自动增加

在数据库的应用中,经常希望每次插入新纪录时,系统自动生成字段的主键值自动加1,这个时候就可以通过表主键添加AUTO_INCREMENT来实现。一张表只能有一个字段使用AUTO_INCREMENT,且该字段必须是主键的一部分

使用语法为:字段名 数据类型 AUTO_INCREMENT

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL外键约束是用来保证数据完整性的一种机制,主要用于确保两个之间的关联关系。当在一个创建了外键,并将其指向另一个主键时,MySQL会自动检查这个外键是否存在对应的主键,如果不存在,则会拒绝这个操作。这样可以确保之间的数据关联是正确的,从而保证了数据的完整性。 外键约束的使用场景包括以下几个方面: 1. 多对一关系:当一个的多条记录关联到另一个的一条记录时,可以使用外键约束来确保这种关系的正确性。比如,在一个订单,每个订单都对应着一个客户,这时可以在订单创建一个指向客户主键外键,来确保每个订单都有对应的客户。 2. 一对一关系:当两个之间存在一对一关系时,可以使用外键约束来确保这种关系的正确性。比如,在一个员工和一个工资之间存在一对一关系,可以在工资创建一个指向员工主键外键,来确保每个工资记录都有对应的员工记录。 3. 多对多关系:当两个之间存在多对多关系时,需要使用一个来进行关联。这时可以在创建两个外键,分别指向两个关联主键,来确保这种关系的正确性。 总的来说,外键约束是用来确保数据完整性的一种重要机制,可以避免数据关联错误和数据冗余等问题,提高数据的质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值