MySQL之DML和DDL

1、显示所有职工的基本信息:
2、查询所有职工所属部门的部门号,不显示重复的部门号。
3、求出所有职工的人数。
4、列出最高工和最低工资。
5、列出职工的平均工资和总工资。
6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。
7、显示所有女职工的年龄。
8、列出所有姓刘的职工的职工号、姓名和出生日期。
9、列出1960年以前出生的职工的姓名、参加工作日期。
10、列出工资在1000一2000之间的所有职工姓名。
11、列出所有陈姓和李姓的职工姓名。
12、列出所有部门号为2和3的职工号、姓名、党员否。
13、将职工表worker中的职工按出生的先后顺序排序。
14、显示工资最高的前3名职工的职工号和姓名。
15、求出各部门党员的人数。
16、统计各部门的工资和平均工资
17、列出总人数大于4的部门号和总人数。

首先需要建表如图所示

mysql> create table worker(
    -> dept_id int(11) not null,
    -> emp_id int (11) not null,
    -> work_time date not null,
    -> salary float(8,2) not null,
    -> poli_face varchar(10) not null default '群众',
    -> name varchar(20) not null,
    -> birth date not null,
    -> primary key(emp_id)
    -> )engine=innodb default charset=utf8 row_format=dynamic;

插入数据

mysql> insert into worker values(101,1001,'2015-5-4',3500.00,'群众','张三','1990-7-1');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into worker values(101,1002,'2017-2-6',3200.00,'团员','李四','1997-2-8');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into worker values(102,1003,'2011-2-4',8500.00,'党员','王亮','1983-6-8');
Query OK, 1 row affected (0.02 sec)
 
mysql> insert into worker values(102,1004,'2016-10-10',5500.00,'群众','赵六','1994-9-5');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into worker values(102,1005,'2014-4-1',4800.00,'党员','钱七','1992-12-30');
Query OK, 1 row affected (0.00 sec)
 
mysql> insert into worker values(102,1006,'2017-5-5',4500.00,'党员','孙八','1996-9-2');
Query OK, 1 row affected (0.01 sec)

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

select * from worker;

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

select distinct dept_id from worker;

3、求出所有职工的人数。

select count(name) from worker;

4、列出最高工和最低工资。

select max(salary) as '最高工资',min(salary) as '最低工资' from worker;

5、列出职工的平均工资和总工资。

select avg(salary) as '平均工资',sum(salary) as '总工资' from worker;

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

mysql> create table workdate select emp_id,name from worker;
Query OK, 6 rows affected (0.03 sec)
Records: 6  Duplicates: 0  Warnings: 0
mysql> select * from workdate;
+--------+--------+
| emp_id | name   |
+--------+--------+
|   1001 | 张三   |
|   1002 | 李四   |
|   1003 | 王亮   |
|   1004 | 赵六   |
|   1005 | 钱七   |
|   1006 | 孙八   |
+--------+--------+
6 rows in set (0.00 sec)

7、显示所有女职工的年龄。

首先worker表当中暂时没有年龄和性别属性所以要增加


mysql> alter table worker add age tinyint default 18;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
mysql> alter table worker add gender char(1) check(gender in ('F','M'));
Query OK, 6 rows affected (0.03 sec)
Records: 6  Duplicates: 0  Warnings: 0

然后向里面给每个人插入年龄和姓别

mysql> update worker set age=19,gender='F' where name='张三';
 
mysql> update worker set age=20,gender='F' where name='李四';
 
mysql> update worker set age=21,gender='M' where name='王亮';
 
mysql> update worker set gender='M' where name='赵六';
 
mysql> update worker set gender='M' where name='钱七';
 
mysql> update worker set gender='M' where name='孙八';

此时我们可以查看一下表的内容

 

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

select emp_id,name,birth from worker where name='刘%';
 
因为我们表中并没有姓刘的所以应该是查询不到的

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

select name,work_time from worker where birth < '1960-1-1';

10、列出工资在1000一2000之间的所有职工姓名。

select name from worker where salary between 1000 and 2000;

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

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

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

select emp_id,name from worker where poli_face != '党员' and dept_id in (102,103);

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

