当前位置: 首页 > news >正文

MySQL——单表、多表查询

一、单表查询
素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等
CREATE TABLE `worker` (
`部门号` int(11) NOT NULL,
`职工号` int(11) NOT NULL,
`工作时间` date NOT NULL,
`工资` float(8,2) NOT NULL,
`政治面貌` varchar(10) NOT NULL DEFAULT '群众',
`姓名` varchar(20) NOT NULL,
`出生日期` date NOT NULL,
PRIMARY KEY (`职工号`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生
日期`) VALUES (101, 1001, '2015-5-4', 3500.00, '群众', '张三', '1990-7-1');
INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生
日期`) VALUES (101, 1002, '2017-2-6', 3200.00, '团员', '李四', '1997-2-8');
INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生
日期`) VALUES (102, 1003, '2011-1-4', 8500.00, '党员', '王亮', '1983-6-8');
INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生
日期`) VALUES (102, 1004, '2016-10-10', 5500.00, '群众', '赵六', '1994-9-5');
INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生
日期`) VALUES (102, 1005, '2014-4-1', 4800.00, '党员', '钱七', '1992-12-30');
INSERT INTO `worker` (`部门号`, `职工号`, `工作时间`, `工资`, `政治面貌`, `姓名`, `出生
日期`) VALUES (102, 1006, '2017-5-5', 4500.00, '党员', '孙八', '1996-9-2');
1、显示所有职工的基本信息。
2、查询所有职工所属部门的部门号,不显示重复的部门号。
3、求出所有职工的人数。
4、列出最高工资和最低工资。
5、列出职工的平均工资和总工资。
6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。
7、显示所有女职工的年龄。
8、列出所有姓刘的职工的职工号、姓名和出生日期。
9、列出1960年以前出生的职工的姓名、参加工作日期。
10、列出工资在10002000之间的所有职工姓名。
11、列出所有陈姓和李姓的职工姓名。
12、列出所有部门号为23的职工号、姓名、党员否。
13、将职工表worker中的职工按出生的先后顺序排序。
14、显示工资最高的前3名职工的职工号和姓名。
15、求出各部门党员的人数。
16、统计各部门的工资和平均工资
17、列出总人数大于4的部门号和总人数。
二、多表查询
1.创建studentscore
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
sex VARCHAR(4) ,
birth YEAR,
department VARCHAR(20) ,
address VARCHAR(50)
);
创建score表。SQL代码如下:
CREATE TABLE score (
id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,
stu_id INT(10) NOT NULL ,
c_name VARCHAR(20) ,
grade INT(10)
);
2.student表和score表增加记录
student表插入记录的INSERT语句如下:
INSERT INTO student VALUES( 901,'张老大', '',1985,'计算机系', '北京市海淀区');
INSERT INTO student VALUES( 902,'张老二', '',1986,'中文系', '北京市昌平区');
INSERT INTO student VALUES( 903,'张三', '',1990,'中文系', '湖南省永州市');
INSERT INTO student VALUES( 904,'李四', '',1990,'英语系', '辽宁省阜新市');
INSERT INTO student VALUES( 905,'王五', '',1991,'英语系', '福建省厦门市');
INSERT INTO student VALUES( 906,'王六', '',1988,'计算机系', '湖南省衡阳市');
score表插入记录的INSERT语句如下:
INSERT INTO score VALUES(NULL,901, '计算机',98);
INSERT INTO score VALUES(NULL,901, '英语', 80);
INSERT INTO score VALUES(NULL,902, '计算机',65);
INSERT INTO score VALUES(NULL,902, '中文',88);
INSERT INTO score VALUES(NULL,903, '中文',95);
INSERT INTO score VALUES(NULL,904, '计算机',70);
INSERT INTO score VALUES(NULL,904, '英语',92);
INSERT INTO score VALUES(NULL,905, '英语',94);
INSERT INTO score VALUES(NULL,906, '计算机',90);
INSERT INTO score VALUES(NULL,906, '英语',85);
1.查询student表的所有记录
2.查询student表的第2条到4条记录
3.student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
4.student表中查询计算机系和英语系的学生的信息
5.student表中查询年龄18~22岁的学生信息
6.student表中查询每个院系有多少人
7.score表中查询每个科目的最高分
8.查询李四的考试科目(c_name)和考试成绩(grade
9.用连接的方式查询所有学生的信息和考试信息
10.计算每个学生的总成绩
11.计算每个考试科目的平均成绩
12.查询计算机成绩低于95的学生信息
13.查询同时参加计算机和英语考试的学生的信息
14.将计算机考试成绩按从高到低进行排序
15.student表和score表中查询出学生的学号,然后合并查询结果
16.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
17.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

一、单表查询 

        1、创建表worker:

         2、填写表的内容:

        3、显示所有职工的基本信息:

mysql8.0.30 [chap04]>select * from worker;

         4、查询所有职工所属部门的部门号,不显示重复的部门号:

mysql8.0.30 [chap04]>select distinct 部门号 from worker;

        5、求出所有职工的人数:

mysql8.0.30 [chap04]>select count(*) from worker;

 

        6、列出最高工资和最低工资 

mysql8.0.30 [chap04]>select max(工资),min(工资) from worker;

         7、列出职工的平均工资和总工资:

mysql8.0.30 [chap04]>select sum(工资),avg(工资) from worker;

        8、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表:

mysql8.0.30 [chap04]>create table worktime select 职工号,姓名,工作时间 from worker;

 

        9、显示所有女职工的年龄:

mysql8.0.30 [chap04]>select 2019 - year(出生日期) as 年龄 from worker;

 

        10、列出所有姓刘的职工的职工号、姓名和出生日期:

mysql8.0.30 [chap04]>select 职工号,.姓.,.出生日期 from worker-> where 姓名 like '刘%';

        11、列出1960年以前出生的职工的姓名、参加工作日期:

mysql8.0.30 [chap04]>select 姓名,工作时间 from worker where 出生日期 < '1960-01-01';

        12、列出工资在10002000之间的所有职工姓名

mysql8.0.30 [chap04]>select 姓名 from worker where 工资 between 1000 and 2000;

         13、列出所有陈姓和李姓的职工姓名

mysql8.0.30 [chap04]>select 姓名 from worker where 姓名 like '张%' or 姓名 like '李%'; 

        14、列出所有部门号为1002和1003的职工号、姓名、党员否

mysql8.0.30 [chap04]>select 职工号,姓名,政治面貌 from worker where 部门号 like '1002%' or '1003%';

         15、将职工表worker中的职工按出生的先后顺序排序

mysql8.0.30 [chap04]>select 姓名 from worker order by 出生日期;

         16、显示工资最高的前3名职工的职工号和姓名

mysql8.0.30 [chap04]>select 职工号,姓名,工资 from worker order by 工资 desc limit 3;

        17、求出各部门党员的人数

mysql8.0.30 [chap04]>select 部门号,count(*) from worker where 政治面貌='党员' group by 部门号;

        18、统计各部门的工资和平均工资

mysql8.0.30 [chap04]>select 部门号,sum(工资),avg(工资) from worker group by 部门号;

        19、列出总人数大于2的部门号和总人数

mysql8.0.30 [chap04]>select 部门号,count(*) from worker group by 部门号 having count(*) > 2;

 

二、多表查询

        1、创建student和score表

        2、给student表和score表添加信息

                 1)、student:

                2)、score:

 

        3、 查询student表的所有记录

mysql8.0.30 [chap04]>select * from student;

        4、.查询student表的第2条到4条记录

mysql8.0.30 [chap04]>select * from student limit 1,3;

         5、student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

mysql8.0.30 [chap04]>select id,name,department from student;

        6、 student表中查询计算机系和英语系的学生的信息

mysql8.0.30 [chap04]>select * from student where department='计算机系' or department='英语系';

         7、student表中查询年龄28~32岁的学生信息

mysql8.0.30 [chap04]>select * from student where (2022-birth+1) between 28 and 32;

        8、 student表中查询每个院系有多少人

mysql8.0.30 [chap04]>select department,count(3) 人数 from student group by department; 

        9、 从score表中查询每个科目的最高分

mysql8.0.30 [chap04]>select c_name,max(grade) from score group by c_name;

        10、 查询李四的考试科目(c_name)和考试成绩(grade)

mysql8.0.30 [chap04]>select c.c_name,c.grade from student d,score c where d.id=c.stu_id and d.name='李四';

        11、 用连接的方式查询所有学生的信息和考试信息

mysql8.0.30 [chap04]>select d.id,name,sex,birth,department,address,c_name,grade from student d,score c where d.id = c.stu_id;

         12、计算每个学生的总成绩

mysql8.0.30 [chap04]>select d.id,name,sum(grade) from student d,score c where d.id=c.stu_id group by id;

        13、 计算每个考试科目的平均成绩

mysql8.0.30 [chap04]>select d.id,name,sum(grade) from student d,score c where d.id=c.stu_id group by id;

         14、计算每个考试科目的平均成绩

mysql8.0.30 [chap04]>select c_name,avg(grade) from score group by c_name;

        15、 查询计算机成绩低于95的学生信息

mysql8.0.30 [chap04]>select * from student where id = any(select stu_id from score where stu_id in ( select stu_id from score where c_name = '计算机') and c_name = '英语');

        16、 将计算机考试成绩按从高到低进行排序

mysql8.0.30 [chap04]>select stu_id, grade from score where c_name= '计算机' order by grade desc;

        17、 从student表和score表中查询出学生的学号,然后合并查询结果

mysql8.0.30 [chap04]>select id from student union select stu_id from score;

        18、 查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

mysql8.0.30 [chap04]>select student.id, name,sex,birth,department, address, c_name,grade from student, score where student.id=score.stu_id and (name like '张%' or name like '王%') ;

        19、 查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

mysql8.0.30 [chap04]> select student.id, name,sex,birth,department, address, c_name,grade from student, score where student.id=score.stu_id and address like '湖南%' ;

 

相关文章:

MySQL——单表、多表查询

一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varcha…...

关于表的操作 数据库(3)

目录 前期准备工作&#xff1a; 一、单表查询&#xff1a; 二、多表查询&#xff1a; 前期准备工作&#xff1a; 修改数据库的配置文件&#xff0c;&#xff0c;使其可以显示库名&#xff0c;其中//d代表当前使用的数据库名 注&#xff1a;vim /etc/my.cnf.d/mysql-server.c…...

C++:红黑树

红黑树的概念 红黑树是一棵二叉搜索树&#xff0c;但是红黑树通过增加一个存储位表示结点的颜色RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出2倍&#xff0c;因而是接近平衡的。 红黑树的性质 ⭐…...

每天一道算法题の中缀表达式

中缀表达式&#xff08;、-、*、/&#xff09; &#xff1a;中缀表达式是指操作符位于操作数之间的数学表达式。例如&#xff0c;在中缀表达式"2 3"中&#xff0c;操作符""位于操作数"2"和"3"之间。现给定一个中缀表达式&#xff0c…...

Dar语法基础-泛型

泛型 如果查看基本数组类型 List 的 API 文档&#xff0c;您会发现该类型实际上是 List<E>。 <…> 表示法将 List 标记为泛型&#xff08;或参数化&#xff09;类型——具有正式类型参数的类型。 按照惯例&#xff0c;大多数类型变量的名称都是单字母的&#xff0…...

rt-thread------串口(一)配置

系列文章目录 rt-thread 之 fal移植 rt-thread 之 生成工程模板 文章目录系列文章目录前言一、串口的配置step1&#xff1a;通过串口名字找到串口句柄step2&#xff1a;配置串口参数step3&#xff1a;设置串口接收回调函数step4&#xff1a;打开串口设备前言 UART&#xff08…...

Android - 自动系统签名

一、系统签名 以下是两类应用开发场景&#xff1a; 普通应用开发&#xff1a;使用公司自定义 keystore 进行签名&#xff0c;如&#xff1a;微信、支付宝系统应用开发&#xff1a;使用 AOSP 系统签名或厂商自定义 keystore 进行签名&#xff0c;如&#xff1a;设置、录音 系…...

SSH 服务详解 (八)-- vscode 通过 SSH 远程连接 linux 服务器

vscode 通过 SSH 远程连接 linux 服务器 SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录) SSH 服务详解 (三)-- 使用 SSH 代理 SSH 服务详解 (四)-- 本地调用远程主机的命令 SSH 服务详解 (五)-- 远程文件拷贝…...

【PTA Advanced】1060 Are They Equal(C++)

目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sample Output 2: 思路 C 知识点UP 代码 题目 If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered …...

仿真与测试:通过Signal Builder模块生成输入信号

本文研究通过Signal Builder模块生成输入信号的方法。 文章目录1 生成输入信号2 仿真过程2.1 搭建被测模型2.2 搭建Signal Builder输入模块2.3 配置仿真log及仿真3 总结1 生成输入信号 在汽车的电控软件开发中&#xff0c;经常会在Simulink模型内部进行单元测试。单元测试的本…...

云计算培训靠谱吗?

怎么算靠谱的培训呢&#xff1f; 举个例子&#xff1a; 我想参加云计算培训找个工作&#xff0c;机构满足了我的要求&#xff0c;有工作了&#xff0c;但是不是做云计算相关的。 小强也参加了云计算培训&#xff0c;想学好云计算成为技术大牛&#xff0c;最后专业学得普普通…...

力扣SQL刷题10

目录标题618. 学生地理信息报告--完全不会的新题型1097. 游戏玩法分析 V - 重难点1127. 用户购买平台--难且不会618. 学生地理信息报告–完全不会的新题型 max()函数的功效&#xff1a;&#xff08;‘jack’, null, null&#xff09;中得出‘jack’&#xff0c;&#xff08;nul…...

31 岁生日快乐,Linux!

Linux 迎来了 31 岁生日&#xff0c;所以和我一起庆祝 Linux 的 31 岁生日吧&#xff0c;喝上一杯好香槟和一个美味的蛋糕&#xff01;虽然有些人不承认 8 月 25 日是 Linux 的生日&#xff0c;但我知道。1991 年 8 月 25 日&#xff0c;21 岁的芬兰学生 Linus Benedict Torval…...

分布式ID生成方案

文章目录前言一、分布式ID需要满足的条件二、分布式ID生成方式基于UUID数据库自增数据库集群数据库号段模式redis ID生成基于雪花算法&#xff08;Snowflake&#xff09;模式百度&#xff08;uid-generator&#xff09;美团&#xff08;Leaf&#xff09;滴滴&#xff08;Tinyid…...

合宙Air103|fbd数据库| fskv - 替代fdb库|LuatOS-SOC接口|官方demo|学习(16):类redis的fbd数据库及fskv库

基础资料 基于Air103开发板&#xff1a;&#x1f697; Air103 - LuatOS 文档 上手&#xff1a;开发上手 - LuatOS 文档 探讨重点 对官方社区库接口类redis的fbd数据库及fskv库的调用及示例进行复现及分析&#xff0c;了解两库的基本原理及操作方法。 软件及工具版本 Luat…...

【论文精读】Deep Residual Learning for Image Recognition

1 Degradation Problem&#x1f4a6; 深度卷积神经网络在图像分类方面取得了一系列突破。深度网络自然地将低/中/高级特征和分类器以端到端的多层方式集成在一起&#xff0c;特征的“层次”可以通过堆叠层数(深度)来丰富。最近的研究揭示了网络深度是至关重要的&#xff0c;在具…...

Lesson2:基础语法、输出输入

一、基础语法 1、行结构 一个Python程序可分为许多逻辑行&#xff0c;一般来说&#xff1a;一个语句就是一行代码&#xff0c;不会跨越多行。 """比如下面的Python程序&#xff0c;一共有3个逻辑行&#xff0c;每一行都通过print()输出一个结果。""…...

android 9.0去掉前置摄像头闪光灯功能

1.1概述 在9.0的系统rom定制化开发中,在系统中camera2也是非常重要的一部分功能,在很多场合会用到camera2拍照视频,等等功能, 但是在使用过程中发现系统camera2在使用的时候,在前置摄像头进行拍照的时候,会出现闪光灯的情况,对于产品来说,者就是一个大问题,所以产品要求…...

静态分析工具Cppcheck在Windows上的使用

之前在https://blog.csdn.net/fengbingchun/article/details/8887843 介绍过Cppcheck&#xff0c;那时还是1.x版本&#xff0c;现在已到2.x版本&#xff0c;这里再总结下。 Cppcheck是一个用于C/C代码的静态分析工具&#xff0c;源码地址为https://github.com/danmar/cppcheck …...

用一年时间脱胎换骨

生活习惯篇早睡早起11点30之前必须睡觉按时吃饭特别是早餐控糖&#xff0c;少吃甜食早起刷牙后&#xff0c;喝一杯温水保持身材&#xff0c;养成运动健身的习惯养成持续写作的习惯记录选题&#xff0c;金句&#xff0c;素材断舍离&#xff0c;定期整理&#xff0c;把不用的东西…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...