数据库3

2 .5.3 排序查询

        使用关键字order by

            排序方式:

                    升序:默认,asc

                    降序:desc

        例如:对员工的销售额进行降序排列

                select * from emp order by  sales desc;

        例如:升序查询所有女性员工的工资

                select * from emp where sex ="女" order by money asc;

注:如果多个条件进行排序,只有当前一个条件的值相同时,才会比较第二个条件

        格式:order by 排序字段1 排序方式 ,排序字段2 排序方式 ,...

            例如:以工资降序的方式查询所有员工,如果工资相同则按销售额升序排列

                select    *    from    emp    order    by    money    desc,     sales;

2.5.4 聚合函数

        概念:将一列数据作为一个整体,进行纵向的计算。

            avg():计算平均值

            sum():求和

            max():求最大值

            min():求最小值

            count():求个数

                    count()中一般使用非空字段->主键  或者  *

        计算平均工资

            select    avg(money)    from    emp;

        计算总销售额

            select    sum(sales)    from    emp;

        查询工资最高的员工

            select    *    from    emp    where    money = (select    max(money)    from    emp)

        统计部门字段为空的人数

            select    count(*)    from    emp    where    department    is    null;

                注:聚合函数的计算排除null值

2.5.5 分页查询

        语法:limit 开始索引,每页查询的记录数

            注:索引从0开始

            公式:开始索引 = (当前页码 - 1) *  每页查询的记录数

2.5.6 分组查询

        语法:group by 分组字段

注:

分组后查询的字段应该是:分组字段、聚合函数

            where和having的区别:      1. where在分组前进行筛选,如果不满足where条件则不进入分组。having在分组后进行筛选,如果不满足则不被查询到      2. where后不能跟聚合函数,having后可以使用聚合函数进行筛选

    查询每个部门的平均销售额

        select    avg(sales),    department    from    emp    group    by    department;

    查询男员工和女员工的最高收入

        select    sex,max(money)    from    emp    group    by    sex;

    查询每个部门女性员工的平均销售额,以平均销售额降序方式排列

        select    avg(sales),department    from    emp    where    sex ="女"    groupby    department    order    by    avg(sales)    desc;

    查询平均销售额超过9000的部门

    select    avg(sales),department    from    emp    group    by    department    having    avg(sales) >9000;

查询每个部门男性员工平均销售额超过9000的部门

selectavg(sales),departmentfromempwheresex ='男'groupbydepartmenthavingavg(sales) >9000;


2.6 约束

    概念:对表中数据进行限定

        分类:

            1.      非空约束:not null

                    唯一约束:unique

                    主键约束:primary key

                    外键约束:foreign key

2.6.1 非空约束

        限定字段值不能为空

            创建表时,添加非空约束

                    createtable表名(字段名 字段类型notnull, 字段名 字段类型 [约束], ...);

            创建表后,添加非空约束

                    altertable表名 modify 字段名 字段类型notnull;

注:已存在空值的字段不能被设置成非空的

    删除非空约束(设置字段允许有空值)

    altertable表名 modify 字段名 字段类型;

你可能感兴趣的:(数据库3)