数据库查询操作

article/2025/10/4 17:43:57

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
1.


提示:以下是本篇文章正文内容,下面案例可供参考

一、复杂查询的相关操作:

1.主键 primary key
针对每一条记录,作为身份标识
唯一性:不重复(身份证,电话号码)
不为空
简单来说primary相当于unique+not null,一个表里,主键只能有
一个,但unique则是可以有多个的

create table student2(id int primary key,name varchar(20));

在这里插入图片描述
遇到的问题:
在这里插入图片描述
在这里插入图片描述分别违背了非空型和唯一性;

我们在使用逐渐时候,需要设置一个唯一值,mysql提供‘自增主键,自动设置主键值;primary key auto_increment
在这里插入图片描述

在这里插入图片描述
依次递增
在这里插入图片描述
手动分配后依次递增
结论:自增主键,可以理解成mysqll里记录了当前足以大值id是几,都是从最大值之后在进行增加的-
2)数据库分布式部署:
当表太大,一台机器存不下,拆成多个表在不同机子上,还能不能满足主键的唯一性呢,不能!!!
解决方案:分布式系统生成唯一id算法
生成公式=(时间戳+机房编号/主机编号+随机因子)=》计算哈希值

2.外键foreign key
关联俩个表,例学生表里的每一个记录(字表),包含班级编号得在班级表中存在(父表)

