-
DB
-
DBMS
-
SQL
-
数据库是用来存储有组织的数据的容器。
首先明确数据库(database)不是软件,数据库软件(DBMS)是一种软件(MySQL,Oracle,Microsoft SQL Server…都是一种数据库)。SQL本身不是数据,也不是数据库,而是一种结构化查询语言(Structured Query Language)
如果把数据库比作盘子,那么数据就是其中的菜,SQL就是你手上的筷子。
-
我们学习SQL的目的。
假设我们现在存在一张描述全世界dog信息的数据库,我们广义上理解把他们理解为一张张包含行列的信息表,通过SQL,我们现在能够回答诸如此类的一些问题:
"全世界品种为“吉娃娃”的品种的狗狗有多少条?“,"多少条狗的毛发是 红色的?”这样的问题。通过SQL我们能更方便的去获取以及统计这些信息。
-
表
我们并不是直接将数据放入库中,而是先在库中 创建文件,然后将相关的数据放入文件中
这种文件称为表,表是一种结构化的文件,可用来存储特定类型的数据。不要将多个清单放在一个表中。
-
不同DBMS软件实现同样的SQL的用法都不完全相同。
-
客户机-服务器软件
DMBS可以分为两类,一类为基于共享文件系统的DMBS(Mircosoft Access,FileMaker),另一类为基于客户机-服务器的DMBS(MYSQL,Oracle,Microsoft SQL Server))。
-
RDBMS
关系型数据库管理系统,将复杂的数据结构归结为简单的二元关系
优点:
复杂查询:可以使用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询
事务支持:使得对于安全性能很高的数据访问要求得以实现
-
非RDBMS
非关系型数据库管理系统
基于键值对存储数据,不需要经过SQL层的解析,性能非常高。
-
关系型数据库设计规则
一个数据库中可以有多个表,每个表都有一个名字,用来标识自己,表名具有唯一性
2.1.1 表、记录、字段
表与数据库的特性称作模式
表的特性
🅰?列和数据类型
所有的表都是由一个或多个列组成,一列存储着一条特定的信息。
数据类型规定了,所允许存储的数据的类型,每个表列都有相应的数据类型,它限制了这一列能存储什么样的信息。
🅰?行
顾客表中每行存储一个顾客,表中的行数为记录的总数
🅰?主键
主键指的是在一列或一组列(当一列难以区分每一行时,可以使用多个列共同作为主键)中,其值能够唯一区分表中的每个行。
表中的任何列都可以作为主键
任意两行都不具有相同的主健值
每个行都必须具有一个主键值(不允许为null)
表就相当于数据语言中的一个类,那么表中的每一行(也叫做一个记录)相当于一个类生成的一个对象,表中的每一列都相当于类中的一个属性或者叫做实例字段。
E-R(实体-联系)模型中的三个主要概念是:实体集、属性、联系集
表的关联关系
- 一对一关联:实际开发中并不多,因为一对一可以创建成一张表,但是有时候为了查询的效率( 设计表时将常用的信息放在一个表中,将不常用的放在一个表中。)
建表原则1. 外键唯一:主表的主键和从表的外键唯一,形成主外键关系,外键唯一。2.外键是主键,主表的主键和从表的主键,形成主外键关系 - 一对多关联:应用广泛,客户表和订单表(一个客户可以有多个订单)分类表和商品表,部门表与员工表。建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
- 多对多关联
- 自我引用