王振2020-6-17笔记

### char 长度255字符  varchar 长度21845字符

### part1 数据类型:时间类型
data YYYY-MM-DD 年月日   用于节假日等
time HH-MM-SS 时分秒 用于体育比赛
year YYYY 年份值 用于历史
datatime YYYY-MM-DD HH-MM-SS 年月日 时分秒 用于登录网站记录,下单时间
timetamp YYYYMMDDHHMMSS 时间戳类型 可以自动更新
select now() 获取当前时间

<---------------------------------------------------------------------->
### part2 约束 :对编辑的数据进行类型的限制,不满足约束条件的会直接报错
例如:	
	unsigned       无符号的整型
	not null       不能为空
	default        默认
	unique         唯一约束,数据必须唯一,不能重复
	primary key    主键,标记数据的唯一特征(唯一且不为空的数据)
	auto_increment 自增加一(一般配合主键使用,或者unique进行自增)
	zerofill       0填充(配合int类型使用)  如果位数不够,0填充
	foreign key    外键 可以把多张表通过关联字段联合在一起
	
# unsigned 无符号的整型
	insert into t7 values(66)
	insert into t7 values(-66) 会报错
# not null 不为空
	create table t8(id int not null, name varchar(255));
	insert into t8 values(1,"王振");
	insert into t8 values(null,"王振"); 空的话会报错
# default 设置默认值
	create table t8(id int not null, name varchar(255) default "王振");
	insert into t8(id) values(1);
# unique 唯一约束,数据唯一不能重复  但允许塞空值 空值可以重复
	索引:相当于字典的目录,通过索引可以加快查询速度
# primary key 主键 标记数据库的唯一特征
	PRI 主键 非空且唯一,在一个表里面只能有一个主键
	create table t8(id int not null unique , name char(10) default "王振");
	insert into t8 values(1,"你好");
	insert into t8 values(null,"你好");
	
	create table t8(id int primary key , name char(10) default "王振");
	两个同时存在,优先显示primary key 作为主键
# auto_increment 自增加一(一般配合主键使用,或者unique进行自增)
	create table t8(id int primary key auto_increment , name char(10) default "王振");
	insert into t8 values(1,"你好");
	insert into t8 values(null,"你好");
	使用默认值填充
	insert into t8 values();
# zerofill       0填充(配合int类型使用)  如果位数不够,拿0填充
	create table t8(id int(6) zerofill );

	delete from t1;
	truncate table t1;
	delete 删除是删完后记录id,再插入数据是从之前的id开始往下排
	truncate 删除所有数据,id也删除,重置id,插入新的从1开始排
	
# foreign key 外键 可以把多张表通过关联字段联合在一起
	外键要求:关联字段必须具有唯一属性(unique或者primary key)
	student
	id   name       age  classname  address
	1    wangzhen   80   python30   北京市天安门阁楼里
	2    xiaolin    90   python30   东北老革命工业基地
	3    wangwen    18   python31   内蒙古呼和浩特蒙古包

	# 为了避免出现过多的字段,可以采用分表的形式,来提升效率,减少数据的冗余
	student1
		id  name      age  address               classid
	    1   wangzhen  80   北京市天安门阁楼里    1
		2   xiaolin   90   东北老革命工业基地    1
	    3    wangwen  18   内蒙古呼和浩特蒙古包  2	
	class1:
		id  classname  datetime
		1   python30   2020-01-01 09:09:09
		2   python31   2020-02-01 09:09:09
		
	# 创建class1表
	create table class1(id int , classname varchar(255));
	
	# 被关联的字段至少需要具有唯一属性
	alter table class1 add unique(id);
	
	# 创建student1学生表
	create table student1(
	id int primary key auto_increment,
	name varchar(255) not null,
	age int not null,
	classid int,
	foreign key(classid) references class1(id)
	);
	
	insert into class1 values(1,"python30");
	insert into class1 values(2,"python31");
	insert into student1 values(null,"wangzhen",80,2);
	insert into student1 values(null,"xiaolin", 90,1);
	insert into student1 values(null,"wangwen", 18,2);

	# 删除class1 如果这条数据在其他表里存在,直接删会报错,因为外键的关联限制
	delete from class1 where id = 1;
	# 先把关联的数据都删了之后,才可真正删掉这条数据
	delete from student1 where id = 2;
	delete from class1 where id = 1;
	
# 联级删除 联级更新 (谨慎操作)
	
	联级删除 on delete cascade
	联级更新 on update cascade
foreign key(classid) references class2(id) on delete cascade on update cascade
# 联级删除
delete from class2 where id = 2
# 联级更新
update class2 set id =100 where classname="python30"
	
<-------------------------------------------------------------------------->
# ### part3 
# 1.联合唯一约束 : unique(字段1,字段2,字段3 .... ) 把多个字段拼在一起表达唯一的数据
"""
MUL 代表普通索引  UNI 唯一索引  PRI 主键索引
"""
# (1) 联合唯一索引(都为非空的字段 显示的PRI , 联合在一起做的主键,不是单个字段的主键)
	create table t1_server(id int, server_name char(10) not null , ip char(15) not null , port int not null , unique(ip,port));			
	insert into t1_server values(1,"aaa","192.168.56.31",5000);
	insert into t1_server values(1,"aaa","192.168.56.31",6000);
	insert into t1_server values(1,"aaa","192.168.56.40",6000);