create table class(classId int,name varchar(20));create table student(studentId int primary key,name varchar(20),foreign key(studentId) references class(classId);

在这里插入图片描述
当建立好外键约数,学生表中(字表)中插入记录calssid必须在班级表(父表)中存在,此时班级表对学生表产生了约数
*此处要求子表中引用父表的这一列,务必得是primary key或者unique

子表对附表也有约数:
子表存在情况,这一届删除父表会出现问题

总结:
父限子(增,改)
子限父(删,改)
3.逻辑删除
如果想要在外键约数下删除可以采用逻辑删除的方式

二.表的设计

数据库设计主要思路:
1.根据需求找到实体(描述的关键词)
2.梳理清楚实体之间的关系

  • 一对一 学生账号
  • 一对多 学生班级
  • 多对多 学生课程 (关联表)
  • 没关系

一般来说每个实体都会安排一个表
*

sql可以把查询结果插入到另一张表里:
insert into student2 select*from student where id!=1;(把student 里的数据查出来,插入到student2里面

三.聚合查询


又来聚合函数就可以进行行和行的运算
常见聚合函数:count() 计算行数 sum() 行相加 avg() max() min()
在这里插入图片描述

select count(*)from student;
计算行的个数4
select count(0)from student where english>60;

分组查询/聚合:
把值相同的记录,分成一组,然后针对每一组进行聚合
eg:查询每个岗位的薪资(最高,平均,最低)
mysql> select*from emp;
±—±-------------±-------------±---------+
| id | name | role | salary |
±—±-------------±-------------±---------+
| 1 | 马云 | 服务员 | 1000.20 |
| 2 | 马化腾 | 游戏陪玩 | 2000.99 |
| 3 | 孙悟空 | 游戏角色 | 999.11 |
| 4 | 猪无能 | 游戏角色 | 333.50 |
| 5 | 沙和尚 | 游戏角色 | 700.33 |
| 6 | 隔壁老王 | 董事长 | 12000.66 |

select role from emp group by role;

±-------------+
| role |
±-------------+
| 服务员 |
| 游戏角色 |
| 游戏陪玩 |
| 董事长 |
±-------------+

mysql> select role,count(0),min(salary)  from emp group by role;最低薪资

±-------------±---------±------------+
| role | count(0) | min(salary) |
±-------------±---------±------------+
| 服务员 | 1 | 1000.20 |
| 游戏角色 | 3 | 333.50 |
| 游戏陪玩 | 1 | 2000.99 |
| 董事长 | 1 | 12000.66 |
±-------------±---------±------------+

select*from emp group by role;

这里相当于只展示每一组的第一条记露

分组查询还可以进行筛选条件
1.分组之前筛选 where
2.分组之后筛选 having

eg:1.查询每个岗位平均薪资(除去张三这个记录)
思路:先把张三去掉,在分组

where
2.查询平均薪字>1000岗位
在这里插入图片描述
此处先进行分组,算好平均薪资,然后再找到平均薪资>1000岗位
having写到group后面(分完组才能算平均薪资)
3.求除了张三之外,每个岗位的平均薪资,并且保留平均薪资》1000岗位
在这里插入图片描述
so:where写在group by之前
having之后 搭配聚合查询语句

四.联合查询:

笛卡尔积其实就是简单的排列组合
行数,是两个表的行数之积,
列数,是两个表的列数之和
联合/多表查询=笛卡尔积+链接条件+其他条件

selectfrom student ,class(笛卡尔积)或者 selctfrom student join class on …
where student.classid=class.classid(链接条件)

五.外连接

1.表上的数据不在一一对应
from 表1,表2 内连接
from 表1 join 表2 on 条件 使用join 可以作为内连接,也可以作为外连接
直接写join或者inner join是内连接
写作left join左外连接
right join 右外连接
左外连接会尽可能显示左侧数据,右侧没有体现填null,右侧相反。
左外和右外主要看表的先后顺序在join左侧还是右侧

六.自连接

自己和自己做笛卡尔积,条件查询中,核心在于列和列之间的比较,而从来没有进行行与行的交换
select*form 表名 as 列名 表名 as 列名

七.子查询

本质上是吧多个查询语句,组合成一个查询一局(套娃)

如果子查询返回的结果有多条就用in来进行子查询

八.合并查询

union(去重)/union all(不去重)来完成两个查询结果合在一起(并集)


http://chatgpt.dhexx.cn/article/7JnJ4Rt0.shtml

相关文章

MySQL数据库查询数据

查询数据 数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单查询数据库中存储的数据,还应该根据需要对数据进行筛选,以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作。 基本查询语句 mys…

数据库查询语句-详细篇

今天来梳理一下数据库的一些查询语句,做软件/移动端/电脑端,开发程序时必然离不开数据库的设计以及查询; 一:具体的代码如下展示: 1.查询数据库指定表的所有信息 select * from uploadimagecode;2.查询当前数据表部…

数据库的查询操作

数据库的查询操作 1 DQL_基础查询 本案例使用到SQL语句的代码如下: USE db1; -- 使用数据库 CREATE TABLE student ( id int, -- 编号 name varchar(20), -- 姓名 age int, -- 年龄 sex varchar(5), -- 性别 address varchar(100), -- 地址 math int, -- 数学 …

数据库-简单查询

数据库的操作无外乎是增删改查,那么其中的查询是我们作为测试,用得最多的,那查询应该怎么做呢,我们来讲解一下。 1、介绍一下我们举例的表结构 表一: 学生表:(学号,姓名&#xff0…

数据库常见的查询

目录 一、查询的完全限定写法 二、条件查询 三、模糊查询 四、范围查询 1&#xff09;关键字&#xff1a;between and 2&#xff09;关键字&#xff1a;in 3&#xff09;关键字&#xff1a;is null或者、is not null和<>null和!null 五、case when 1&#xff09…

查询数据(数据库)——简单查询

目录 1&#xff0e;最简单的查询 &#xff08;1&#xff09;查询指定列 &#xff08;2&#xff09;查询所有列 &#xff08;3&#xff09;查询计算列 &#xff08;4&#xff09;为列起别名 &#xff08;5&#xff09;使用DISTINCT关键字消除重复元组 2&#xff0e;查询满…

数据库之数据的查询

1 目的 1、理解SQL的特点&#xff1b; 2、掌握SELECT命令的使用&#xff1b; 3、掌握单表查询、连接查询、嵌套查询和集合查询&#xff1b; 4、掌握INSERT、UPDATE和DELETE命令的使用&#xff1b; 5、掌握将SQL命令嵌入到C#或其他高级语言&#xff1b; 2 要点 1、单表查询、…

【MySQL】数据库的基本查询

前言 上篇已经讲过数据库与表相关的一些相关的操作了&#xff0c;如果你对这部分依旧不太熟悉建议先去看看 传送门&#xff1a;【MySQL】逻辑库与数据表相关操作. 这篇就来说一下数据库中表的基本查询&#xff0c;看见是基本查询&#xff0c;就知道肯定有高级查询&#xff0…

SQL数据库的查询操作大全(select)

目录&#xff1a; 1、数据库的连接、创建 2、对字段的操作&#xff1a;&#xff08;alter table&#xff09; 3、对数据的操作&#xff08;插入、修改、删除&#xff09; 4、数据查询&#xff08;select&#xff09; 5、多表查询&#xff08;join on&#xff09; 6、约束…

JDK、Tomcat安装步骤

JDK安装 JDK下载地址 1.JDK安装 &#xff08;1&#xff09;运行Tomcat时需要先安装JDK&#xff0c;下载x64 installer &#xff08;2&#xff09;选择安装路径 &#xff08;3&#xff09;安装完成 2.配置环境变量 &#xff08;1&#xff09;“我的电脑”右键→属性→高级系…

Tomcat安装教程

1、下载 Tomcat。 你可以从 Apache Tomcat 官网&#xff08;Apache Tomcat - Welcome!&#xff09;上下载最新版本的 Tomcat。解压下载的压缩包。将下载的压缩包解压到指定的目录&#xff0c;例如 C:\Tomcat。 2、配置环境变量。 在 Windows 中&#xff0c;打开控制面板&…

详细到落泪的Tomcat安装教程....

前言 我个人是很少写基础软件的安装的&#xff0c;直到有一天诸葛铁头因为Tomcat安装的问题找到我… 诸葛铁头&#xff0c;原名诸葛铁蛋&#xff0c;因人比较头铁&#xff0c;故取名铁头。在诸葛体铁头建议下、以及征求了她的同意后&#xff0c;写了这篇文章。 虽然这篇文章…

Tomcat安装配置

Tomcat 是一个免费的开放源代码的 Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试 JSP程序的首选。 1. Tomcat下载 1&#xff09;进入Tomcat官网&#xff0c;选择下载所需的Tomca…

Tomcat安装教程(windows)

1. 下载Tomcat 首先确定你Windows系统是64位&#xff0c;还是32位(现在大部分是64位)及JDK版本&#xff08;Tomcat在 JDK1.8 环境下能够正常运行&#xff09; 下载地址&#xff1a;Tomcat官网. 2. 安装Tomcat 解压压缩包&#xff0c;放在想要放在的盘符(最好不要是C盘&#…

Apache Tomcat安装配置

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器。Tomcat 技术先进、性能稳定&#xff0c;而且免费&#xff0c;因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可&#xff0c;成为目前比较流行的Web 应用服务器。 Tomcat安装方法 1、下载Tomcat后&a…

Tomcat安装配置及IDEA配置方法【亲测有效】

Tomcat安装配置及IDEA配置 1.下载Tomcat2.配置Tomcat环境变量3.安装Tomcat4.启动Tomcat5.测试Tomcat6.IDEA配置Tomcat 1.下载Tomcat Tomcat9官网下载地址 选择自己需要的版本&#xff0c;一般选择Windows 64位压缩包版本&#xff1a; 下载完后安装解压即可&#xff0c;解压后…

Eclipse、Tomcat安装配置及部署教程

想用Tomcat作为服务器&#xff0c;必须分以下两步。首先要配置好JDK的环境变量&#xff0c;再去下载Tomcat的压缩包。 下载、安装JDK&#xff0c;并且配置好环境变量 1、打开浏览器&#xff0c;输入JDK搜索&#xff0c;根据搜索结果下载安装包安装应用 2、先接受协议&#x…

Tomcat安装及运行

Tomcat 操作 Tomcat 安装 1、解压压缩文件 【注意】不要有中文路径 2、效果如下 Tomcat 运行 1、移动到tomcat安装路径下&#xff0c;双击进入 2、进入bin目录 3、双击 startup.bat 启动 Tomcat 【注意】区别于 startup.sh &#xff0c;此脚本用于 Linux 下 Tomcat 的启动&a…

Tomcat的安装与配置

Tomcat的安装与配置 一、准备与安装 1.在下载安装tomcat之前请确保计算机上已有java环境&#xff0c;可以通过键盘WindowsR&#xff0c;输入cmd&#xff0c;输入java -version来确定JDK版本&#xff0c;我使用的是JDK1.8 2.进入Tomcat官网&#xff0c;选择与JDK版本相匹配的…

Mac电脑tomcat安装部署

1、tomcat官网下载点击 下载zip到本地&#xff0c;解压即可安装&#xff0c;如下图。 2、命令行启动tomcat&#xff0c;用如下命令 Mac启动、关闭tomcat 。 1.打开终端进入tomcat的bin目录 ~ cd /Users/xxx/Documents/Java/apache-tomcat-9.0.34/bin 2.开启tomcat sudo sh st…