MySQL数据约束,中多少的羁绊

多少约束

数量约束

浅谈 sql 中数据的羁绊,浅谈sql数据约束

数量约束

——对用户操作表的数据进行约束

 

1、默认值

MySQL数据约束,中多少的羁绊。——当用户对应用暗中同意值的字段不插入值的时候,就选择暗许值

1)对暗中同意值字段插入null是能够的。

二)对暗中同意值字段能够插入非null

【例如:address  varchar(20)  default ‘马尼拉天河’  ——暗中同意值】

 

2、非空

——限制字段必须赋值

一)非空字符必须赋值

二)非空字符无法赋null

【例如:gender varchar(2)  not  null    ——非空】

 

3、唯一

——对字段的值无法再一次

1)唯一字段能够插入null

二)唯一字段能够插入七个null

【例如:id int inique   ——唯一】

 

4、主键

——唯一+非空

一)平日状态下,每张表都会设置1个主键字段。用于标志表中的每条记下的唯一性。

2)提出不用挑选表的带有业务含义的字段作为主键,建议给每张表独立设计三个非业务含义的id字段。

【例如:id  int  primary key   —— 主键】

 

5、自增长

——对应值自动增进

【例如:id int(4) zerofill primary key  auto_increment
   ——自增长,从0开始  zerofill零填充】

 

概念:建表时在各字段类型后装置,用来对用户操作表的数目实行约束。

——对用户操作表的多少举办约束

——对用户操作表的数据举办约束

6、外键

代码:

 

 

——约束二种表的数目

当出现三种表的气象时为了缓解数量冗余高难点会独自出一张表

例如: 员工表  和  部门表

标题出现:在插入职员和工人表数据的时候,职员和工人表的部门ID字段能够不管插入!!!!!

化解难题:使用外键约束——约束插入职员和工人表的机构ID字段值(在职员和工人表的单位ID字段增多1个外键约束!!!)

1)被束缚的表称为副表,约束旁人的表称为主表,外键设置在副表上的!!!

二)主表的参考字段通用为主键!

三)增添数量: 先增加主表,再增添副表

4)修改数据: 先修改副表,再修改主表

伍)删除数据: 先删除副表,再删除主表

   【善举主先来,坏事副表当

 

sql 中数量的牢笼,浅谈sql数据约束 数据约束
—— 对用户操作表的多少开始展览封锁 1、 暗中认可值 ——
当用户对利用私下认可值的字段不插入值…

1.默认值  :   default ‘ ‘ 

1、默认值

1、默认值

功效:当用户对利用暗中认可值的字段不插入值的时候,就动用暗中认可值(自动填写)。

——当用户对使用默许值的字段不插入值的时候,就利用私下认可值

——当用户对采取暗许值的字段不插入值的时候,就使用暗许值

留意:(一)
对暗许值字段插入null是能够的

一)对暗中认可值字段插入null是能够的。

一)对暗中同意值字段插入null是足以的。

   (二) 对私下认可值字段能够插入非null

2)对暗许值字段能够插入非null

二)对默许值字段可以插入非null

create table student(
       id int,
       name  varchar(20),
       address varchar(20)  default '山东淄博'     /*默认值*/
);

【例如:address  varchar(20)  default ‘圣菲波哥伦比亚大学天河’
 ——私下认可值】

【例如:address  varchar(20)  default ‘迈阿密天河’
 ——默许值】

2.非空  :   not null

 

 

职能: 限制字段必须赋值, ‘ ‘ 空字符也是值

2、非空

2、非空

注意:  (一)非空字符必须赋值

——限制字段必须赋值

——限制字段必须赋值

             (贰)非空字符不能够赋null

壹)非空字符必须赋值

一)非空字符必须赋值

create table student(
       id int,
       name  varchar(20),
       address varchar(20) not null     /*非空*/
);
/*非空字段必须赋值*/
insert into student(id,name)values(1,'张三')   /*添加失败,因为没有赋值*/
/*非空字符不能插入null*/

insert into student values(1,'张三',NULL)    /*添加失败,因为赋值NULL*/

贰)非空字符无法赋null

二)非空字符不能够赋null

 

【例如:gender varchar(2)  not
 null    ——非空】

【例如:gender varchar(2)  not
 null    ——非空】

3.唯一 :
unique

 

 

功能: 对字段的值无法再一次

3、唯一

3、唯一

小心:(1)唯一字段能够插入null                               

——对字段的值不可能重新

——对字段的值不能够再度

           (二)唯一字段能够插入八个null

1)唯一字段能够插入null

壹)唯一字段能够插入null

create table student(
       id int unique,    /*int 唯一*/
       name  varchar(20),
       address varchar(20)     
);
insert into student(id,name)values(1,'张三')  
insert into student values(1,'张三','山东淄博')    /*添加失败,因为id重复了*/

