MyJSP约束

约束

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

主键约束

1. 注意:
		1. 含义:非空且唯一
		2. 一张表只能有一个字段为主键
		3. 主键就是表中记录的唯一标识
	2. 创建表时添加主键约束
		*CREATE TABLE stu(
		 id INT primary key,
		 NAME VARCHAR(20)
		 );
	3. 删除name的主键约束
		*ALTER TABLE stu MODIFY id int;--错误
		*ALTER TABLE stu DROP PRIMARY KEY;
	4. 创建表以后添加主键约束
		*ALTER TABLE stu MODIFY id int primary key;
	5. 自动增长:
		1. 概念:如果某一列是数值类型的,使用auto_increment 可以完成值的自动增长。
		2. 创建表时添加主键约束,并且完成主键自动增长
		*CREATE TABLE stu(
		 id INT primary key auto_increment,
		 NAME VARCHAR(20)
		 );
		3. 删除自动增长
			*ALTER TABLE stu MODIFY id int;
		4. 添加自动增长
			*ALTER TABLE stu MODIFY id int auto_increment;

非空约束

1. 创建表时添加约束
		*CREATE TABLE stu(
		 id INT,
		 NAME VARCHAR(20) NOT NULL
		 );
	2. 删除name的非空约束
		*ALTER TABLE stu MODIFY NAME VARCHAR(20);
	3. 创建表以后添加非空约束
		*ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;

唯一约束

1. 创建表时添加约束
		*CREATE TABLE stu(
			id INT,
			phone_number VARCHAR(20) UNIQUE;
			);
	2. 删除name的唯一约束
		*ALTER TABLE stu MODIFY phone_number VARCHAR(20);--删不掉
		*ALTER TABLE stu MODIFY DROP INDEX phone_number;
	3. 创建表以后添加唯一约束
		*ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

外键约束

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. 分类
			1. 级联更新:ON UPDATE CASCADE
			2. 级联删除:ON DELETE CASCADE

数据库设计

1. 多表之间的关系
	1. 一对一
		*如人和身份证号
		*一个人只有一个身份证号,一个身份证号只对应一个人
	2. 一对多(多对一)
		*如部门和员工
		*一个部门有多个员工,一个员工只能对应一个部门
	3. 多对多
		*如学生和课程
		*一个学生可以选择多门课程,一个课程也可以被多个学生选择
2.实现关系
	1. 一对多(多对一)
		*如部门和员工
		*实现方式:在多的一方建立外键指向一的一方的主键
	2. 多对多
		*如学生和课程
		*实现方式:需要借助第三张中间表。中间表至少要包含两个字段,
		 这两个字段作为第三张表的外键,分别两张表的主键。
	3. 一对一
		*如人和身份证号
		*实现方式:在任意一方添加唯一约束的外键指向另外一方的主键。一般情况下是合成一张表
2. 数据库设计的范式
	1. 概念:设计数据库时需要遵循的一些规范,建立科学的,规范的的数据库是需要满足一些
		规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。
		*关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
	2. 分类:
		1. 第一范式(1NF):关系模式R的所有属性(每一列)都不能在分解为更基本的数据单位
		2. 第二范式(2NF):在1NF基础上,非码都完全依赖于候选码(1NF基础上消除非主属性对主码的部分函数依赖)
			*几个概念:
				1. 函 数 依 赖:A-->B,如果通过A属性(属性组)的值,可以确定唯一B属性的值,则称B依赖于A
					例如:学号-->姓名 (学号,课程名称)-->分数
				2. 完全函数依赖:A-->B,如果A是一个属性组,则B属性值的确定需要依赖A属性组中所有的属性值。
					例如:(学号,课程名称)-->分数
				3. 部分函数依赖:A-->B,如果A是一个属性组,B属性组的确定只需要依赖A属性组中某一些值即可。
					例如:(学号,课程名称)-->姓名
				4. 传递函数依赖:A-->B,A-->C,如果通过A属性(属性组)的值可以确定唯一B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称C传递函数依赖于A
				5. 码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这个属性(属性值)为该表的码。
					*主属性:码属性组中的所有属性
					*非主属性:除过码属性组的属性
		3. 第三范式(3NF):在2NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上消除传递依赖)
			*注:关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性

数据库的备份和还原

1. 命令行:
	*语法:
		*备份:mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
		*还原:
			1. 登录数据库
			2. 创建数据库 create 数据库名称
			3. 使用数据库 use 数据库名称
			4. 执行文件  source 文件路径
2. 图形化工具
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值