当前位置:   article > 正文

mysql 延迟约束_MySQL数据库的约束

mysql 延迟约束

一 默认值约束

约束语句 default  ‘默认值’

在建立表的时候在想要加默认约束的字段名,数据类型后面加default ‘默认值’

例如 :

create table emp(

uid  int,

name varchar(10),

dizhi varchar(10) default '山东淄博'

);

这样当对dizhi不赋值时,会默认赋值为  ‘山东淄博’

当对dizhi赋值时或赋null值是  ‘山东淄博’默认值就不会显示了。

二 非空约束

约束语句  not null

在建立表的时候在想要加非空约束的字段名,数据类型后面加not null;

例如:

create table emp(

uid  int not null,

name varchar(10),

dizhi varchar(10)

);

这里对字段uid 设置的非空属性,那么 当给 uid 赋值null的时候或者给其他值赋值不给UID赋值的时候,就会报错

但是空字符串可以赋值到uid里

三 唯一

讲道理都是唯一了竟然不用only    - - .

唯一的约束语句是 unique ,在建立表的时候在想要加唯一约束的字段名,数据类型后面加unique;

例如:

create table emp(

uid  int unique,

name varchar(10),

dizhi varchar(10)

);

这样uid字段就会加上唯一约束,唯一即为不重复的意思,所以往uid里赋值时不能存在一模一样的uid值。

四 主键

主键的定义是非空加唯一,一个表必须建立一个主键来用于精确的索引到数据的内容。

我觉得如果表里有确认不会重复且字段  可以用它作为主键 ,如果没有,建议自己建列无意义的数据作为主键。

主键的约束语句是 primary key ,在建立表的时候在想要加主键约束的字段名,数据类型后面加primary key;

例如:

create table emp(

uid  int primary key,

name varchar(10),

dizhi varchar(10)

);

因为主键本身就是非空且唯一,所以设置为主键后就不用再加 not null 和 unique。

五 自增长

自增长的语句是  auto_increment   需要自增长的字段必须为 int 类型  并且 必须为主键

在建立表的时候在想要加自增长约束的字段名,数据类型后面加primary key  auto_increment;

例如:

create table emp(

uid  int primary key auto_incerment,

name varchar(10),

dizhi varchar(10)

);

这样当不给uid赋值的时候会默认为uid赋值一个int 数字  添加第一条是1,添加第二条是2,以此类推 。

当给uid附一个数字值之后再插入其他数据且不写uid的时候  uid会从你上一条的赋值加1继续赋值。

六 外键

其实单独看两个表的时候即使他们有外键,但是外键和主键之间并没有直接联系

之后建立外键约束  或者 表连接的时候才能显现。

外键并没有语句,为了方便只是用一个表的主键名作为另一个表的字段名,而且副表的数据不能超出主表的主键内容。

例如:

主表 部门表:

create table dept(

did  int  primary key,

bumenmingcheng  varchar(10)

);

副表 员工表:

create table emp(

eid int primary key,

did  int ,

money  double

外键约束: constraint fk_emp_dept  foreign key(did)  refrrences dept(did)

);

其中 在员工表里 did就是外键

而外键约束可以加也可以不加,加了外键的内容就必须符合主表的did内容。   不加为好。

黄埃散漫风萧索,云栈萦纡登剑阁

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/653103
推荐阅读
相关标签
  

闽ICP备14008679号