# (2) 联合唯一索引(为空的字段,允许插入null. 显示MUL)
	create table t2_server(id int, server_name char(10) not null , ip char(15) , port int , unique(ip,port));			
	insert into t2_server values(1,"aaa","192.168.56.31",5000);
	insert into t2_server values(1,"aaa","192.168.56.31",6000);
	insert into t2_server values(1,"aaa","192.168.56.40",6000);
	insert into t2_server values(1,"aaa",null,null); # 注意点,可以插入多个空值;

#  (3)联合唯一索引 和 主键 可以同时存在 primary key 是真正的单个字段主键,联合唯一索引变成MUL
	"""
	unique(ip,port) 联合唯一索引
	primary key(ip,port) 联合唯一主键
	这两个用法是一样的,区别:前者可以继续添加一个主键,而后者不能继续添加主键;
	主键只能是单个字段 , 或者 联合主键, 如何在加主键就会报错;
	"""

<---------------------------------------------------------------------->
part 4 表与表之间的关系

(1) 一对一 表1: id z1 z2 z3   表2: id z4 z5 z6 关联字段(1中的id) ...
(2) 一对多 或者 多对一: 一个班级里可以对应多个学生,把学生作为主动关联的表,设置一个外键,去存储班级表的关联字段中的数据
(3) 多对多 : 一个学生可以对应多个学科,一个学科也可以被多个学生学习
			 一本书可以对应多个作者,一个作者写多本书
# 表达多对多关系时,需要第三张关系表
relation (3)  把xid  和 sid 设置成外键  关联xueke的id  和 student的id

<---------------------------------------------------------------------->
part 5 存储引擎 : 存储数据的方式方法
show engines 查看存储引擎

# 概念理解:
表级锁 : 如果有人修改了当前这个表,会直接上表锁,其他人无法修改,在编辑数据时候,速度慢,不能高并发(MyISAM)
行级锁 : 如果有人修改了当前这个表中的一条记录,当前这个数据记录会上锁,其他数据仍然可以正常修改,速度快,允许更高的并发(InnoDB)

支持事务处理 : 如果执行sql语句,在全部成功之后,在选择提交数据,有一条失败,立刻回滚,恢复成原来状态.
begin :     开始事务
commit :    提交数据
rollback:   回滚数据  只针对于表中的单条数据,不适用于数据库和数据表

InnoDB :    5.6版本后的默认存储引擎,支持事务处理,行级锁,外键
MyISAM :    5.6版本前的默认存储引擎,支持表级锁
MEMORY :    把数据放在内存中,用做缓存
BLACKHOLE : 黑洞,用来同步主从数据库中的数据.场景发生在服务器并发集群,用在主从数据库当中[主数据库:增删改,从数据库:查询]

create table  myisam1(id int,name char(10)) engine = myisam;
myisam1.frm 表结构
myisam1.MYD 表数据
myisam1.MYI 表索引

create table  innodb1(id int,name char(10)) engine = innodb;
innodb1.frm 表结构
innodb1.ibd 表数据+表索引

create table  memory1(id int,name char(10)) engine = memory;
memory1.frm 表结构
没有表数据文件,因为把数据存放在内存中了.

create table  blackhole1(id int,name char(10)) engine = blackhole;
blackhole1.frm 表结构





在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Springboot+Vue的智慧养老服务管理系统源码+项目使用说明(优秀毕业设计).zip 该项目属于个人毕业设计,经导师的精心指导与严格评审获得高分通过的设计项目。主要针对计算机相关专业的教师、正在做毕设、课设的学生使用,也可作为项目实战演练,可直接作为课程设计、期末大作业、毕设等。 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通。 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 介绍 随着人口老龄化趋势的加剧,老年人口比例不断增加,传统的养老服务模式已经难以满足现代老年人的多元化需求。因此,如何高效、精准地提供养老服务,成为了社会关注的焦点。信息化与智能化的发展为养老服务带来了新的机遇。智慧养老作为新兴的养老服务模式,正逐步改变传统的养老服务格局。 #### 安装教程 1. 运行环境准备mysql8+java8+npm14.16.1 2. 配置maven路径,加载依赖 3. 运行sql文件,确保application.yml的数据库名称和账号密码是数据库所在主机的账号密码 #### 使用说明 1. 登入 账号:admin 密码:admin 账号:user 密码:123456 2.运行流程 前端初始化指令: > npm install 前端运行指令(有两个端,一个是管理端,一个是用户端): > npm run serve #### 项目演示 + 普通用户 访问者可以在最顶端看到系统的导航栏,根据自己的需求点击需要去到的页面。用户可以单击“入院指南”,在入院指南界面的输入框中输入标题并进行搜索,就可以查看标题、发布时间、注意事项、发布人、封面等其他信息,在个人中心界面中,可以看见家属的账号、密码和性别等基本信息,还可以对这些信息进行更新操作。 ![GIF 2024-6-17 19-49-40](GIF 2024-6-17 19-49-40-1718630421956.gif) + 管理员 管理员单击家属管理,在家属管理页面中输入家属的各项信息后,在页面中进行查询、新增或删除家属信息等操作。管理员点击护工管理,在护工管理页面中输入护工的所有信息,然后在页面上可以点击详情来查看护工的详细情况,点击修改来修改护工的信息,点击删除来删除护工的信息。管理员单击房间资料管理,在这个页面中可以对房间资料的信息进行管理。管理员单击床位管理,可以查看房间号、楼房名称等各项信息,还可以点击修改来修改床位信息,点击删除来删除床位信息。管理员还可以对老人入住进行管理,在这个界面中可以查看像入住编号、老人年龄等老人入住的详细信息,可以在界面顶端输入具体信息来查找,还可以点击删除来进行删除操作。管理员单击外出报备管理,在外出报备管理界面中可以查看老人的外出报备情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值