DQL:查询语句 约束

1.DQL:查询语句
     1.排序查询
      *语法:order by 子句
       *order by 排序字段1 排序方式1,排序字段2,排序方式2...
   *排序方式:
    *ASC:升序
    *DESC:降序
   *注意:
    *如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件
   
  2.聚合查询:将一列数据作为一个整体,进行纵向的计算
      1.count:计算个数
       1.一般选择非空的列;主键
    2.count(*)
      2.max:计算最大值  select max(math) from student;
   3.min:计算最小值
   4.sun:计算和
   5.avg:计算平均值
   
   *注意;聚合函数的计算,排除null值
       解决方案:
       1.选择不包含非空的列进行计算
       2.ifunll函数
   
  3.分组查询
      1.语法:group by 分组字段
   2.注意:
      1.分组之后查询的字段:分组字段。聚合函数
      2.where和having 的区别?
         1.where 在分组之后进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
      2.where后不可以跟聚合函数,having 可以进行聚合函数的判断
  4.分页查询
      1.语法:limit 开始的索引,每页查询的条数;
   2.公式:开始的索引 = (当前的页码 - 1 ) * 每页显示的条数
     --每页显示三条记录
    
      select * from student limit 0,3;  --第一页
      select * from student limit 3,3;  --第二页
      select * from student limit 6,3;  --第三页
     
   3.limit是一个“方言”
 2.约束
     *概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。
  *分类:
      1.主键约束:primary key
   2.非空约束:not null
   3.唯一约束:nuique
   4.外键约束:foreign key
     *非空约束:not full
      1.创建表是添加约束
     create table stu(
          id int,
       name varchar(20)not null --name为非空
     );
      2.创建表完后,添加非空约束
     alter table stu modify name varchar(20) not null;
   3.删除name的非空约束
     alter table stu modify name varchar(20);
  *唯一约束:unique ,值不能重复
      1.创建表时,添加唯一约束
     create table stu(
          id int,
       phone_number varchar(20) unique --添加了唯一约束
     );
     *注意:在mysql中,唯一约束限定的列的值可以有多个null
   2.删除唯一约束
      alter table stu drop index phone _number;
   3.在创建表后,添加唯一约束
      alter table stu modify phone_number varchar(20) unique;
  *主键约束:primary key
   1.注意:
      1.含义:非空并唯一
      2.一张表只能有一个字段为主键
      3.主键就是记录的唯一标识
   2.在创建表时,添加主键约束
       create table stu(
          id int primary key,--给id添加主键约束
       name varchar(20)
    );
    
      3.删除主键
       错误形式 alter table stu modify id int;
    正确 alter table stu drop primary key;
    
      4.创建完表之后,添加主键
       alter table stu modify id int primary key;
    
      5.自动增长:
     1.概念:如果某一列是数值型的,使用auto_increment 可以来完成值得自动增长
    
     2.在创建表时,添加主键约束,并且完成主键自动增长
     create table stu(
          create table stu(
          id int primary key auto_increment, --给Id添加主键约束
       name varchar(20)
     );
    
     3.删除自动增长
     alter table stu modify id int;
    
     4.添加自动增长
     alter table stu modify id int auto_increment,;
       
        *外键约束:foreign key,让表与表产生关系,从而保证数据的正确性
              1.在创建表时,可以添加外键
                  *语法:
                    create table 表名(
         ....
      外键列
      costraint 外键名称 foreign key (外键列名称) rferences 主表名称 (主表列名称)
        );
              2.删除外键
                    alter table 表名 drop foreign key 外键名称 ;
              3.创建表之后,添加外键
                    alter table 表名 adda costraint 外键名称 foreign key (外键字段名称) references 主表名称(主表列名称);  
              4.级联操作
                1.添加级联操作
                    语法:alter table 表名 add costraint 外键名称          
     foreign key (外键字段名称) references 主表名称(主表列名称) on update cascade on delete cascade;  
                2.分类:
                    1.级联更新:on update cascade
                  2.级联删除:on delete cascade 
posted @ 2019-12-04 21:59  Eva96  阅读(227)  评论(0)    收藏  举报