数据库SQL查询相关练习

第一题:表名: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,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 DISTINCT 部门号 FROM worker;

3、求出所有职工的人数。

SELECT COUNT(职工号) '人数' FROM worker;

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

SELECT MAX(工资) '最高工资',MIN(工资) '最低工资' FROM worker;

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

SELECT AVG(工资) '平均工资',SUM(工资) '总工资' FROM worker;

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

CREATE TABLE WorkDate(职工号 INT(11) NOT NULL,姓名 VARCHAR(20) NOT NULL,work VARCHAR(20) NOT NULL);

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 姓名 LIKE '李%';

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

SELECT 职工号,姓名,政治面貌 FROM worker WHERE 部门号='102' OR 部门号='103';

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

SELECT 姓名 FROM worker ORDER BY 出生日期 asc;

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

SELECT 职工号,姓名 FROM worker ORDER BY 工资 desc limit 3;

15、求出各部门党员的人数。

SELECT COUNT(*) '党员人数' FROM worker WHERE 政治面貌='党员' ORDER BY 部门号;

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

SELECT AVG(工资) '平均工资',SUM(工资) '总工资' FROM worker ORDER BY 部门号;

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

SELECT 部门号,COUNT(*) '总人数' FROM worker GROUP BY 部门号 HAVING COUNT(*)>=4;

第二题:多表查询

1.创建student和score表
CREATE  TABLE student (id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY ,name  VARCHAR(20)  NOT NULL ,sex  VARCHAR(4) ,birth  YEAR,department  VARCHAR(20) ,address  VARCHAR(50)
);
创建score表。SQL代码如下:
CREATE  TABLE score (id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  AUTO_INCREMENT ,stu_id  INT(10)  NOT NULL ,c_name  VARCHAR(20) ,grade  INT(10)
);
2.为student表和score表增加记录
向student表插入记录的INSERT语句如下:
INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');
INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');
INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市');
INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');
INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');
INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
向score表插入记录的INSERT语句如下:
INSERT INTO score VALUES(NULL,901, '计算机',98);
INSERT INTO score VALUES(NULL,901, '英语', 80);
INSERT INTO score VALUES(NULL,902, '计算机',65);
INSERT INTO score VALUES(NULL,902, '中文',88);
INSERT INTO score VALUES(NULL,903, '中文',95);
INSERT INTO score VALUES(NULL,904, '计算机',70);
INSERT INTO score VALUES(NULL,904, '英语',92);
INSERT INTO score VALUES(NULL,905, '英语',94);
INSERT INTO score VALUES(NULL,906, '计算机',90);
INSERT INTO score VALUES(NULL,906, '英语',85);

3.查询student表的所有记录

SELECT * FROM student;

4.查询student表的第2条到4条记录

SELECT * FROM student LIMIT 2,4;

5.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

SELECT id,name,department FROM student;

6.从student表中查询计算机系和英语系的学生的信息

SELECT * FROM student WHERE department='计算机系' OR department='英语系';

7.从student表中查询年龄18~22岁的学生信息

SELECT * FROM student WHERE 18 <= 2024-birth <= 22;

8.从student表中查询每个院系有多少人

SELECT department,COUNT(*) '院校人数' FROM student GROUP BY department;

9.从score表中查询每个科目的最高分

SELECT c_name,MAX(grade) FROM score GROUP BY c_name;

10.查询李四的考试科目(c_name)和考试成绩(grade)

SELECT c_name,grade FROM score WHERE stu_id = (SELECT id FROM student WHERE name='李四');

11.用连接的方式查询所有学生的信息和考试信息

SELECT * FROM student s LEFT JOIN score sc ON s.id = sc.stu_id;

12.计算每个学生的总成绩

SELECT name,SUM(grade) FROM student s LEFT OUTER JOIN score sc ON s.id = sc.stu_id GROUP BY name;

13.计算每个考试科目的平均成绩

SELECT c_name,AVG(grade) FROM score GROUP BY c_name;

14.查询计算机成绩低于95的学生信息

SELECT * FROM student s LEFT OUTER JOIN score sc ON s.id = sc.stu_id WHERE grade < 95;

