mysql 2

该文展示了一系列SQL命令,用于创建和管理一个包含职工基本信息(如部门号、职工号、工作时间、工资、政治面貌等)的数据库表格。包括插入数据、查询职工信息、统计分析(如部门人数、工资范围、党员人数)以及按特定条件排序等操作。
摘要由CSDN通过智能技术生成
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.显示所有职工的基本信息。

select * from worker;

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

select `部门号`,group_concat('职工号') from worker group by '部门号';

3.求出所有职工人数。

select count('职工号') as '职工人数' from worker;

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

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

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

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

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

create table '工作日期表' select `职工号`,`姓名`,`工作时间` from worker;
select *from '工作日期表';

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

select '姓名',2023 - year('出生日期') as '所有女职工的年龄' from worker;

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

insert into worker values (103,1007,'2014-9-1',5000,'群众','刘能','1990-8-1');
select *from worker;
select '职工号','姓名','出生日期' from worker where '姓名' like '刘%';

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

select `姓名`,`工作时间` from worker where year(`出生日期`)<1996;

10.列出工资在4000一5000之间的所有职工姓名

select * from worker;
select '姓名' from worker where '工资' > 4000 and '工资' < 5000;

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

select '姓名' from worker where '姓名' like '王%' or '姓名' like '李%';

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

select '职工号','姓名','政治面貌' from worker where ('部门号'=102 or '部门号'=103) and '政治面貌'='党员';

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

select '职工号','姓名','出生日期' from worker order by '出生日期' sac;

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

select '职工号','姓名' from worker order by '工资' desc limit 3;

15.求出各部门党员人数。

select '部门号',count('政治面貌') as '党员人数' from worker where '政治面貌'='党员' group by '部门号';

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

select '部门号',sum('工资') as '部门总共工资',avg('工资') as '平均工资' from worker group by '部门号';

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

select '部门号',count(*) as '部门总人数' from worker group by '部门号' having count(*)>4;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值