MySQL单表查询操作(SELECT语句)

news/2024/10/20 6:31:52/

目录

步骤

1、创建表单

2、添加数据

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

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

5、 求出所有职工的人数

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

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

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

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

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

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

12、列出工资在1000-2000之间的所有职工姓名

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

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

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

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

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

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

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


步骤

1、创建表单

命令:

create table worker(    wo_dep_no int(11) not null comment'部门号',    wo_no int(11) not null comment'职工号',    wo_time date not null comment'工作时间',    wo_salary float(8,2) not null comment'工资',    wo_po varchar(10) not null default'群众' comment'政治面貌',    wo_name varchar(20) not null comment'姓名',    wo_age tinyint not null comment'年龄',  wo_gender char(1) not null default'M' comment'性别', wo_bd date not null comment'出生日期',    primary key(wo_no)    )engine=InnoDB default charset=utf8 row_format=dynamic;

2、添加数据

命令:

 insert into worker values (101,1001,'2015-5-4',3500.00,'群众','张三',33,'M','1990-7-1'),(101,1002,'2017-2-6',3200.00,'团员','李四',26,'M','1997-2-8'),(101,1003,'2014-5-4',4500.00,'党员','王五',43,'M','1980-7-9'),(101,1004,'2013-5-4',1500.00,'群众','陈濯',73,'M','1950-6-9'),(101,1005,'2003-5-4',4500.00,'团员','邵顺',68,'M','1955-4-10'),(102,1006,'2020-7-5',1900.00,'群众','李倝',28,'M','1995-8-10'),(102,1007,'2010-8-5',1800.00,'群众','刘妶',25,'F','1998-9-1'),(102,1008,'2018-8-25',4580.00,'党员','陈淑',22,'F','2001-5-1'),(102,1009,'2014-8-25',3200.00,'团员','丁珍',29,'F','1994-10-1'),(103,1010,'2004-8-15',4200.00,'团员','胡竹',31,'F','1992-6-1'),(103,1011,'2015-9-16',4500.00,'党员','刘允',41,'F','1982-6-5'),(103,1012,'1990-4-26',5900.00,'党员','刘影',71,'M','1952-6-5');

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

命令:

select *from worker;

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

命令:

select distinct wo_dep_no from worker;

distinct: 

使用distinct关键字可从查询结果中清除重复行

作用范围是后面所有字段的组合

5、 求出所有职工的人数

命令: 

select count(*) from worker;

使用count这个聚合函数完成表中数量的统计

*:代表所有 ,任意字符

count(*)表示返回表中的记录数(包括所有列),相当于统计表的行数(不会忽略列值为NULL的记录)

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

命令:

select max(wo_salary),min(wo_salary) from worker;

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

命令:

select avg(wo_salary),sum(wo_salary) from worker;

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

命令:

create table work_date select wo_no,wo_name,wo_time from worker;select *from work_date;

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

命令: 

select wo_name,wo_age from worker where wo_gender='F';

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

命令:

select wo_no,wo_name,wo_bd from worker where wo_name like '刘%';

另一种方式:

        正则表达式

                select wo_name,wo_no,wo_bd from worker where wo_name regexp '^刘';

补充:

       以李字开头的 :'李%'

  以李字结尾的:'%李'

  包含李字的:'%李%'

  第二个字是李的:'_李%'

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

命令: 

select wo_name,wo_time from worker where wo_bd<19600000;

命令(第二种):

select wo_name,wo_time from worker where wo_bd<'1960-01-01'; 

12、列出工资在1000-2000之间的所有职工姓名

命令:

select wo_name,wo_salary from worker where wo_salary between 1000 and 2000;

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

命令:

方法一:

select wo_name from worker where wo_name like '陈%' or wo_name like '李%';

方法二(正则表达式):

select wo_name from worker where wo_name regexp '^[陈|李]';

  

 ^ :匹配开始

 [abc]:匹配单个字符,匹配a或者b或者c,集合

^[陈|李]:匹配以陈或李开头的姓名

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

命令:

方法一:

select wo_dep_no,wo_no,wo_name,wo_po='党员' from worker where wo_dep_no in (102,103);

方法二:

select wo_dep_no,wo_no,wo_name,if(wo_po='党员','是','否') as '是否党员' from worker where wo_dep_no in (101,102);

方法三:

select wo_dep_no,wo_no,wo_name,if(wo_po='党员','是','否') as '是否党员' from worker where wo_dep_no =101
union
select wo_dep_no,wo_no,wo_name,if(wo_po='党员','是','否') as '是否党员' from worker where wo_dep_no =102;

  

wo_po='党员' 结果为0或1

        0表示非党员,1表示为党员

in:成员运算符

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

命令:

