mysql-----常见六大约束以及创建方法

常见六大约束:

  1. not null 非空
  2. default :默认值,用于保证该字段的默认值 ; 比如年龄
  3. primary key : 主键,用于保证该字段的值具有唯一性,并且非空
  4. unique : 唯一约束,保证该字段的值可以为空,具有唯一性
  5. foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值;
    在从表中添加外键约束,用于引用主表中的某列的值;
    比如: 学生表的专业编号,员工表的部门编号,员工表的工种编号;
  6. check : 检查约束[mysql不支持,不报错,没有实际效果]
    一般都在创建表或者修改表时添加约束
  • 主键约束 primary key
  1. 将一个字段设置为主键:

    第一种:
    create table ta_tmp2(id int(11) primary key,name varchar(22));----单一主键

    第二种:
    create table ta_tmp3(id int(11),name varchar(22),primary key(id));-----称之为联合主键

  2. 使用主键完成自增长
    格式:
    字段名 数据类型 primary key auto_increment

    设置主键后,没一条数据不能有重复数据,不能为空,在自己手动插入数据时,会导致操作的失效,此时可以使用自增长的方式,无需手动控制,insert into 就不用写这个字段,默认自增长

  • 外键约束
    外键使用在两个表数据之间的建立连接,可以对一个表设置一个或者多个外键

    特点:
    是表中的一个字段,可以不是表的主键, 一个表中的外键可以为空值,如果不为空,每一个外键必须等于另外一张表的主键的某一个值

    作用:
    保证数据在引用时的完整性,不允许删除在另外一张表中具有关联关系的行

    创建外键的语法规则:
    consreaint 外键名 foreign key 字段名1,字段名2…references 主表名 主键列1,主键列名2…

    外键名---->外键约束的名称,一个表中不能有相同名称的外键
    字段名---->表示从表中需要添加外键约束的字段列
    主表名-----》被从表外键所依赖的表的名称
    主键列----》表示主表中定义的主键列

    例如:
    创建部门表-----设置为主键—》主表
    create table ta_dept1(id int(11) primary key,name varchar(22));

    创建员工表----》设置外键-----》从表

    create table ta_emp1(
    id int(11) primary key auto_increment,name varchar(22),deptid int(11),consreaint fk_emp_dept1 foreign key(deptid) references ta_dept1(id),)

  • 非空约束
    非空约束----》字段中的值不能为空
    格式:
    字段名 数据类型 not null
    create table second(id int(11) not null,name varchar(22),age int(22));

  • 唯一约束
    唯一约束的要求----唯一(允许为空(只能出现一次))

    作用:
    保证一列或者多列的值唯一

    格式:
    字段名 数据类型 unique

    unique和primary key之间的区别:
    一个表可以有多个字段设置为唯一约束,但是只有一个字段声明为主键
    主键不允许为空,但是unique可以为空

  • 默认约束
    默认约束—》指定某一列的默认值
    语法:
    字段名 数据类型 default 默认值
    create table pid(id INT(11) primary key auto_increment,name varchar(25),pid int(33) defalut 1111);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值