关系模型把世界看作是由实体和联系组成的,而关系型数据库是将数据库表作为实体,
以数据库表的主键和外键的关联关系的一种数据库结构
一对一:一条主表记录对应一条从表记录,同时一条从表记录也对一条主表记录
公明表 身证表
编号 姓名 生日 编号 身份证号 公民id
1 张三 1980-9-9 101 3243534543 2
2 李四 1994-9-29 102 1354365464 1
一对多:一条主表记录对应多条从表记录,同时,一个从表记录只对应一条主表记录
公民表 房间表
编号 姓名 生日 编号 房间地址 公民id
1 王五 1975-9-30 1 水碾河20号 1
2 赵柳 1984-2-18 2 红星路10号 1
3 磨子桥8号 2
多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录
老师表 中间表 学生表
编号 老师姓名 老师id 学生id 编号 学生姓名
1 张老师 1 2 1 张
2 李老师 1 3 2 关
3 胡老师 2 4 3 李
2 3 4 戴
3 1
3 2
3 4
关系型数据库只是一个保存数据的容器,大多数数据库依靠一个称为:数据库管理系统
的软件来管理数据库中数据
###结构化查询语言SQL
SQL是结构化查询语言(Structured Query Language)的缩写,它是一种用于管理关系型数据库
,并与数据库中的数据进行通讯的计算机语言
1. 数据定义语言(DDL)创建、修改、删除数据库的内部数据结构
2. 数据查询语言(DQL)用于数据库中数据的查询
3. 数据操作语言(DML)用于数据库中数据修改,包括添加、删除、修改
4. 数据控制语言(DCL)控制数据库访问权限
mysq1的数据类型
1. 整型:int
2. 浮点型:float、double、decimal(10,2);
3. 字符型:varchar(20)
4. 日期类型:date
PRIMARY KEY 定义当前列为主键。主键有两个特点,非空,不能重复
AUTO_INCREMENT:设置当前列为自动增长列,有DBMS为该列分配值,确保该列的值不重复
##删除数据
TRUNCATE TABLE表名
二者区别
DELETE会记录日志,意味着删除后的数据还可以恢复,但效率低,
TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高
聚合函数:
1. COUNT:统计行数量
2. SUM:获取单个列的合计值
3. AVG:计算某个列的平均值
4. MAX:计算列的最大值
5. MIN:计算列的最小值
HAVING和WHERE区别
二者都是过滤条件,WHERE 运行在分组前,因此不能执行任何聚合函数。
HAVING是运行在分组后,只能用作聚合函数的过滤;
SQL执行顺序
1. 执行FROM
2. WHERE条件过滤
3. GROUP BY分组
4. 执行SELECT投影列
5. HAVING条件过滤
6. 执行ORDER BY排序
在分组查询中,能够查询的字段,只能是分组字段和聚合函数
以数据库表的主键和外键的关联关系的一种数据库结构
一对一:一条主表记录对应一条从表记录,同时一条从表记录也对一条主表记录
公明表 身证表
编号 姓名 生日 编号 身份证号 公民id
1 张三 1980-9-9 101 3243534543 2
2 李四 1994-9-29 102 1354365464 1
一对多:一条主表记录对应多条从表记录,同时,一个从表记录只对应一条主表记录
公民表 房间表
编号 姓名 生日 编号 房间地址 公民id
1 王五 1975-9-30 1 水碾河20号 1
2 赵柳 1984-2-18 2 红星路10号 1
3 磨子桥8号 2
多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录
老师表 中间表 学生表
编号 老师姓名 老师id 学生id 编号 学生姓名
1 张老师 1 2 1 张
2 李老师 1 3 2 关
3 胡老师 2 4 3 李
2 3 4 戴
3 1
3 2
3 4
关系型数据库只是一个保存数据的容器,大多数数据库依靠一个称为:数据库管理系统
的软件来管理数据库中数据
###结构化查询语言SQL
SQL是结构化查询语言(Structured Query Language)的缩写,它是一种用于管理关系型数据库
,并与数据库中的数据进行通讯的计算机语言
1. 数据定义语言(DDL)创建、修改、删除数据库的内部数据结构
2. 数据查询语言(DQL)用于数据库中数据的查询
3. 数据操作语言(DML)用于数据库中数据修改,包括添加、删除、修改
4. 数据控制语言(DCL)控制数据库访问权限
mysq1的数据类型
1. 整型:int
2. 浮点型:float、double、decimal(10,2);
3. 字符型:varchar(20)
4. 日期类型:date
PRIMARY KEY 定义当前列为主键。主键有两个特点,非空,不能重复
AUTO_INCREMENT:设置当前列为自动增长列,有DBMS为该列分配值,确保该列的值不重复
##删除数据
TRUNCATE TABLE表名
二者区别
DELETE会记录日志,意味着删除后的数据还可以恢复,但效率低,
TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高
聚合函数:
1. COUNT:统计行数量
2. SUM:获取单个列的合计值
3. AVG:计算某个列的平均值
4. MAX:计算列的最大值
5. MIN:计算列的最小值
HAVING和WHERE区别
二者都是过滤条件,WHERE 运行在分组前,因此不能执行任何聚合函数。
HAVING是运行在分组后,只能用作聚合函数的过滤;
SQL执行顺序
1. 执行FROM
2. WHERE条件过滤
3. GROUP BY分组
4. 执行SELECT投影列
5. HAVING条件过滤
6. 执行ORDER BY排序
在分组查询中,能够查询的字段,只能是分组字段和聚合函数