mysql单表查询练习题

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;
 

1、显示所有职工的基本信息。
SELECT * FROM worker;

2、查询所有职工所属部门的部门号,不显示重复的部门号。  
SELECT DISTINCT `部门号` FROM worker;

3、求出所有职工的人数。  
SELECT count(*)  AS  "职工人数"  FROM worker;

4、列出最高工和最低工资。  
SELECT 	MAX(`工资`)  AS  "最高工资",  MIN(`工资`)  AS  "最低工资"
FROM worker;

5、列出职工的平均工资和总工资。   
SELECT 	`职工号`, AVG('工资')  AS  "平均工资", SUM(`工资`)  AS  "总工资"
FROM worker;

6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表。 
CREATE TABLE `工作日期表`  AS SELECT  `职工号`, `姓名` `工作时间` 
FROM worker; 

7、显示所有女职工的年龄。 
SELECT `职工号`, `姓名`, YEAR(CURDATE()) - YEAR(出生日期) AS "年龄"
FROM worker 
WHERE gender = 0;

8、列出所有姓刘的职工的职工号、姓名和出生日期。
SELECT `职工号`, `姓名`, `出生日期`
FROM worker
WHERE `姓名` LIKE '刘%';

9、列出1960年以前出生的职工的姓名、参加工作日期。
SELECT `姓名`, `工作时间`
FROM worker
WHERE `出生日期` < 1960;

10、列出工资在1000-2000之间的所有职工姓名。 
SELECT `姓名`
FROM worker
WHERE `工资` BETWEEN 1000 AND 2000;

11、列出所有陈姓和李姓的职工姓名。
SELECT `姓名`
FROM worker
WHERE `姓名` LIKE `陈%` OR `李%`;

12、列出所有部门号为2和3的职工号、姓名、党员否。
SELECT `职工号`, `姓名`,	`政治面貌`
FROM worker
WHERE `部门号` = 2 OR `部门号` = 3; 

13、将职工表worker中的职工按出生的先后顺序排序。
SELECT * 
FROM worker 
ORDER BY `出生日期`;

14、显示工资最高的前3名职工的职工号和姓名。 
SELECT `职工号`, `姓名`
FROM worker
ORDER BY `工资` DESC
LIMIT 0, 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 总人数 > 4;




你可能感兴趣的:(MySQL,mysql,android,数据库)