15.查询同时参加计算机和英语考试的学生的信息

SELECT * FROM student s LEFT OUTER JOIN score sc ON s.id = sc.stu_id WHERE c_name='计算机系' AND c_name='英语系';

16.将计算机考试成绩按从高到低进行排序

SELECT c_name,grade FROM score ORDER BY grade desc;

17.从student表和score表中查询出学生的学号,然后合并查询结果

SELECT s.id '学号'  FROM student s INNER JOIN score sc ON s.id = sc.stu_id;

18.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

SELECT name '姓名',department '院系',c_name '考试科目',grade '成绩' FROM student s INNER JOIN score sc ON s.id = sc.stu_id WHERE name LIKE '张%' OR name LIKE '王%';

19.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

SELECT name '姓名',birth '年龄',department '院系',c_name '考试科目',grade '成绩' FROM student s INNER JOIN score sc ON s.id = sc.stu_id WHERE address LIKE '湖南%';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyQt ------ QTextEditor

PyQt ------ QTextEditor 引言正文示例1------进阶示例 引言 这里给大家介绍一下 PyQt6 中的 QTextEditor 组件用法。 正文 QTextEditor 可以进行多行字符串输出的组件。 想要获取 QTextEditor 组件中当前存放的字符串&#xff0c;需要使用&#xff1a; QTextEditor.toPla…

《GreenPlum系列》GreenPlum初级教程-GreenPlum详细入门教程

文章目录 GreenPlum详细入门教程第一章 GreenPlum介绍1.MPP架构介绍2.GreenPlum介绍3.GreenPlum数据库架构4.GreenPlum数据库优缺点 第二章 GreenPlum单节点安装1.Docker创建centos容器1.1 拉取centos7镜像1.2 创建容器1.3 进入容器1.4 容器和服务器免密操作1.4.1 生成密钥1.4.…

idea创建公用依赖包项目

创建parent项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

OceanBase使用规范

规约制定背景: 降低故障率和维护成本 适用范围: 所有使用OceanBase的数据库 【分区表设计建议】 关于分区表创建时的注意事项。 。 单表行数可能超过10亿行或者单表容量超过200GB,推荐进行创建分区表。 。如果预计三年后的数据量根本达不到这个级别,请不要在创建表时使用分…

服务器管理平台(6)- Utils

Utils 本篇为服务器管理平台的结篇&#xff0c;讲述一些必要的Util&#xff0c;如钉钉告警、安全加密、远程登录等功能的实现 1、钉钉告警 1.1、SQL配置告警规则 逻辑磁盘容量已使用比例超过90% 超过30天未登录 字段名称字段类型解释Idint自增IDTablestring监测表名Metri…

matlab appdesigner系列-常用18-表格

表格&#xff0c;常用来导入外部表格数据 示例&#xff1a; 导入外界excel数据&#xff1a;data.xlsx 姓名年龄城市王一18长沙王二21上海王三56武汉王四47北京王五88成都王六23长春 操作步骤如下&#xff1a; 1&#xff09;将表格拖拽到画布上 2&#xff09;对app1右键进行…

GPSR路由算法的MATLAB实现

GPSR基于节点地理位置路由信息&#xff0c;采用贪婪策略和右手准则的结合在邻居节点中选择下一跳节点进行数据转发。节点在进行路由选择时&#xff0c;只需知道自己、邻居和目标节点的地理位置信息&#xff0c;无需维护全局网络的链路状态&#xff0c;这在很大程度上降低了网络…

高质量简历模板网站,免费、免费、免费

你们在制作简历时&#xff0c;是不是基本只关注两件事&#xff1a;简历模板&#xff0c;还有基本信息的填写。 当你再次坐下来更新你的简历时&#xff0c;可能会发现自己不自觉地选择了那个“看起来最好看的模板”&#xff0c;填写基本信息&#xff0c;却没有深入思考如何使简历…

基于 Docker 部署 Pingvin Share 文件共享平台

一、Pingvin Share 介绍 Pingvin Share 简介 Pingvin Share 是自托管文件共享平台&#xff0c;是 WeTransfer 的替代方案。 Pingvin Share 特点 在 2 分钟内启动您的实例使用可通过链接访问的文件创建共享没有文件大小限制&#xff0c;只有你的磁盘是你的限制设置共享到期时间…