二)唯一字段可以插入多少个null

贰)唯一字段能够插入多少个null

 

【例如:id int inique   ——唯一】

【例如:id int inique   ——唯一】

4.主键:
primary key

 

997755.com澳门葡京 , 

作用:非空 +
唯一

4、主键

4、主键

瞩目:  (一)平常情形下,每张表都会安装二个主键字段。用以标识表中的每条记下的唯一性。

——唯一+非空

——唯一+非空

             (贰)建议不用挑选表的包蕴业务含义的字段作为主键,提议给每张表独立设计二个非业务含义的id字段。

一)通常状态下,每张表都会安装一个主键字段。用于标识表中的每条记下的唯一性。

1)常常意况下,每张表都会安装1个主键字段。用于标识表中的每条记下的唯一性。

create table student(
       id int unique,    /*int 唯一*/
       name  varchar(20),
       address varchar(20)     
);
insert into student(id,name)values(1,'张三')  
insert into student values(1,'张三','山东淄博')    /*添加失败,因为id重复了 错误代码:Duplicate entry '1' for key 'PRIMARY'*/
insert into student values(null,'张三','山东淄博')  /*添加失败,因为id没有赋值 错误代码:ERROR 1048 (23000): Column 'id' cannot be null*/

二)提议不用选拔表的包括业务含义的字段作为主键,提议给每张表独立设计三个非业务含义的id字段。

贰)建议不要挑选表的盈盈业务含义的字段作为主键,建议给每张表独立设计三个非业务含义的id字段。

 

【例如:id  int  primary key  
—— 主键】

【例如:id  int  primary key  
—— 主键】

5.自增长:zerofill primary key
auto_increment

 

 

 

5、自增长

5、自增长

create table student(
       id int ZEROFILL PRIMARY KEY AUTO_INCREMENT,    /*自增长,从0开始
           zerofill :l填充 */
       name  varchar(20)     
);
insert into student(name)values('张三');        
insert into student(name)values('李四');  
insert into student(name)values('王五');  
/*id 自动对应为 0,1,2*/    

——对应值自动增进

——对应值自动增进

 

【例如:id int(4)
zerofill primary key  auto_increment    ——自增长,从0开始  zerofill零填充】

【例如:id int(4)
zerofill primary key  auto_increment    ——自增长,从0开始  zerofill零填充】

陆.外键: constraint 副表名称_主表名称_fk foreign
key(副表中的某字段名) references 主表名称(主表主键)

 

 

效果:约束三种表的多寡,副表中的外键字段必须与主表主键相对应

6、外键

6、外键

/*部门表(主表)*/
CREATE TABLE dept(
    id INT PRIMARY KEY,
    deptName VARCHAR(20)
)

/* 修改员工表(副表/从表)*/
CREATE TABLE employee(
    eid INT PRIMARY KEY,
    empName VARCHAR(20),
    deptId INT,/* 把部门名称改为部门ID  */
    /* 声明一个外键约束  /*
    CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)
    /*           外键名称                  外键               参考表(参考字段)*/
)

——约束三种表的数目

当现身二种表的事态时为了解决多少冗余高难题会单独出一张表

例如: 员工表  和  部门表

难点出现:在插入员工表数据的时候,职员和工人表的部门ID字段能够不管插入!!!!!

化解难题:使用外键约束——约束插入职员和工人表的部门ID字段值(在职员和工人表的机关ID字段增加1个外键约束!!!)

壹)被封锁的表称为副表,约束外人的表称为主表,外键设置在副表上的!!!

2)主表的参阅字段通用为主键!

3)增添数码: 先增多主表,再增多副表

四)修改数据: 先修改副表,再修改主表

伍)删除数据: 先删除副表,再删除主表

   【好事主先来,坏事副表当

 

——约束三种表的多寡

当现身两种表的情景时为了消除多少冗余高难点会单独出一张表

例如: 员工表  和  部门表

标题出现:在插入员工表数据的时候,职员和工人表的部门ID字段能够任由插入!!!!!

缓解难题:使用外键约束——约束插入职员和工人表的机关ID字段值(在职员和工人表的机关ID字段加多三个外键约束!!!)

一)被束缚的表称为副表,约束旁人的表称为主表,外键设置在副表上的!!!

贰)主表的参考字段通用为主键!

3)添扩展少: 先加多主表,再增加副表

肆)修改数据: 先修改副表,再修改主表

5)删除数据: 先删除副表,再删除主表

   【好事主先来,坏事副表当

 

 

留神:(1)被束缚的表称为副表,约束外人的表称为主表,外键设置在副表上的!!!

           (二)主表的参照字段通用为主键!

           (3)拉长多少:
先加多主表,再增多副表

           (4)修改数据:
先修改副表,再修改主表

           (5)去除数据:
先删除副表,再删除主表

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website