数据库操作(二)

本文详细介绍了数据库中的约束类型,包括主键约束、非空约束、唯一约束和外键约束,强调了它们在保证数据完整性和正确性方面的作用。主键约束用于唯一标识表中的记录,可设置为自动增长。非空约束确保字段不为空,唯一约束允许唯一的非空值,而外键约束建立了表之间的关系。此外,还讨论了一对一、一对多和多对多的关系,以及数据库设计中的范式,如第一范式、第二范式和第三范式。最后,提到了数据库的备份与还原操作。
摘要由CSDN通过智能技术生成

数据库中的约束

1.概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
2.分类:
(1)主键约束:primary key
(2)非空约束:not null
(3)唯一约束:unique
(4)外键约束:foreign key

*主键约束:

  1. 含义:非空且唯一
    一张表只能有一个字段为主键,主键就是表中记录的唯一标识。
  2. 在创建表时,添加主键约束
create table stu(
		id int **primary key**,        给id添加主键约束
		name varchar(20)
	);
  1. 删除主键(使用drop)
// 错误 alter table stu modify id int ;
         alter table stu **drop** primary key;
  1. 创建完表后,添加主键 (使用modify)
alter table stu **modify** id int primary key;
  1. 自动增长:
    (1)概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
    (2) 在创建表时,添加主键约束,并且完成主键自增长
create table stu(
			id int primary key auto_increment,       // 给id添加主键约束
			name varchar(20)
		);

(3)删除自动增长

alter table stu modify id int;

(4)添加自动增长

alter table stu modify id int auto_increment;

*非空约束:not null,某一列的值不能为null

1. 创建表时添加约束
	create table stu(
		id int,
		name  varchar(20) not null;        //name为非空
	);
2. 创建表完后,添加非空约束
 alter table stu modify name varchar(20) not null;
 
3. 删除name的非空约束
alter table stu modify name varchar(20);

*唯一约束:unique,某一列的值不能重复

1. 注意:
	* 唯一约束可以有NULL值,但是只能有一条记录为null
2. 在创建表时,添加唯一约束
	create  table  stu(
		id int,
		phone_number varchar(20)  unique//手机号
	);
3. 删除唯一约束
	alter table stu drop  index phone_number;
4. 在表创建完后,添加唯一约束
	alter table stu modify phone_number varchar(20) unique;

*外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。

1.在创建表时,可以添加外键

create table 表名(
		....
		外键列
		constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
	);

2.删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

3.创建表之后添加外键

alter table 表名 
  add constraint 外键名称 
    foreign key 外键名称字段 
       references 主表名称 主表名称字段

4.级联操作

1.添加级联操作
alter table 表名 
  add constraint 外键名称 
    foreign key 外键名称字段 
       references 主表名称 主表名称字段
       ON UPDATE CASCADE ON DELETE CASCADE  ;
2.级联分类:
  级联更新:ON UPDATE CASCADE
  级联删除:ON DELETE CASCADE 	

数据库设计

1.数据库中的关系:
(1)一对一的关系:

可以在任意一方添加唯一外键指向另一方的主键。

(2)多对一(一对多)的关系:

在多的一方建立外键,指向一的一方的主键。

(3)多对多的关系

多对多的关系需要借助第三张表,表中至少包含两个字段,这两个字段作为第三张表的外键,分贝指向两张表的主键。

2.数据库设计中的范式
(1)概念:

  • 设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求。
  • 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小
  • 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

对于我们来说,设计数据库时达到第三范式就可以了。下面类仔细介绍前三种范式

(2)第一范式 1NF:每一列都是不可分割的原子项数据
(3)第二范式 2NF:在1NF的基础上,非码属性必须完全依赖于码(即在1NF的基础上 消除部分函数依赖

  • 函数依赖:A—>B;如果通过A属性(属性组)的值,可以确定唯一B属性的值。则称B依赖于A
    例如:学号—>姓名 ; 学号、课程号—>分数

  • 完全函数依赖:A–>B, 如果A是一个属性组,则B属性值得确定需要依赖于A属性组中所有的属性值。
    例如:学号、课程号—>分数

  • 部分函数依赖:A–>B, 如果A是一个属性组,则B属性值得确定只需要依赖于A属性组中某一些值即可。
    例如:(学号,课程名称) – > 姓名

  • 传递函数依赖:A–>B, B – >C . 如果通过A属性(属性组)的值,可以确定唯一B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称 C 传递函数依赖于A
    例如:学号–>系名,系名–>系主任

  • 码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这个属性(属性组)为该表的码
    例如:该表中码为:(学号,课程名称)
    主属性:码属性组中的所有属性
    非主属性:除过码属性组的属性

(4)第三范式 3NF:在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖

数据库的备份与还原

采用命令行方式:
备份: mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
还原:
		1. 登录数据库
		2. 创建数据库
		3. 使用数据库
		4. 执行文件。source 文件路径
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值