A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© PeaceMaker98 初级黑马   /  2019-10-17 10:14  /  912 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

day2DQL查询语句
  • 排序查询:**order by**
    select * from  表名 order by  列名
    eg:  select *from student order by english asc,math asc(先按照英语成绩升序排名,如果英语成绩一样,再按数学成绩升序排名)
    • 排序方式:
      • ASC 升序
      • DESC 降序


  • 聚合函数:将一列数据作为一个整体,做纵向计算
    • count:  select count(列名) from 表名;
      一般选择非空的列(主键).
      列子: select count(id) from student;
    • sum:和
    • min:最小值
    • max:最大值
    • avg:平均值
      注意:聚合函数会排除null值
      解决方案:1.选择不包含非空的列
                       2.IFNULL函数

  • 分组查询:group by
    语法: group by 分组字段;
    select sex ,AVG(math) from student group by sex;
    注意:
    1.分组之后查询的字段:分组字段,聚合函数
    2.where和having的区别?
    • where在分组之前限定条件
    • having在分组之后进行限定,如果不满足要求,则不会被查询出来.
    • where后不可以跟聚合函数,having可以进行聚合函数判断。

  • 分页查询:
    • 目的:提高用户体验,提高传输效率
    • 语法: limit  开始的索引 , 每页查询的条数。

    eg:  select * from student limit 0,3; --第一页
           select * from student limit 3,3; --第二页
    • 公式:  开始的索引=(当前的页码-1)*每页显示的条数
    • limit 是 MySQL的"方言".


约束
  • 分类:
    • 主键约束(primary key)
      • 含义:非空其唯一
      • 一张表只能有一个字段为主键
      • 主键就是记录中的唯一标识
      • 格式示例:
      • 创建主键:
        create table stu(

        id int primary key,

        name varchar(20)

        );

      • 删除主键
        alter table stu drop primary key;
      • 创建完表后添加主键
        alter table stu modify id int primary key;
      • 自动增长
        • 概念:如果某一列是数值类型的,使用auto_increment 可以来完成值自动增长
        • 在创建表时,完成主键的自增长
          create table stu(

          id int primary key auto_increment,

          name varchar(20)

          );
          注意:值只跟上一条数据id推导
        • 删除自动增长
          alter table stu modify id int;
        • 增加自动增长
          alter table stu modify id int auto_increment;


    • 非空约束(not null)
    • 唯一约束(unique)
      • 唯一约束可以有null,但是只能有一个null
      • 删除方式特殊: alter table  stu  drop index phone_number
      • 创建表后添加方式: alter table stu modify phone_number varchar(20) unique

    • 外键约束:foreign key
      概念:让表与表产生关系,保证数据的正确性。
      • 在创建表时,添加外键
        create table 表名(
        外键列
        constraint 外键名称 foreign key 外键列名称 references 主表名称(主表列名称)
        )
      • 删除外键
        alter table 表名 drop foreign key 外键名称
      • 注意:
        • 外键不是必须的,当表与表的关系比较多的时候,不建议建外键。
        • 建议进入公司时,先观察公司有没有建立外键的习惯,没有就不使用。
        • 外键缺点:  影响性能

      • 级联操作
        • 添加级联

        constraint 外键名称 foreign key 外键列名称 references 主表名称(主表列名称) ON UPDATE  CASCADE;
        • 更新:ON UPDATE  CASCADE;
        • 删除:ON DELETE  CASCADE;





数据库设计
  • 多表之间的关系
    • 分类

    • 一对一(了解):
      • 如:人和身份证(一人一证,一证对应一人)
      • 建表原则:在任意一方建立指向对方的主键

    • 多对一或一对多(掌握):
      • 如:部门和员工(一个员工对应一个部门,一个部门对应多个员工)
      • 建表原则:在多的一方,建立外键,指向少的一方的主键

    • 多对多(掌握)
      • 如:学生选课(一个课程可以对应多个学生,一个学生对应多个课程)
      • 建表原则:需要建立第三张中间表,并且至少有两个字段,这两个字段,作为第三张表的外键,分别指向两张表的主键


  • 数据库设计的范式
    • 概念:设计数据库的规范
    • 分类:
      • 第一范式(1NF)
      • 第二范式(2NF)
      • 第三范式(3NF)



  • 数据库的备份和还原


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马