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内容。   不加为好。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值