DQL:查询语句 约束

文章目录

DQL:查询语句

  1. 排序查询

语法:order by子句

order by 排序字段1 排序方式1 ,排序字段2,排序方式2…

排序方式:

ASC:升序,默认的。

DESC:降序。

注意:若果有多个排序条件,则当前变的条件值一样时,才会判断第二条件

– 按照数据成绩方式排名,如果数学成绩一样,则按照英语成绩排名

SELECT * FROM student ORDER BY math ASC ,english ASC;
  1. 聚合函数:将一列数据作为一个整体,进行纵向计算

  2. count:计算个数(count*)

  3. max:计算最大值

  4. min:计算最小值

  5. sum:计算和

  6. avg:计算平均值

         SELECT COUNT(id) FROM student;
          SELECT MAX(math) FROM student ;
          SELECT MIN(math) FROM student;
          SELECT SUM(math) FROM student;
          SELECT SUM(english) FROM student;
          SELECT AVG(math) FROM student;
    
  • 注意:聚合函数的计算,排除null值

解决方案:选择不包含非空的进行计算,ifnull函数

  1. 分组查询:

  2. 语法:froup by 分组字段;

  3. 注意

  4. 分组之后查询的字段:分组字段,聚合函数

  5. where和having的区别

  6. where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来

  7. where后不可以跟聚合函数,having可以进行聚合函数的判断。

      -- a按照性别进行分组,分别查询男,女同学的平均分,人数
  SELECT sex ,AVG(math),COUNT(id) FROM student GROUP BY sex; 
  -- 按照性别分组,分贝查询男,女同学的平均分,人数,要求,分数低于70分,不参与分组
  SELECT sex ,AVG(math),COUNT(id) FROM student WHERE math >70 GROUP BY sex;
   -- 按照性别进行分组,分别查询男,女同学的平均分,人数,要求,分数低于70分的了,不参与分组,分组之后,人数要大于两个人
      SELECT sex ,AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex HAVING COUNT(id)>2;
      
      SELECT sex ,AVG(math),COUNT(id) 人数 FROM student WHERE math >70 GROUP BY sex HAVING 人数 >2 ;
  1. 分页查询:

  2. 语法: limit 开始的索引,每页查询的条数

  3. 公式:开始的索引=(当前的页码-1)*每页显示的条数

 SELECT * FROM student LIMIT 0,3; -- 第一页
       SELECT * FROM student LIMIT 3,3; -- 第二页
        SELECT * FROM student LIMIT 6,3; -- 第三页
  1. limit 是一个mysql“方言”。

约束

约束概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性

分类:

  1. 主键约束;primaty key
  2. 非空约束:not null
  3. 唯一约束:unique
  4. 外键约束:foreign key
  • 非空约束:not null
  1. 创建表示添加约束

create table stu1(id int,name varchar(20) not null);

  1. 创建表完后后,添加非空约束

alter table stu1 modify name varchar(20) not null;

  1. 删除name的非空约束

alter table stu1 modify name varchar(20);

  • 唯一约束:unique,某一列的值不能够重复

    • 注意:唯一约束可以有null值,但是只能有一条记录为null;
  • 在创建表时,条件唯一约束;

 CREATE TABLE stu(id INT ,phone_number VARCHAR(20) UNIQUE);
  • 删除唯一约束
   -- 删除唯一约束
      ALTER TABLE stu DROP INDEX phone_number;
  -- 在表创建完后,添加唯一约束
  ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
  • 主键约束:primary key
  • 注意:
  1. 含义:非空且唯一
  2. 一张表只能有一个字段为主键
  3. 主键就是表中记录的唯一标识
  • 在创建表时,添加主键约束

 CREATE TABLE stu2 (id INT PRIMARY KEY,-- 给id添加主键约束
NAME  VARCHAR(20));
-- 删除主键
ALTER  TABLE stu2 DROP PRIMARY KEY; 

 -- 创建完表后,添加主键
 ALTER TABLE stu2 MODIFY id INT PRIMARY KEY;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pofenx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值