C++11新特性:final/override控制

override关键字 用于显式标识一个成员函数&#xff08;通常是虚函数&#xff09;是在派生类中重写&#xff08;覆盖&#xff09;了基类中的虚函数。这有助于提高代码的可读性&#xff0c;同时在编译时提供了检查&#xff0c;确保派生类中的函数确实是在基类中有对应的虚函数。…

GZ036 区块链技术应用赛项赛题第3套

2023年全国职业院校技能大赛 高职组 “区块链技术应用” 赛项赛卷&#xff08;3卷&#xff09; 任 务 书 参赛队编号&#xff1a; 背景描述 新能源作为新兴领域&#xff0c;产业呈现碎片化与复杂化的特性&#xff0c;逐渐出现管理困难、供应链金融、可信监管与数…

论文阅读_训练大模型用于角色扮演

英文名称: Character-LLM: A Trainable Agent for Role-Playing 中文名称: 角色-LLM&#xff1a;训练Agent用于角色扮演 文章: [https://arxiv.org/abs/2310.10158](https://arxiv.org/abs/2310.10158) 作者: Yunfan Shao, Linyang Li, Junqi Dai, Xipeng Qiu 机构: 复旦大学…

军事智能中的深度强化学习不同于传统的深度强化学习

在军事智能中&#xff0c;“诡”和“诈”是两个最重要的概念。 “诡”变指的是智能体通过采取一些不可预测或复杂的变化策略来获得优势。诡变可能包括逃避对手的观察或引诱对手采取不利的行动。智能体可以使用诡变来欺骗对手&#xff0c;使其做出错误的决策或暴露其策略。 “诈…

动态规划最后一天(回文串)

目录 647. 回文子串 看到题目的第一想法 看到代码随想录之后的想法 自己实现过程中遇到的困难(看代码) 516.最长回文子序列 看到题目的第一想法 看到代码随想录之后的想法 自己实现过程中遇到的困难(看代码) 647. 回文子串 力扣题目链接…

【第七在线】智能商品计划:重塑服装行业的供应链管理

在当今快速变化的市场环境中&#xff0c;供应链管理已成为企业成功的关键因素之一。尤其在服装行业&#xff0c;供应链的效率、灵活性和透明度直接影响着企业的竞争力和盈利能力。随着技术的发展&#xff0c;智能商品计划正逐渐成为重塑供应链管理的强大工具。 一、智能商品计划…

什么是JMeter?我们为什么要用JMeter做性能测试

什么是JMeter&#xff1f;我们为什么要用JMeter做性能测试 什么是JMeter&#xff1f;为什么选择JMeterJMeter的优点JMeter是如何工作的 什么是JMeter&#xff1f; Apache JMeter TM是纯Java开源软件&#xff0c;最初由Apache软件基金会的Stefano Mazzocchi开发&#xff0c;旨在…

使用Transformers微调基于BERT模型做中文命名实体识别任务

注意版本!! python == 3.8.6 torch == 1.10.0 transformers == 4.36.2 datasets == 2.15.0 import json # 数据集下载地址:https://www.cluebenchmarks.com/introduce.html # 细粒度命名实体识别->下载# 将数据转为 BIO 标注形式 def dimension_label(path, save_p…

linux 之 ln 命令

linux 之 ln 命令 在Linux中&#xff0c;ln 命令用于创建文件或目录的链接。它有两种主要类型的链接。 硬链接&#xff08;Hard Links&#xff09; 硬链接实际上是原始文件的另一个引用&#xff0c;指向同一个inode&#xff08;索引节点&#xff09;&#xff0c;这意味着它们共…

如何在Linux上部署Docker容器

一、什么是docker&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux或Windows 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不…

方法调用(java)

方法调用的基本内存原理&#xff1a;先进后出 基本数据类型&#xff1a;整数类型、浮点数类型、布尔类型、字符类型&#xff1b;数据类型存储在自己的空间 引用数据类型&#xff1a;除了以上数据类型都是&#xff1b;数据值是存储在其他空间中&#xff0c;变量中存储的是地址…