【MySQL基础】MySQL基础操作二

news/2024/4/27 19:35:17

文章目录

  • 🍎1.数据库约束
    • 🍐约束类型
      • 🍆1.1NOT NULL
      • 🍆1.2UNIQUE
      • 🍆1.3DEFAULT
      • 🍆1.4PRIMARY KEY
      • 🍆1.5FOREIGN KEY
  • 🍏2.查询操作
    • 🍟2.1聚合查询
      • 🍔2.1.1聚合函数
      • 🍔2.1.2GROUP BY
      • 🍔2.1.3HAVING

🍎1.数据库约束

🍐约束类型

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • DEFAULT - 规定没有给列赋值时的默认值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。

🍆1.1NOT NULL

创建表时,指定某一列不为空
例如在生成一个用户信息表时,此时身份证ID这一列就可以建立NOT NULL约束

在这里插入图片描述

🍆1.2UNIQUE

唯一约束

设置表中某列的数据唯一不重复
例如每个人的身份证是唯一的

在这里插入图片描述

🍆1.3DEFAULT

默认值约束

表创建好后,我们向表中填充内容时,如果某一列没有插入数据,则系统会默认生成一个数据来填充

在这里插入图片描述
此时我们在向表中填充数据时,如果没有输入姓名,则系统会默认将无名氏作为他的姓名。

🍆1.4PRIMARY KEY

主键约束

主键就相当于是NOT NULL 和 UNIQUE的结合体
主键不能为空,也不能重复

在这里插入图片描述
主键通常搭配auto_increment来使用
auto_increment的作用是当插入的数据没有赋值时,使用最大值+1
在这里插入图片描述
在这里插入图片描述
我们可以看到我们并没有给到id赋值,而在表中id确实是+1自增的。
当我们赋予一个id100时,那么id会从最大值100向后自增
在这里插入图片描述

🍆1.5FOREIGN KEY

外键约束

foreign key (字段名) references 主表(列)

外键用于关联其他表的主键或唯一键,
例如有一个学生表和班级表
学生只能是一个班级的,而班级可以有很多学生

在这里插入图片描述
在这里插入图片描述

🍏2.查询操作

🍟2.1聚合查询

🍔2.1.1聚合函数

函数说明
COUNT([DISTINCT] expr)返回查询到的数据的数量
SUM([DISTINCT] expr)返回查询到的数据的总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的最大值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的最小值,不是数字没有意义

例如在如下这张表中查询平均年龄,使用AVG函数
在这里插入图片描述
在这里插入图片描述

🍔2.1.2GROUP BY

SELECT 中使用 GROUP BY 子句可以对指定列进行分组查询。需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。

select column1, sum(column2), .. from table group by column1,column3;

例如有如下一个表,表中的数据为:部门,姓名,薪资。
我们要在这个表中统计出各个部门的员工的平均工资,那么该如何计算呢?
首先我们将这些数据根据部门进行分类,之后在对各个部门的薪资进行均值计算
在这里插入图片描述
在这里插入图片描述

🍔2.1.3HAVING

GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING

在上个表中,我们按照部门进行分类之后,要查询出平均工资小于1500的角色和平均工资

在这里插入图片描述
以上就是本篇文章所有内容,如果对你有帮助的话,点赞关注支持一下吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

九、软考-系统架构设计师笔记-软件可靠性基础知识

1、软件可靠性概念 软件可靠性定义 软件可靠性(Software Reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。 规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件。规定…

【开源】SpringBoot框架开发房屋出售出租系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 房屋销售模块2.2 房屋出租模块2.3 预定意向模块2.4 交易订单模块 三、系统展示四、核心代码4.1 查询房屋求租单4.2 查询卖家的房屋求购单4.3 出租意向预定4.4 出租单支付4.5 查询买家房屋销售交易单 五、免责说明 一、摘…

记录工作中莫名其妙的bug

1、问题:办公室的电脑突然除了我之外,都不能访问我们的线上系统了 原因:因为是内网,同事有刚刚升级了Windows11,配置的DNS被清了,还有同事换了公司的新电脑,还没有配DNS 位于:C /Win…

python之自动化(django)

1、安装 我用的是pip install Django 在命令行中安装 然后django-admin startproject autotext(在命令行中) 这句话是创建一个django 项目 然后切换到你所创建项目的目录下 输入: python manage.py runserver 当你出现以下错误时 You…

【Python使用】python高级进阶知识md总结第4篇:静态Web服务器-命令行启动动态绑定端口号,html 的介绍【附代码文档】

python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:操作系统,虚拟机软件,Ubuntu操作系统,Linux内核及发行版,查看目录命令,切换目录命令,绝对路径和相对…

C语言—打印如图矩阵

输出矩阵 在一个二维数组中形成并输出如下矩阵: #include <stdio.h> main() { int i,j,a[5][5];for(i0;i<4;i)for(j0;j<4;j)if(i<j) a[i][j]1;else a[i][j]i-j1;for(i0;i<4;i){ for(j0;j<4;j)printf("%d ",a[i][j]);printf("…