Mysql 一、练习一二、练习二 一、练习一 这里首先将素材创建完毕,首先创建一个数据库并使用,这里我创建的数据库名为worker: 紧接着我们创建数据库表并创建表结构: 查看表结构

这里首先将素材创建完毕,首先创建一个数据库并使用,这里我创建的数据库名为worker:

紧接着我们创建数据库表并创建表结构:

查看表结构:

接着我们导入数据:



这里我们可以看到素材已经创建完毕,这里我们进行之后的操作:
实现代码:
SELECT *FROM worker; 执行结果:

实现代码:
SELECT DISTINCT 部门号FROM worker; 执行结果:

实现代码:
SELECT COUNT(*) AS 职工人数FROM worker; 执行结果:

实现代码:
SELECT MAX(工资) AS 最高工资,MIN(工资) AS 最低工资FROM worker; 执行结果:

实现代码:
SELECT AVG(工资) AS '平均工资', SUM(工资) AS '总工资'FROM worker; 执行结果:

实现代码:
CREATE TABLE 工作日期表 ASSELECT 职工号, 姓名, 工作时间FROM worker; 执行结果:


实现代码:
SELECT 2023 -YEAR(出生日期) AS 年龄 FROM worker; 执行结果:

实现代码:
SELECT 职工号, 姓名, 出生日期FROM workerWHERE 姓名 LIKE '刘%'; 执行结果:

实现代码:
SELECT 姓名,工作时间FROM workerWHERE 出生日期 < '1960-01-01'; 执行结果:

实现代码:
SELECT 姓名FROM workerWHERE 工资 BETWEEN 1000.00 AND 2000.00; 执行结果:

实现代码:
SELECT 姓名FROM workerWHERE 姓名 LIKE '陈%' OR 姓名 LIKE '李%'; 执行结果:

实现代码:
SELECT 职工号, 姓名, CASE WHEN 政治面貌 = '党员' THEN '是' ELSE '否' END AS '党员'FROM workerWHERE 部门号 IN (102,103); 执行结果:

实现代码:
SELECT *FROM workerORDER BY 出生日期; 执行结果:

实现代码:
SELECT 职工号, 姓名FROM workerORDER BY 工资 DESCLIMIT 3; 执行结果:

实现代码:
SELECT 部门号, COUNT(*) AS '党员人数'FROM workerWHERE 政治面貌 = '党员'GROUP BY 部门号; 执行结果:

实现代码:
SELECT 部门号, SUM(工资) AS '总工资', AVG(工资) AS '平均工资'FROM workerGROUP BY 部门号; 执行结果:

实现代码:
SELECT 部门号, COUNT(*) AS '总人数'FROM workerGROUP BY 部门号HAVING COUNT(*) > 4; 执行结果:


这里首先将素材创建完毕,首先创建一个数据库并使用,这里我创建的数据库名为worker,依旧使用上一个练习的数据库。
紧接着我们创建数据库表并创建表结构,查看表结构:



接着我们导入数据:




这里我们可以看到素材已经创建完毕,这里我们进行之后的操作:
实现代码:
SELECT * FROM student; 执行结果:

实现代码:
SELECT * FROM student LIMIT 1,3; 执行结果:

实现代码:
SELECT id, name, department FROM student; 执行结果:

实现代码:
SELECT * FROM student WHERE department IN ('计算机系', '英语系'); 执行结果:

实现代码:
SELECT * FROM student WHERE YEAR(CURRENT_DATE) - birth BETWEEN 18 AND 22; 执行结果:

实现代码:
SELECT department, COUNT(*) AS '人数' FROM student GROUP BY department; 执行结果:

实现代码:
SELECT c_name, MAX(grade) AS '最高分' FROM score GROUP BY c_name; 执行结果:

实现代码:
SELECT c_name, grade FROM score WHERE stu_id = (SELECT id FROM student WHERE name = '李四'); 执行结果:

实现代码:
SELECT student.id, student.name, student.department, score.c_name, score.gradeFROM studentJOIN score ON student.id = score.stu_id; 执行结果:

实现代码:
SELECT student.id, student.name, SUM(score.grade) AS '总成绩'FROM studentJOIN score ON student.id = score.stu_idGROUP BY student.id, student.name; 执行结果:

实现代码:
SELECT c_name, AVG(grade) AS '平均成绩' FROM score GROUP BY c_name; 执行结果:

实现代码:
SELECT student.*FROM studentJOIN score ON student.id = score.stu_idWHERE score.c_name = '计算机' AND score.grade < 95; 执行结果:

实现代码:
SELECT student.*FROM studentWHERE id IN ( SELECT s1.stu_id FROM score AS s1 JOIN score AS s2 ON s1.stu_id = s2.stu_id WHERE s1.c_name = '计算机' AND s2.c_name = '英语'); 执行结果:

实现代码:
SELECT student.name, score.c_name, score.gradeFROM studentJOIN score ON student.id = score.stu_idWHERE score.c_name = '计算机'ORDER BY score.grade DESC; 执行结果:

实现代码:
SELECT id FROM studentUNIONSELECT stu_id FROM score; 执行结果:

实现代码:
SELECT student.name, student.department, score.c_name, score.gradeFROM studentJOIN score ON student.id = score.stu_idWHERE student.name LIKE '张%' OR student.name LIKE '王%'; 执行结果:

实现代码:
SELECT student.name, YEAR(CURRENT_DATE) - student.birth AS '年龄', student.department, score.c_name, score.gradeFROM studentJOIN score ON student.id = score.stu_idWHERE student.address LIKE '%湖南%'; 执行结果:

来源地址:https://blog.csdn.net/weixin_63172698/article/details/133696216
--结束END--
本文标题: MySQL——单表与多表查询练习
本文链接: https://www.lsjlt.com/news/463939.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0