分组查询
将查询结果按照1个或多个字段进行分组,字段值相同的为一组
关键字:group by + group_concat()
根据性别进行分组:SELECT gender,GROUP_CONCAT(name) from employee GROUP BY gender;
group by + 聚合函数
查询每个部门的部门名称和每个部门的工资和:SELECT department,SUM(salary) FROM employee GROUP BY department;
group by + having:用来分组查询后指定一些条件来输出查询结果
查询工资总额大于9000的部门:SELECT department,SUM(salary) FROM employee GROUP BY department HAVING SUM(salary)>9000;
LIMIT分页
Limit 参数1:从哪一行开始查,参数2:一共要查几行
select * from 表名 limit 0,3;
从0开始后3个
数据的完整性
1.实体完整性:标识每一行数据不重复。行级约束
主键约束(primary key)
每个表中要有一个主键:数据唯一,且不能为null
CREATE TABLE 表名(字段1 数据类型, 字段2 数据类型,primary key(要设置主键的字段));
唯一约束(unique)
指定列的数据不能重复,可以为空值
CREATE TABLE 表名(字段名1 数据类型 字段2 数据类型 UNIQUE);
自动增长列(auto_increment)
指定列的数据自动增长,即使数据删除,还是从删除的序号继续往下
CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE);
2.域完整性:限制此单元格的数据正确
非空约束(not null):CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE not null);
默认值约束(default) :CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE not null default '男');
参照完整性
是指表与表之间的一种对应关系
创建表时,设置外键,设置外键的为子表:
CREATE TABLE score(
sid INT,
score DOUBLE,
CONSTRAINT fk_stu_score_sid FOREIGN KEY(sid) REFERENCES student(sid));