目录
1.数据库的约束
not null | 指示某列不能存储 NULL 值 | ||
unique | 保证某列的每行必须有唯一的值。 | ||
default | 规定没有给列赋值时的默认值。 | ||
primary key | NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 | 对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大 值+1。 | id INT PRIMARY KEY auto_increment |
foreign key | 保证一个表中的数据匹配另一个表中的值的参照完整性。 | 外键用于关联其他表的主键或唯一键 | foreign key (字段名) references 主表(列) |
check | 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。 | 忽略 |
2.表的设计
表的关系:一对一,多对一,多对多
3.新增
4.查询
4.1聚合查询
4.1.1 常见聚合函数
见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有:
函数 说明
COUNT([DISTINCT] expr) 返回查询到的数据的 数量
SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义
4.1.2 group by 语句
select 中使用group by 子句可以对指定列进行分组查询.
需要满足: 使用group by 进行分组查询时,select 指定的字段必须是"分组依据字段",其他字段若想出现必须包含在聚合函数中.
4.1.3 HAVING
GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING.
4.2联合查询
4.2.1内连接
语法
案例
4.2.2 外连接
外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完全显示我们就说是右外连接。
案例:查询所有同学的成绩,及同学的个人信息,如果该同学没有成绩,也需要显示
4.2.3 自连接
显示所有“计算机原理”成绩比“Java”成绩高的成绩信息
4.2.4 子查询
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询
4.2.5 合并查询
1.union
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。
2.union all
该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。