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内容。 不加为好。
黄埃散漫风萧索,云栈萦纡登剑阁