今日份学习——(MySQL)表的约束

默认值
默认值:某一种数据会经常性的出现某一个具体的值,可以在一开始就指定好:在需要真实数据的时候,用户可以选择性的使用默认值。
默认约束用于为数据表中的字段指定默认值,即当在表中插入一条新纪录时,如果没有给这几个字段赋值,那么,数据库系统会自动为这个字段插入默认值。默认值是通过Default关键字定义的,基本语法格式如下。
字段名 数据类型 Default默认值;
需要注意的是,BLOB、TEXT数据类型不支持默认约束。
默认值
默认值的生效:使用,在数据进行插入的时候,不给该字段赋值
默认值的生效使用
想要使用默认值,可以不一定去指定列表,故意不使用字段列表:可以使用default关键字代替值
用default代替值来使用默认值

列属性

列属性:真正约束字段的是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性。
列属性有很多:null/not null,default,primary key,unique key,auto_increment,comment

空属性
两个值:null(默认的)和not null(不为空)。
虽然默认的,数据库基本都是字段为空,但是实际上在真实开发的时候,尽可能要保证所有的数据都不应该为空;空的数据没有意义;空数据没办法参与运算。
空数据没办法参与运算
创建一个实例案例表:班级表(名字、教室)
创建班级表

列描述
列描述:comment,描述,没有实际意义;是专门用来描述字段,会根据表创建语句保存:用来给程序猿(数据库管理员)来进行了解的。
创建教师表

唯一键
一张表往往有很多字段需要具有唯一性,数据不能重复,但是一张表中只能有一个主键,唯一键就可以解决表中有多个字段需要唯一性约束的问题。
唯一键的本只与主键差不多:唯一键默认的允许自动为空,而且可以多个为空(空字段不参与唯一性比较)。

增加唯一键
基本与主键差不多:三种方案

  1. 方案1:在创建表的时候,字段之后直接跟unique key
    字段后直接跟unique key增加唯一键
  2. 方案2:在所有字段之后增加unique key(字段列表);–复合唯一键
    所有字段后增加unique key复合唯一键
  3. 方案3:创建表之后增加唯一键
    创建表后增加唯一键

唯一键约束
唯一键与主键本质相同,唯一的区别就是唯一键默认允许为空而且是多个为空。
允许多个为空
如果唯一键也不允许为空:与主键约束作用是一致的
唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。唯一约束是通过Unique定义的,基本语法格式如下。
#列级约束
字段名 数据类型 Unique;
#表级约束
Unique(字段名1,字段名2,···);
上述语法中,列级约束和表级约束是两种定义约束的方式。列级约束定义在一个列上,只对该列起约束作用;表级约束是独立于列的定义,可以应用在一个表的多个列上。

更新唯一键&删除唯一键
更新唯一键:先删除后新增(唯一键可以有多个:可以不删除)
删除唯一键 alter table 表名 drop unique key-- 错误:唯一键有多个
alter table 表名 drop index 索引名字-- 唯一键默认使用字段名作为索引名字
更新唯一键删除唯一键

字段属性

主键、唯一键和自增长

主键

主键:primary key,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据。不能重复 。
 一张表只能有一个主键。

增加主键

SQL操作中有多种方式可以给表增加主键,大体分三种。
  1. 方案1:在创建表的时候,直接在字段之后加primary key关键字(主键本身不允许为空)
    直接在字段后加关键字以便增加主键
    优点:非常直接;缺点:只能使用一个字段作为主键

  2. 方案2:在创建表的时候,在所有字段之后,使用(主键字段列表)来创建主键(如果有多个字段作为主键,可以是复合主键)
    复合主键

  3. 方案3:当表已经创建好之后,再次额外追加主键:可以通过修改表字段属性,也可以直接追加。 alter table 表名 add primary key(字段列表)
    追加主键

前提:表中字段对应的数据本身是独立的(不重复)

主键约束
主键对应的字段中的数据不允许重复:一旦重复,数据操作失败(增和改)
主键冲突增加数据会报错

更新主键&删除主键
没有办法更新主键:主键必须删除后才能增加
alter table 表名drop primary key;
删除主键

主键分类
在实际创建表的过程中,很少使用真实业务数据作为主键字段(业务主键,如学号,课程号);大部分的时候是使用逻辑性的字段(字段没有业务含义,值是什么都没关系)。将这种字段主键称之为逻辑主键
逻辑主键

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值