mysql约束笔记

primary key 主键
用法①
create table 表名(
    字段1 类型 primary kry,--id是主键 
    字段2 类型 ,
    ..........

用法②
create table 表名( 
    字段1 类型,--id是主键 
    字段2 类型 ,
    ..........,
    primary key(字段1)

1.主键列的值不可以重复 且不可以为null
2.一张表只能有一个主键
3.使用desc 表名 语句可以查看主外键情况
复合主键(字段1+字段2 做成一个复合主键)
create table 表名(
    字段1 类型 ,--id是主键 
    字段2 类型 ,
    字段3 类型 ,
    primary key(字段1,字段2)--复合主键 要俩字段同时一样才会违反主键约束

not null 非空 
定义了not null的列不可为空

unique 唯一 
定义了该约束后 该列值不可以重复
细节:1.只指定unique 没指定not null 则unique字段可以有多个null
    2.一张表可以有多个unique字段
    3.not null + unique 效果等价于主键


foreign key references (关联字段)外键
先创建主表
create table 主表1(
    字段1 类型0 primary key,
    字段2 类型,
    字段3 类型,
    ......
    )
再建从表
create table 从表2(
    字段4 类型 primary key,
    字段5 类型0,
    字段6 类型,
    ......,
    foreign key(主表1)references 主表1(字段1)
    )
用于定义主表和从表之间的关系:外键约束要定义在从表上,主表则必须具有主键约束
或是unique约束.当定义外键约束后,要求外键列数据必须在主表的主键列存在或是
为null

check
1.用于强制行数据必须满足的条件.假定在sal列上定义了check约束,并
要求sal列值在1000~2000之间如果不再1000~2000之间就会提示出错。
💫 oracle和sql server 均支持check ,但是mysql5.7目前还不支持check ,只做
语法校验,但不会生效。
语法:字段名 类型 check (check条件)
user表
id, name,sex(man,woman), sal(大于100小于900)
在mysql中实现check的功能,一般是在程序中控制,或者通过触发器完成。
create table 表名1(
    字段1 类型,
    字段2 类型 check(字段2 in ('11','22')) 字段2 只能是11 或者22
    字段3 类型 check(字段3<100 and 字段3>0) 字段3只能在0~100之间
    )

自增长identity(1,1)1开始 一次增长1【sqlserver的自增长】

自增长 auto_increment 
自增长字段新增
    1.字段直接填null
    2.insert into 表名(字段2,字段3,字段4,...)values(值2,值3,值4,...) 字段1是自增长 不写
    3.全字段都写上 自增长项的值写null 【好无聊啊这个写法😓】

自增长细节
1.一般来说自增长是和primary key 配合使用的
2.自增长也可以单独使用 [但是需要配合一个unique]
3.自增长修饰的字段为整数型的 (虽然小数也可以但是非常非常少这样使用)
4.自增长默认从1开始,你也可以通过如下命令修改alter table 表名 auto_increment = 新的开始值
5.如果添加数据时,给自增长的字段添加了值,则以添加时指定的值为准,并且下一个字段的自增长会
以该值为开始值【自增长时以当前字段所有值的最大值为开始值,如果给定的值比最大值小 则会自动
排序放到对应大小的位置】
建议:设置了自增长 就按照自增长的规则添加 不要自己定值


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值