今天终于在mysql的基础看完了,开始总结一波
为什么要使用数据库???
持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
MySQL介绍
概述 :MySQL是一个开放源代码的关系型数据库管理系统,由瑞典MySQL AB(创始人Michael Widenius)公司1995年开发,迅速成为开源数据库的 No.1。2008被Sun收购(10亿美金),2009年Sun被Oracle收购。MariaDB应运而生。(MySQL 的创造者担心 MySQL 有闭源的风险,因此创建了 MySQL 的分支项目 MariaDB)MySQL6.x 版本之后分为社区版和商业版。MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,所以你不需要支付额外的费用。MySQL是可以定制的,采用了GPL(GNU General Public License)协议,你可以修改源码来开发自己的MySQL系统。MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。MySQL使用标准的SQL数据语言形式。MySQL可以允许运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP和Ruby等。
表的关联关系
表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。四种:一对一关联、一对多关联、多对多关联、自我引用
一对一关联(one-to-one)
在实际的开发中应用不多,因为一对一可以创建成一张表。举例:设计学生表:学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、...拆为两个表:两个表的记录是一一对应关系。基础信息表(常用信息):学号、姓名、手机号码、班级、系别档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人、...两种建表原则:外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。外键是主键:主表的主键和从表的主键,形成主外键关系。
一对多关系(one-to-many)
常见实例场景:客户表和订单表,分类表和商品表,部门表和员工表。
举例:员工表:编号、姓名、...、所属部门部门表:编号、名称、简介
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
多对多(many-to-many)
要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。
自我引用(Self reference)