Mysql数据库-----03

Mysql数据库的条件查询

聚合函数

  • 概念

组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据

  • 常用聚合函数

count(col): 表示求指定列的总行数
max(col): 表示求指定列的最大值
min(col): 表示求指定列的最小值
sum(col): 表示求指定列的和
avg(col): 表示求指定列的平均值

  • 温馨提示

Ifnull函数: 表示判断指定字段的值是否为null,如果为空使用自己提供的值

  • 特点

聚合函数默认忽略字段为null的记录 要想列值为null的记录也参与计算,必须使用ifnull函数对null值做替换 分组查询(group
by)

分组查询(group by)

  • 概念

    将查询结果按照指定字段进行分组,字段中数据相等的分为一组

  • 格式

    GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]
    列名: 是指按照指定字段的值进行分组。
    HAVING 条件表达式: 用来过滤分组后的数据。
    WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果

  • 使用场景

    单个字段或者是多个字段

  • 后跟group_concat()

    group_concat(字段名): 统计每个分组指定字段的信息集合,每个信息之间使用逗号进行分割

连接查询

  • 内连接
    语法格式
select 字段 from1 inner join2 on1.字段1 =2.字段2
inner join 就是内连接查询关键字
on 就是连接查询条件
实质
	内连接根据连接查询条件取出两个表的 “交集”
  • 左连接
    语法格式
select 字段 from1 left join2 on1.字段1 =2.字段2
	left join 就是左连接查询关键字
	on 就是连接查询条件
提示
	左连接以左表为主根据条件查询右表数据,右表数据不存在使用null值填充
  • 右连接
    语法格式
select 字段 from1 right join2 on1.字段1 =2.字段2
	right join 就是右连接查询关键字
	on 就是连接查询条件
提示
	右连接以右表为主根据条件查询左表数据,左表数据不存在使用null值填充
  • 自连接

概念
左表和右表是同一个表,根据连接查询条件查询两个表中的数据

  • 注意

自连接查询必须对表起别名

子查询

  • 概念
    在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询.
  • 主查询和子查询关系
    子查询是嵌入到主查询中
    子查询是辅助主查询的,要么充当条件,要么充当数据源
    子查询是可以独立存在的语句,是一条完整的 select 语句

外键

  • 外键约束的作用
    对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性
  • 对于已经存在的字段添加外键约束
alter table (students表名) 
add foreign key(cls_id) references classes(id);
  • 在创建数据表时设置外键约束
create table teacher(
    id int not null primary key auto_increment, 
    name varchar(10), 
    s_id int not null, 
    foreign key(s_id) references school(id)

);

  • 删除外键约束

步骤:
1.需要先获取外键约束名称,该名称系统会自动生成,可以通过查看表创建语句来获取名称
sql show create table teacher
2.获取名称之后就可以根据名称来删除外键约束
sql alter table teacher drop foreign key 外键名;

数据库设计的三范式

第一范式(1NF)
强调的是列的原子性,即列不能够再分成其他几列
第二范式(2NF)
满足> 1NF,另外包含两部分内容,一是表必须有一个主键;二是非主键字段 必须完全依赖于主键,而不能只依赖于主键的一部分
第三范式(3NF)
满足> 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况

E-R模型

即实体-关系模型,描述数据库存储数据的结构模型。
使用场景 :根据产品经理的设计,我们先使用建模工具,画出实体-关系模型(E-R模型),然后根据三范式设计数据库表结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值