select name,birth from worker order by(birth);

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

select emp_id,name from worker  order by(salary) desc limit 0,3;

15、求出各部门党员的人数。

select dept_id ,count(name) from worker where poli_face='党员' group by(dept_id);

因为此时统计出来的全是102部门的,为了验证是否写的正确我又插入了一个部门为101的数据

insert into worker values(101,1007,'2017-1-1',4000.00,'党员','陈启','1990-2-2',18,'M');

然后再查询

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

select dept_id,sum(salary),avg(salary) from worker group by(dept_id);

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

select dept_id,count(name) from worker group by(dept_id) having count(name) > 4;

因为我们的表中并没有部门人数大于4的所以查不到,我们可以查一下部门人数大于二的验证以下正确性

select dept_id,count(name) from worker group by(dept_id) having count(name) > 2;

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

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

相关文章

react报错信息

报错信息 render函数里dom不能直接展示obj对象 取变量记得要有{} https://segmentfault.com/q/1010000009619339 这样在写的时候就已经执行方法了&#xff0c;所以此处用箭头函数&#xff08;&#xff09;》{}才会在点击时执行或者 遍历数据使用map来遍历&#xff0c;使用forea…

TCP和UDP的区别

连接&#xff1a;TCP 是面向连接的传输层协议&#xff0c;传输数据前先要建立连接&#xff1b;UDP 是不需要连接&#xff0c;即刻传输数据。首部开销&#xff1a;TCP 首部长度较长&#xff0c;首部在没有使用「选项」字段时是 20 个字节&#xff0c;如果使用了「选项」字段则会…

概率论的学习和整理17:EXCEL的各种期望,方差的公式

目录 1 总结 1.1 本文目标总结方法 1.2 总结一些中间关键函数 2 均值和期望 2.1 求均值的公式 2.2 求随机变量期望的公式 2.3 求随机变量期望的朴素公式 3 方差 3.1 确定数的方差 3.2 统计数的方差公式 3.3 随机变量的方差公式 3.4 EXCEL提供的直接计算方差的公式 …

CentOS目录详解

在centos中&#xff0c;最顶层的目录称作根目录&#xff0c; 用/表示。/目录下用户可以再创建目录&#xff0c;但是有一些目录随着系统创建就已经存在&#xff0c;接下来重点介绍几个常用目录。 /bin&#xff08;binary&#xff09;包含了许多所有用户都可以访问的可执行文件&a…

PostgreSQL MVCC的弊端优化方案

我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。 尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等…

如何在Appium中使用AI定位

当我们在写自动化测试脚本的时候&#xff0c;传统情况下一定要知道元素的属性&#xff0c;如id、name、class等。那么通过AI的方式定位元素可能就不需要知道元素的属性&#xff0c;评价人对元素的判断来定位&#xff0c;比如&#xff0c;看到一个搜索框&#xff0c;直接使用ai:…

【无标题】使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一样

问题&#xff1a;使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一样&#xff0c;在mac下&#xff0c;一切正常&#xff0c;看起来很舒服&#xff0c;但是当我把页面放在扩展屏幕下&#xff08;27寸&#xff09;&#xff0c;再生成一个pdf&#xff0c;虽然排版一…

【算法基础:数据结构】2.3 并查集

文章目录 并查集算法原理&#xff08;重要&#xff01;⭐&#xff09; 经典例题836. 合并集合&#xff08;重要&#xff01;模板&#xff01;⭐&#xff09;837. 连通块中点的数量&#xff08;维护连通块大小的并查集&#xff09;240. 食物链&#xff08;维护额外信息的并查集&…

【AI绘画】AI绘画乐趣:稳定增强扩散技术展现

目录 前言一、Stable Diffusion是什么&#xff1f;二、安装stable-diffusion-webui1. python安装2. 下载模型3. 开始安装&#xff1a;4. 汉化&#xff1a;5. 模型使用&#xff1a;6. 下载新模型&#xff1a;7. 基础玩法 三、总结 前言 本文将借助stable-diffusion-webui项目来…

【数据结构与算法】哈夫曼编码(最优二叉树)实现

