网络营销专业大学排名,济南seo优化外包服务,网站设计网站建设哪家快,装修网站设计师目录
一、练习时先导入数据如下#xff1a;
二、查询验证导入是否成功
三、单表查询 四、where和having的区别 一、练习时先导入数据如下#xff1a;
素材#xff1a; 表名#xff1a;worker-- 表中字段均为中文#xff0c;比如 部门号 工资 职工号 参加工作 等
CRE…目录
一、练习时先导入数据如下
二、查询验证导入是否成功
三、单表查询 四、where和having的区别 一、练习时先导入数据如下
素材 表名worker-- 表中字段均为中文比如 部门号 工资 职工号 参加工作 等
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,年龄 int,PRIMARY KEY (职工号)
) ENGINEInnoDB DEFAULT CHARSETutf8 ROW_FORMATDYNAMIC;INSERT INTO worker (部门号, 职工号, 工作时间, 工资, 政治面貌, 姓名, 出生日期)
VALUES (101, 1001, 2015-5-4, 3500.00, 群众, 张三, 1990-7-111),(101, 1002, 2017-2-6, 3200.00, 团员, 李四, 1997-2-822),(102, 1003, 2011-1-4, 8500.00, 党员, 王亮, 1983-6-833),(102, 1004, 2016-10-10, 5500.00, 群众, 赵六, 1994-9-544),(102, 1005, 2014-4-1, 4800.00, 党员, 钱七, 1992-12-3055),(102, 1006, 2017-5-5, 4500.00, 党员, 孙八, 1996-9-266);UPDATE worker
SET 年龄 YEAR(CURDATE()) - YEAR(出生日期) - (DATE_FORMAT(CURDATE(), %m%d) DATE_FORMAT(出生日期, %m%d));二、查询验证导入是否成功 三、单表查询
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 年龄 from worker where 性别 女;
8、列出所有姓刘的职工的职工号、姓名和出生日期。 SELECT 职工号, 姓名, 出生日期 FROM worker WHERE 姓名 LIKE 刘%; 9、列出1960年以前出生的职工的姓名、参加工作日期。
SELECT 姓名, 工作时间 FROM worker WHERE 出生日期 1960-01-01; 10、列出工资在10002000之间的所有职工姓名。
select 姓名 from worker where 工资 between 1000 and 2000; 11、列出所有陈姓和李姓的职工姓名。
SELECT 姓名 FROM worker WHERE 姓名 LIKE 陈% OR 姓名 LIKE 李%;12、列出所有部门号为2和3的职工号、姓名、党员否。
SELECT 职工号, 姓名, 政治面貌 FROM worker WHERE 部门号 IN (2, 3);13、将职工表worker中的职工按出生的先后顺序排序。
select *from worker order by 出生日期; 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 总人数 4; 四、where和having的区别 WHERE 子句 WHERE 子句用于在执行 SELECT 查询时对表中的行进行筛选。它作用于从表中选取的数据行在数据从表中读取到内存之前进行筛选。这意味着 WHERE 子句可以根据条件过滤掉不符合要求的行只有符合条件的行会被取回到查询结果中。 HAVING 子句 HAVING 子句用于在执行聚合函数如 SUM、COUNT、AVG 等后对结果进行筛选。它作用于聚合结果集允许你筛选聚合后的数据类似于对聚合结果进行二次筛选。HAVING 子句通常与 GROUP BY 子句一起使用因为聚合函数在分组后才有意义。
总结
WHERE 子句用于在数据选取之前筛选数据行它作用于从表中选取的原始数据。HAVING 子句用于在聚合函数计算之后筛选结果集它作用于聚合后的数据。