码迷,mamicode.com
首页 > 数据库 > 详细

mysql-(二)-数据约束

时间:2016-06-29 13:22:06      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:

数据约束:对用户操作数据表的约束

1.默认值

作用:当用户对使用默认值的字段不插入值的时候,就使用默认值

create table student(
    id int,
    name varchar(20),
    address varchar(20)
)

insert into student (id,name) values(1,"cxspace");

不插入address,显示值为 NULL

drop table student

create table student(
    id int,
    name varchar(20),
    address varchar(20) default 阿富汗  --认值约束
)

当执行上面的insert的时候,mysql自动未为没有插入值的字段,插入default值

inset into student (id , NAME , address) values(1,奥巴马,NULL)

//执行该语句,address字段值显示为null

注意:默认值字段允许为空!!!

2.非空

create table student(
   
       id int,
       name varchar(20),
       gender varchar(2)  not null   --非空约束

)

执行

insert into student( id , name) values (1,haha);

一.报错,说明指定未非空的字段必须赋值

insert into student (id ,name , gender) values (2 , mike , null);

二.报错,非空字段不能赋予null值

3.唯一

create table student(
   
       id int  unique,    ---唯一约束
       name varchar(20),
)

执行

insert into student (1,tom);

insert into student (1,jack);  //执行这个语句报错

违反唯一约束报错

执行

insert into student(name) values(jhon);

不报错,唯一可以不给值

如果在执行一次上面语句,包不报错???

不报错,唯一约束对NULL值不起作用

总结:唯一的字段可以插入null值,也可以插入多个null值

4.主键(非空+唯一)

create table student (
    id int primary key, --主键
    name varchar(20) 
)

执行下面语句

insert into student(name) values (lisi); 

报错===违反非空约束

执行下面语句

insert into student (1,tom);

insert into student (1,jack);  //执行这个语句报错

报错===违反唯一约束

通常情况下

1===每张表都会设置一个主键字段,用以标记表中每条字段的唯一性.

2===建议不要选取包含业务含义的字段作为主键,给每张表设计一个非业务含义的id字段.

 

5.自增长

 

6.外键

 

mysql-(二)-数据约束

标签:

原文地址:http://www.cnblogs.com/cxspace/p/5626181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!