select wo_name,wo_bd from worker order by wo_bd;

order by: 排序 ,默认为升序

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

命令: 

select wo_no,wo_name,wo_salary from worker order by wo_salary desc limit 3;

desc(descend)

order by wo_salary desc:按薪资降序排列

limit:限制;来限定查询结果返回的起始记录和总数量。

        用法:SELECT … LIMIT offset_start,row_count;

        offset_start:第一个返回记录行的偏移量。默认为0.
        row_count:要返回记录行的最大数目。

 

select wo_no,wo_name,wo_salary from worker order by wo_salary desc limit 3;检索前三个记录

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

命令:

select wo_dep_no,count(wo_po) from worker where wo_po='党员' group by wo_dep_no;

 group by:分组

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

命令: 

select wo_dep_no,sum(wo_salary),avg(wo_salary) from worker group by wo_dep_no;

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

命令:

select wo_dep_no,count(*) from worker group by wo_dep_no;
select wo_dep_no,count(*) from worker group by wo_dep_no having count(wo_dep_no)>4;

数据分组--限定组的结果:HAVING子句

HAVING子句用来对分组后的结果再进行条件过滤。

HAVING子句可以使用聚合函数。


http://www.ppmy.cn/news/1026287.html

相关文章

24届近3年南京信息工程大学自动化考研院校分析

今天给大家带来的是南京信息工程大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、南京信息工程大学 学校简介 南京信息工程大学位于南京江北新区&#xff0c;是一所以大气科学为特色的全国重点大学&#xff0c;由江苏省人民政府、中华人民共和国教育部、中国气…

AI绘图(4)stable diffusion如何写好prompt 二

在进行绘制时&#xff0c;会添加很多的风格或细节来进行描述土拍你&#xff0c;当然也会由一些专业的词汇&#xff0c;如广角、相片、3d模型等&#xff0c;下面我们就会具体进行介绍。 1、「风格」的提示词 相片(photshop)、3D建模(3d model)、装饰艺术(art deco)、石像(ston…

【muduo】关于自动增长的缓冲区

目录 为什么需要缓冲区自动增长的缓冲区buffer数据结构buffer类 写详细比较费时间&#xff0c;就简单总结下。 总结自Linux 多线程服务端编程&#xff1a;使用 muduo C 网络库 Muduo网络编程&#xff1a; IO-multiplexnon-blocking 为什么需要缓冲区 Non-blocking IO 的核心…

[国产MCU]-BL602开发实例-I2C与总线设备地址扫描

I2C与总线设备扫描 文章目录 I2C与总线设备扫描1、I2C介绍2、I2C驱动API介绍3、I2C使用实例I2C (Inter-Intergrated Circuit)是一种串行通讯总线,使用多主从架构,用来连接低速外围装置。 每个器件都有一个唯一的地址识别,并且都可以作为一个发送器或接收器。每个连接到总线的…

python案例

这猜单词游戏。具体步骤如下&#xff1a; 导入random模块&#xff0c;用于随机选择单词。 设置初始生命次数为3。 创建一个单词列表words&#xff0c;其中包含了一些单词。 使用random.choices()函数从单词列表中随机选择一个单词作为秘密单词secret_word。 创建一个clue列表&a…

AWS上传私有windows server2019镜像64位

一.制作自己的镜像 我使用的是esxi&#xff0c;建立一个windows虚拟机&#xff0c;开启。 根据aws官方文档&#xff0c;虚拟机里的系统重要需要注意以下几点&#xff1a; 1.只有一张网卡&#xff0c;ip获取配置成dhcp。 2.关闭系统防火墙。 3.开启windows rdp 远程功能。 …

01_Hudi 框架概述、数据湖Data Lake、什么是数据湖、数据湖框架、背景概述、Hudi 介绍、Hudi 发展及特性等

本文来自"黑马程序员"hudi课程 1.第一章 Hudi 框架概述 1.1 数据湖Data Lake 1.1.1 仓库和湖泊 1.1.2 什么是数据湖 1.1.3 数据湖的优点 1.1.4 Data Lake vs Data warehouse 1.1.5 数据湖框架 1.1.5.1 Delta Lake 1.1.5.2 Apache Iceberg 1.1.5.3 Apache Hudi 1.1.6…

PyTorch翻译官网教程-LANGUAGE MODELING WITH NN.TRANSFORMER AND TORCHTEXT

官网链接 Language Modeling with nn.Transformer and torchtext — PyTorch Tutorials 2.0.1cu117 documentation 使用 NN.TRANSFORMER 和 TORCHTEXT进行语言建模 这是一个关于训练模型使用nn.Transformer来预测序列中的下一个单词的教程。 PyTorch 1.2版本包含了一个基于论…