美文网首页
2018-09-11

2018-09-11

作者: 山野过客 | 来源:发表于2018-09-11 15:51 被阅读0次

常用聚合函数

COUNT():统计指定列不为NULL的记录行数;

MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算

SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

COUNT 使用

SELECT COUNT(*) FROM 表名;

分组查询:

SELECT name FROM 表名 GROUP BY name;

在使用分组时,select后面直接跟着的字段一般都在出现在group by后

HAVING和WHERE的区别

HAVING是在分组后对数据进行过滤;

WHERE是在分组前对数据进行过滤;

HAVING后面可以使用分组函数(统计函数);

WHERE后面不可以使用分组函数;

WHERE是对分组前记录的条件,如果某行记录没有满足where子语句的条件,那么这行记录不参与分组;而HAVING是对分组后的数据约束;

例:

(SELECT department,GROUP_CONCAT(salary),SUM(salary)

FROM employee

WHERE salary > 2000

GROUP BY department

HAVING SUM(salary)>9000;

ORDER BY SUM(salary) DESC;

书写顺序

SELECT --> FROM --> WHERE --> GROUP BY --> HAVING --> ORDER BY --> LIMIT

书写顺序

SELECT --> FROM --> WHERE --> GROUP BY --> HAVING --> ORDER BY --> LIMIT

LIMIT 参数1, 参数2

参数1:从哪一行开始查

参数2:一共要查几行

约束类型

主键约束(primary key)

特点:

(创建)每个表中要有一个主键

数据唯一,且不能为null

联合主键:两个字段数据同时相同时,才违反联合主键约束

(先创建表再添加主键

CREATETABLEstudent(sidINT,nameVARCHAR(50));

# 如果表中你之前已经添加了数据,数据不符合主键规则就会报错ALTERTABLEstudentADDCONSTRAINTprimarykey(sid);

唯一约束(unique)

(指定列的数据不能重复,可以为空值

自动增长(auto_increment)

指定列的数据自动增长

即使数据删除,还是从删除的序号继续往下

 非空约束(NOT NULL)

默认值约束(DEFAULT)


参照完整性:

什么是参照完整性

是指表与表之间的一种对应关系,通常情况下可以通过设置两表之间的主键、外键关系,或者编写两表的触发器来实现,有对应参照完整性的两张表格,再对他们进行数据插入,更新,删除的过程中,系统都会将被修改表格与另外一张对应表格进行对照,从而阻止一些不正确的数据的操作

数据库的主键和外键类型一定要一致

两个表必须要是InnoDB引擎

设置参照完整性后,外键当中的内值,必须得是主键当中的内容

一个表设置当中的字段设置为主键,设置主键的为主表

创建表时,设置外键,设置外键的为子表

相关文章

网友评论

      本文标题:2018-09-11

      本文链接:https://www.haomeiwen.com/subject/crsygftx.html