数据库约束

约束:约束是添加在 列 上的,用来约束列。

一、主键约束 primary key(~)

当表的某一列被指定为主键之后,该列就不能为空,不能有重复值出现,这样主键才能唯一标识一条记录。

1.主键的三个特性:

a.非空     b.唯一     c.被引用(被外键引用时)

2.创建表时指定主键的两种方式:

//方式一:
create table 表名(
    id int(11) primary key,
);

//方式二:
create table 表名(
    id int(11);
    prinmary key(id)
);

3.修改表时指定主键:

alter table 表名 add primary key(主键列);

4.删除主键:

alter table 表名 drop primary key;

二、主键自动增长 auto_increment

因为主键列的特性是:唯一、非空,因此我们通常指定主键列为整型,并且设置其为自动增长,这样可以保证在插入数据时主键列的唯一和非空特性。

1.设置自动增长:

create table 表名(
    id int(11) primary key auto_increment,
);

2.修改表时设置主键自动增长:

alter table 表名 change 原主键列名 新主键列名 新类型 auto_increment;

3.修改表时删除主键自动增长:

alter table 表名 change 原主键列名 新主键列名 新类型;

4.测试主键自动增长:

三、非空约束 not null

某些列不能插入为null值,所以可对列添加非空约束:

create table 表名(
    id int(11) primary key auto_increment,
    name varchar(255) not null
);

四、唯一约束 unique

某些列不能插入重复的值,所哟一可对列添加唯一约束

create table 表名(
    id int(11) primary key auto_increment,
    name varchar(255) not null unique
);

五、外键约束 foreign key

1.外键的特性

1. 外键必须是其他表的主键
2. 外键可以为空
3. 外键可以重复

2.创建表时设置外键

create table 表名(
    id int(11) primary key auto_increment,
    name varchar(255) not null unique,
    外键列 int(11), //其他表的主键列
    constraint 外键名称 foreign key(外键列) references 其他表(主键列)
);

3.修改表时添加外键

alter table 表名 add constraint 外键名称 foreign key(外键列) references 其他表(主键列)

六、概念模型 (常用E-R[实体-关系]图来描述)

当我们要制作一个系统的时候,需要把系统中的实体抽取出来,形成概念模型。例如“部门”、“员工”都是系统中的实体,它们之间有着紧密的关系,概念模型的实体最终会形成JAVA类、数据库表。

实体之间的关系有三种:

1对1 :例如老公和老婆实体之间的关系,每个老公都只有一个老婆,每个老婆也只有一个老公。

1对多:例如部门和员工实体之间的关系,每个部门可以包含很多员工,每个员工只能属于一个部门。

多对多:例如学生和课程实体之间的关系,每个学生可以选修很多课程,每个课程也可以被多个学生选修。

1.如何在Java中体现这种实体之间的关系

1对1:

public class Husband(
    private Wife wife;
)

public class Wife (
    private Husband husband;
)

1对多:

public class Department(
    private List<Employee> employeeList;
)

public class Employee(
    private Department deparment;
)

多对多:

public class Student(
    private List<Course> courseList;
)

public class Course(
    private List<Student> studentList;
)

2.如何在数据库表中体现这种实体之间的关系

1对1 :在任意一方的表引入另一方的主键并设置为外键

1对多:在多方的表引入1方的主键并设置为外键

多对多:新建一个表(中间表),引入多方的主键并且联合作为主键,并且两个主键分别作为外键

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值