MySQL笔记(二)

约束

概念:

约束是作用在表中列上的规则,用于限制加入表中的数据
约束的存在保证了数据库中数据的正确性、有效性和完整性

非空约束

保证列中所有数据不能为null not null

唯一约束

保证列中所有数据各不相同 unique

主键约束

主键是一行数据的唯一标识,要求非空且唯一 unique+not null=primary key

检查约束(mysql不支持)

保证列中的值满足某一条件 check

默认约束

保存数据时,未指定值则采用默认值 default
不给值时是默认值,若给null则为null,null也是值

外键约束

外键是用来让两个表的数据之间建立连接,保证数据的一致性和完整性 foreign key 使表之间有物理连接

先创建主表(约束的表)如下面的部门表

-- 部门表
create table dept(
id int PRIMARY KEY auto_crement,
dep_name varchar(20),
addr varchar(20)
);

-- 员工表
create table emp(
id int PRIMARY KEY auto_crement,
name VARCHAR(20),
age int,
dept_id int ,
FOREIGN KEY(dept_id) references dept(id);
);

** 添加约束**

-- 建表时添加
create table 表名(
列名 数据类型,
.....,
[constraint] [外键名称] foreign key(外键列名) references 主表(主表列名)
);
-- 建表后添加外键约束
alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表名称(主表列名);

删除约束

alter table 表名 drop foreign key 外键名称; 

练习

create table emp(
id int ,#员工id,主键且自增长
ename varchar(50),#员工姓名,非空且唯一
joindate date ,#入职时间,非空
salary double(7,2),#工资非空
bonus double(7,2)#非空,默认为0
);

结果

create table emp(
id int PRIMARY KEY auto_increment,#员工id,主键且自增长
ename varchar(50) NOT NULL UNION,#员工姓名,非空且唯一
joindate date NOT NULL,#入职时间,非空
salary double(7,2)NOT NULL,#工资非空
bonus double(7,2) DEFAULT(0)#非空,默认为0
);

也可以在建完表之后添加约束

添加约束
alter table 表名 modify 字段名 数据类型 约束;

删除约束
alter table 表名 modify 字段名 数据类型;

数据库设计

软件研发步骤

可行性研究 需求分析 软件设计 编码 测试 安装与维护

数据库设计概念

数据库就是根据业务系统的具体需求,结合我们所选的DBMS,为这个业务系统构造出最优的数据存储模型
建立数据库中的表结构以及表与表之间的关联关系的过程
有哪些表?表里有哪些字段?表与表之间的关系?

数据库设计步骤

(1)需求分析(数据是什么?数据有哪些属性?数据与属性的特点是什么?)
(2)逻辑分析(通过ER图对数据库进行逻辑建模)
(3)物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)
(4)维护设计(1.对新的需求进行建表2.表优化)

表关系

一对一:可由由一张表拆分而来,可用外键 unique实现
一对多:用外键实现
多对多:通过建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chp的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值