哈夫曼编码 等长编码&#xff1a;占的位置一样 变长编码&#xff08;不等长编码&#xff09;&#xff1a;经常使用的编码比较短&#xff0c;不常用的比较短 最优&#xff1a;总长度最短 最优的要求&#xff1a;占用空间尽可能短&#xff0c;不占用多余空间&#xff0c;且不…

网络版计算器

本次我们实现一个服务器版本的简单的计算器&#xff0c;通过自己在应用层定制协议来将数据传输出去。 协议代码 此处我们为了解耦&#xff0c;采用了两个类&#xff0c;分别表示客户端的请求和服务端的响应。 Request class Request { public:Request(){}Request(int x, int…

Unity 任意数据在Scene窗口Debug

任意数据在Scene窗口Debug &#x1f354;效果&#x1f96a;食用方法 &#x1f354;效果 如下所示可以很方便的把需要Debug的数据绘制到Scene中&#xff08;普通的Editor脚本只能够对MonoBehaviour进行Debug&#xff09; &#x1f96a;食用方法 &#x1f4a1;. 新建脚本继承Z…

实例018 类似windows xp的程序界面

实例说明 在Windows XP环境下打开控制面板&#xff0c;会发现左侧的导航界面很实用。双击展开按钮&#xff0c;导航栏功能显示出来&#xff0c;双击收缩按钮&#xff0c;导航按钮收缩。下面通过实例介绍此种主窗体的设计方法。运行本例&#xff0c;效果如图1.18所示。 ​编辑…

如何顺势而为,让ChatGPT为教育所用?

恐惧和回避无法阻挡科技的浪潮&#xff0c;教育与AI的深度融合时代已经到来&#xff0c;如何把AI当做工具&#xff0c;把其成为教育的机会而非威胁&#xff0c;是教育体系未来不得不得面对的新变化。 接受ChatGPT作为一种教学辅助工具&#xff0c;成为教师的朋友或者帮手&…

Leetcode每日一题:979. 在二叉树中分配硬币(2023.7.14 C++)

目录 979. 在二叉树中分配硬币 题目描述&#xff1a; 实现代码与解析&#xff1a; dfs&#xff08;后序遍历&#xff09; 原理思路&#xff1a; 979. 在二叉树中分配硬币 题目描述&#xff1a; 给定一个有 N 个结点的二叉树的根结点 root&#xff0c;树中的每个结点上都对…

5.postgresql--COALESCE

在 PostgreSQL 中&#xff0c; COALESCE函数返回第一个非空参数。它通常与 SELECT 语句一起使用以有效处理空值。 COALESCE函数接受无限数量的参数。它返回第一个不为空的参数。如果所有参数都为 null&#xff0c;则 COALESCE函数将返回 null。 COALESCE函数从左到右计算参数&a…

doris恢复库恢复表

今天眼疾手快 不小心删了公司生产环境的表 而且碰巧这个数据没有备份的 当时哥们就呆住 还好doris升级过1.2 刚推出了恢复数据的功能~~~~~这里给老天爷磕一个了~~~~~~ 数据删除恢复 Doris为了避免误操作造成的灾难&#xff0c;支持对误删除的数据库/表/分区进行数据恢复&…

MongoDB初体验-安装使用教程2023.7

前言&#xff1a;博主第一次接触MongoDB&#xff0c;看了一圈网上现有的教程&#xff0c;不是缺少细节就是有问题没交代清楚&#xff0c;特整理了一下自己安装运行的过程&#xff0c;从下载安装到开机自启&#xff0c;全程细节齐全、图文并茂、简单易懂。 目录 1. 从官网下载2…

JavaWeb课程设计项目实战(03)——开发准备工作

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 在正式进入项目开发之前请先完成以下准备工作。 数据库语句 请创建数据库和表并完成数据初始化工作。 初始化数据库 请在MySQL数据库中创建名为studentinformationmanag…

Nacos服务注册和配置中心(Config,Eureka,Bus)1

SCA(Spring Cloud Alibaba)核心组件 Spring Cloud是若干个框架的集合&#xff0c;包括spring-cloud-config、spring-cloud-bus等近20个子项目&#xff0c;提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案,Spring C…