Java笔试题之SQL语句(单表)

本文通过一个具体实例,展示了如何创建数据库表、插入数据、解决字符集问题,并提供了多个实用的SQL查询语句,如统计部门人数、计算特定职位的平均薪资等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:系统中有一个表WCEmploy(职工号,姓名,部门名,工种,工资)

一.请写出建表语句

1 create table WCEmploy(
2     id int AUTO_INCREMENT PRIMARY KEY,
3     `name` char(8) not null,
4     department_name char(16),
5     type char(8),
6     salary double
7 )

二.插入数据

1 insert into wcemploy values(null,'张三','车间一','钳工',6000)
2 insert into wcemploy values(null,'李四','车间一','电工',8000)
3 insert into wcemploy values(null,'王五','车间二','车间主任',10000)
1 insert into wcemploy values(null,'泰日天','车间一','钳工',6000),
2 (null,'风高放火','车间一','电工',8000),
3 (null,'沃尔沃','车间二','车间主任',10000),
4 (null,'CVBS','车间二','钳工',2000),
5 (null,'单个人','车间三','钳工',4500),
6 (null,'人头狗','车间二','钳工',6000),
7 (null,'后宫番','车间一','钳工',1500)

多条数据插入

 

在插入数据的时候,发生了一个错误,插入汉字数据报错

修改MySQL的数据库的数据库属性字符集为

三.查询语句

1.请用一个SQL语句查询每个部门的总人数

select department_name ,COUNT(DISTINCT id) from wcemploy
GROUP BY department_name

 

2.请用一个SQL语句查询出不同部门的担任“钳工”的职工平均工资

select department_name ,AVG(salary) from wcemploy
where type='钳工'
GROUP BY department_name//如果没有分组,就会出现错误

3.请用一个SQL语句查询出不同部门的担任“钳工”的职工平均工资高于2000的部门

 

select department_name ,AVG(salary)as avgsalary from wcemploy
where type='钳工' 
GROUP BY department_name
HAVING AVG(salary)>2000

 

错误写法:

select department_name ,AVG(salary)as avgsalary from wcemploy
where type='钳工'  and AVG(salary)>2000
GROUP BY department_name

4.请用一个SQL语句查询每个部门低于平均工资的员工信息

 

select * from
wcemploy w ,(select AVG(salary) as davg,department_name//一个W表
from wcemploy
GROUP BY department_name)t//一个t表
where w.department_name = t.department_name and w.salary<davg

1 select w.*,davg from
2 wcemploy w 
3 left join (select AVG(salary) as davg,department_name
4 from wcemploy
5 GROUP BY department_name )t on w.department_name = t.department_name
6 where w.department_name = t.department_name and w.salary<davg

 

  

 

转载于:https://www.cnblogs.com/Darius-Bennett/p/7684009.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值