MySQL单表查询练习题

news2024/11/16 0:54:14

 

目录

第一题

 第二题

 第三题


第一题

 

1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。

(1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。

mysql> create table pet( name varchar(20) not null, owner varchar(20), species varchar(20) not null,
sex char(1) not null, birth year not null, death year);
Query OK, 0 rows affected (0.00 sec)

mysql> desc pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | NO   |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | NO   |     | NULL    |       |
| sex     | char(1)     | NO   |     | NULL    |       |
| birth   | year(4)     | NO   |     | NULL    |       |
| death   | year(4)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

插入数据

mysql> insert into pet values('Fluffy','Harold','cat','f',2003,2010);
Query OK, 1 row affected (0.00 sec)

mysql> insert into pet values('Claws','Gwen','cat','m',2004,NULL);
Query OK, 1 row affected (0.00 sec)

mysql> insert into pet values('Buffy','NULL','dog','f',2009,NULL);
Query OK, 1 row affected (0.00 sec)

mysql> insert into pet values('Fang','Benny','dog','m',2000,NULL);
Query OK, 1 row affected (0.00 sec)

mysql> insert into pet values('Bowser','Diane','dog','m',2003,2009);
Query OK, 1 row affected (0.00 sec)

mysql> insert into pet values('Chirpy','NULL','bird','f',2008,NULL);
Query OK, 1 row affected (0.01 sec)

mysql> select * from pet;
+--------+--------+---------+-----+-------+-------+
| name   | owner  | species | sex | birth | death |
+--------+--------+---------+-----+-------+-------+
| Fluffy | Harold | cat     | f   |  2003 |  2010 |
| Claws  | Gwen   | cat     | m   |  2004 |  NULL |
| Buffy  | NULL   | dog     | f   |  2009 |  NULL |
| Fang   | Benny  | dog     | m   |  2000 |  NULL |
| Bowser | Diane  | dog     | m   |  2003 |  2009 |
| Chirpy | NULL   | bird    | f   |  2008 |  NULL |
+--------+--------+---------+-----+-------+-------+
6 rows in set (0.00 sec)

(2)使用UPDATE语句将名称为Fang 的狗的主人改为Kevin。

mysql> update pet set owner='Kevin' where name='Fang';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from pet;
+--------+--------+---------+-----+-------+-------+
| name   | owner  | species | sex | birth | death |
+--------+--------+---------+-----+-------+-------+
| Fluffy | Harold | cat     | f   |  2003 |  2010 |
| Claws  | Gwen   | cat     | m   |  2004 |  NULL |
| Buffy  | NULL   | dog     | f   |  2009 |  NULL |
| Fang   | Kevin  | dog     | m   |  2000 |  NULL |
| Bowser | Diane  | dog     | m   |  2003 |  2009 |
| Chirpy | NULL   | bird    | f   |  2008 |  NULL |
+--------+--------+---------+-----+-------+-------+
6 rows in set (0.00 sec)


(3)将没有主人的宠物的owner字段值都改为Duck。

mysql> update  pet set owner='Duck'  where  owner='NULL';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from pet;
+--------+--------+---------+-----+-------+-------+
| name   | owner  | species | sex | birth | death |
+--------+--------+---------+-----+-------+-------+
| Fluffy | Harold | cat     | f   |  2003 |  2010 |
| Claws  | Gwen   | cat     | m   |  2004 |  NULL |
| Buffy  | Duck   | dog     | f   |  2009 |  NULL |
| Fang   | Kevin  | dog     | m   |  2000 |  NULL |
| Bowser | Diane  | dog     | m   |  2003 |  2009 |
| Chirpy | Duck   | bird    | f   |  2008 |  NULL |
+--------+--------+---------+-----+-------+-------+
6 rows in set (0.00 sec)


(4)删除已经死亡的宠物记录。

mysql> delete from pet where death is not NULL;
Query OK, 2 rows affected (0.00 sec)

mysql> select * from pet;
+--------+-------+---------+-----+-------+-------+
| name   | owner | species | sex | birth | death |
+--------+-------+---------+-----+-------+-------+
| Claws  | Gwen  | cat     | m   |  2004 |  NULL |
| Buffy  | Duck  | dog     | f   |  2009 |  NULL |
| Fang   | Kevin | dog     | m   |  2000 |  NULL |
| Chirpy | Duck  | bird    | f   |  2008 |  NULL |
+--------+-------+---------+-----+-------+-------+
4 rows in set (0.00 sec)


(5)删除所有表中的记录。

mysql> delete from pet;
Query OK, 4 rows affected (0.00 sec)

mysql> select * from pet;
Empty set (0.01 sec)
 

 第二题

 

 1.创建表:

mysql> create table employee( id int primary key auto_increment, name varchar(20), gender varchar(20), salary decimal(4,2));
Query OK, 0 rows affected (0.01 sec)

mysql> desc employee;
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| id     | int(11)      | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20)  | YES  |     | NULL    |                |
| gender | varchar(20)  | YES  |     | NULL    |                |
| salary | decimal(6,2) | YES  |     | NULL    |                |
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

2. 插入数据

mysql> insert into employee values(1,'张三','男',2000.00);
Query OK, 1 row affected (0.00 sec)

mysql> insert into employee values(2,'李四','男',1000.00);
Query OK, 1 row affected (0.01 sec)

mysql> insert into employee values(3,'王五','女',4000.00);
Query OK, 1 row affected (0.00 sec)

mysql> select * from employee;
+----+--------+--------+---------+
| id | name   | gender | salary  |
+----+--------+--------+---------+
|  1 | 张三   | 男     | 2000.00 |
|  2 | 李四   | 男     | 1000.00 |
|  3 | 王五   | 女     | 4000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)

 要求3.1 将所有员工薪水修改为5000元

mysql> update employee set salary =5000.00;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> select * from employee;
+----+--------+--------+---------+
| id | name   | gender | salary  |
+----+--------+--------+---------+
|  1 | 张三   | 男     | 5000.00 |
|  2 | 李四   | 男     | 5000.00 |
|  3 | 王五   | 女     | 5000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)


    3.2将姓名为张三的员工薪水修改为3000元

mysql> update employee set salary =3000.00 where name='张三';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from employee;
+----+--------+--------+---------+
| id | name   | gender | salary  |
+----+--------+--------+---------+
|  1 | 张三   | 男     | 3000.00 |
|  2 | 李四   | 男     | 5000.00 |
|  3 | 王五   | 女     | 5000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)


    3.3将姓名为李四的员工薪水修改为4000元,gener改为女

mysql> update employee set salary =4000.00,gender='女'  where name='李四';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from employee;
+----+--------+--------+---------+
| id | name   | gender | salary  |
+----+--------+--------+---------+
|  1 | 张三   | 男     | 3000.00 |
|  2 | 李四   | 女     | 4000.00 |
|  3 | 王五   | 女     | 5000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)


    3.4 将王五的薪水在原有基础上增加1000元

mysql> update employee set salary =salary +1000.00  where name='王五';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from employee;
+----+--------+--------+---------+
| id | name   | gender | salary  |
+----+--------+--------+---------+
|  1 | 张三   | 男     | 3000.00 |
|  2 | 李四   | 女     | 4000.00 |
|  3 | 王五   | 女     | 6000.00 |
+----+--------+--------+---------+
3 rows in set (0.00 sec)

 第三题

创建表:

CREATE TABLE `emp`  (
  `empno` int(4) NOT NULL,
  `ename` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `job` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `mgr` int(4) NULL DEFAULT NULL,
  `hiredate` date NOT NULL,
  `sai` int(255) NOT NULL,
  `comm` int(255) NULL DEFAULT NULL,
  `deptno` int(2) NOT NULL,
  PRIMARY KEY (`empno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

插入数据

INSERT INTO `emp` VALUES (1001, '甘宁', '文员', 1013, '2000-12-17', 8000, NULL, 20);
INSERT INTO `emp` VALUES (1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO `emp` VALUES (1003, '殷天正', '销售员', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO `emp` VALUES (1004, '刘备', '经理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO `emp` VALUES (1005, '谢逊', '销售员', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO `emp` VALUES (1006, '关羽', '经理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO `emp` VALUES (1007, '张飞', '经理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO `emp` VALUES (1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO `emp` VALUES (1009, '曾阿牛', '董事长', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO `emp` VALUES (1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO `emp` VALUES (1011, '周泰', '文员', 1006, '2007-05-23', 11000, NULL, 20);
INSERT INTO `emp` VALUES (1012, '程普', '文员', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO `emp` VALUES (1013, '庞统', '分析师', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO `emp` VALUES (1014, '黄盖', '文员', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO `emp` VALUES (1015, '张三', '保洁员', 1001, '2013-05-01', 80000, 50000, 50);
 

1.查询出部门编号为30的所有员工

mysql> select * from emp where deptno='30';
+-------+-----------+-----------+------+------------+-------+-------+--------+
| empno | ename     | job       | mgr  | hiredate   | sai   | comm  | deptno |
+-------+-----------+-----------+------+------------+-------+-------+--------+
|  1002 | 黛绮丝    | 销售员    | 1006 | 2001-02-20 | 16000 |  3000 |     30 |
|  1003 | 殷天正    | 销售员    | 1006 | 2001-02-22 | 12500 |  5000 |     30 |
|  1005 | 谢逊      | 销售员    | 1006 | 2001-09-28 | 12500 | 14000 |     30 |
|  1006 | 关羽      | 经理      | 1009 | 2001-05-01 | 28500 |  NULL |     30 |
|  1010 | 韦一笑    | 销售员    | 1006 | 2001-09-08 | 15000 |     0 |     30 |
|  1012 | 程普      | 文员      | 1006 | 2001-12-03 |  9500 |  NULL |     30 |
+-------+-----------+-----------+------+------------+-------+-------+--------+
6 rows in set (0.00 sec)
 

-- 2. 所有销售员的姓名、编号和部门编号。


-- 3. 找出奖金高于工资的员工。


-- 4. 找出奖金高于工资60%的员工。


-- 5. 找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。

-- 6. 找出部门编号为10中所有经理,部门编号为20中所有销售员,还有即不是经理又不是销售员但其工资大或等于20000的所有员工详细资料。

-- 7. 无奖金或奖金低于1000的员工。

-- 8. 查询名字由三个字组成的员工。
-- 注意:一个汉字占三个字节

 

-- 9.查询2000年入职的员工。

-- 10. 查询所有员工详细信息,用编号升序排序

-- 11. 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序

 

-- 12.查询每个部门的平均工资

 

-- 13.查询每个部门的雇员数量

 

-- 14.查询每种工作的最高工资、最低工资、人数

 

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

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

相关文章

网络安全(黑客)内网渗透基础知识

0x01 内网概述 内网也指局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的历程安排、电子邮件和传真通信服务等功能。 内…

交叉导轨的结构与特长

在交叉导轨中,精密滚柱互相直交地组合在一起的滚柱保持架与设置在专用轨道上的90V形沟槽滚动面组合起来使用。通过将2列滚子导轨平行地装配,使导轨系统能承受4个方向的负荷。而且,因能向交叉滚子导轨施加预压,从而能获得无间隙且高…

zookeeper单机安装

1 检查环境jdk 参考:https://blog.csdn.net/weixin_44098426/article/details/128446376 2 解压安装包 mkdir -p /opt/zookeeper mv /home/wh/software/zk/apache-zookeeper-3.5.7-bin.tar.gz /opt/zookeeper tar -xzvf apache-zookeeper-3.5.7-bin.tar.gz 3 配置…

在Windows环境下安装Elasticsearch 8.8.2

Elasticsearch是一种开源的分布式搜索和分析引擎,被广泛应用于构建实时搜索、日志分析、数据可视化等应用。本文将详细介绍如何在Windows环境下安装和配置Elasticsearch 8。 安装Elasticsearch 步骤1:准备工作 在开始安装之前,确保已满足以…

多元回归预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost回归预测,GWO-XGBoost回归预测模型,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost回归预测,GWO-XGBoost回归预测模型,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

GPON MAC SFP ONU模块介绍与应用

伴随着网络通讯技术的发展,pon无源光网络正逐步走进人们的视野;在这之前你是否仅知道以太网接入?相比与以太网接入,pon作为一种点到多点网络,具有运维成本低、服务范围广、资源占用少等优势;我们最为熟知的…

CSS自学框架之漂浮提示(上方显示 底侧显示 右侧显示 左侧显示)

漂浮提示可以用较为隐藏的方式为用户提供帮助或引导信息,将鼠标移入文字内容后展示。 css代码: /* 浮漂提示框 */[myth-tag]{ position: relative }[myth-tag]:before, [myth-tag]:after{z-index: 1;opacity: 0;position: absolute;pointer-events: non…

LVS负载均衡集群之LVS-NAT集群

目录 一、什么是集群? 1.1、集群(cluster)的含义 1.2、问题 1.3解决方法 二、集群分类 2.1、负载均衡集群(Load Balance Cluster) 2.2、高可用集群(High Availability Cluster) 2.3、高性能运算集群 (High Performance Computer Clust…

企业服务器数据库被360后缀勒索病毒攻击后的正确处理方式

在数字化时代,企业服务器数据库的安全性至关重要。然而,即使采取了各种安全措施,仍然有可能遭受到360等后缀的勒索病毒网络攻击。近期,很多企业的云服务与物理服务器遭到了360后缀的勒索病毒攻击,导致企业内部数据库中…

能够ping通服务器的同时端口不通的排查方法

概述 当您在客户端访问目标服务器时,如果能ping通,但业务端口无法访问,您可以参见以下方法进行排查。 步骤一:实例安全组检查 1、登录ECS管理控制台,单击实例。 2、在顶部菜单栏左上角处,选择地域。 3、…

Visual Studio下2022Opencv的配置

Visual studio2022 opencv的配置 先从官网下载opencv : opencv releases 下载 ​ 我这里的开发环境是window版本,我们选择Windows版本进行下载 点开下载的文件,输入需要保存的路径 记住你保存的路径(我这里安装再F:) 安装需要时间静等安装…

修改Jeecg-boot context-path(附加图片+Nginx配置)

文章目录 需求描述解决方案前端后端Nginx 需求描述 前端框架采用的是ant design vue ,后端框架采用的是jeecg-boot,前端请求后端地址中包含jeecg-boot字样,想修改为其它的名字,修改方式如下 解决方案 前端 第一步 request.js文件路径:src…

2个好用的ftp和ssh工具推介

为什么不用xshell和xftp,是不好用吗?xshell和xftp虽然好用,而且也有免费版,但是,一个方面使用有限制,再就是你看见这个报错的弹窗烦不烦? 一、ssh工具-WindTerm WindTerm[1] 是一个基于 C 开发的开源终端模…

【Go】Go 语言教程--GO条件和循环语句(八)

往期教程: Go 语言教程–介绍(一)Go 语言教程–语言结构(二)Go 语言教程–语言结构(三)Go 语言教程–数据类型(四)Go 语言教程–语言变量(五)Go …

红队打靶,红日系列,红日靶场2

文章目录 描述:环境搭建:外网渗透:漏洞利用冰蝎连接,拿到shell 内网渗透转站CSCS插件提权 域渗透与横向移动 描述: 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一…

Kotlin~Command模式

概念 把请求转化为独立的对象 角色介绍 Command: 命令接口ConcreteCommand: 具体命令实现类 UML 代码实现 interface Command {fun execute(vararg arg: String):Int } class Print : Command {override fun execute(vararg arg: String): Int {println("Print:${arg…

代码随想录算法训练营第十二天 | 二叉树系列3

二叉树系列3 二叉树 看到二叉树就想到递归404 左叶子之和重点代码随想录的代码我的代码(当日晚上自己理解后写) 513 找树左下角的值重点代码随想录的代码我的代码(当日晚上自己理解后写) 112 路径总和未看讲解,自己编写的青春稚嫩版重点代码随想录的代码我的代码(当…

加解密简单了解之DH密钥协商与AES128

加解密简单了解 1、对称加密与非对称加密 对称加密概念:加密算法是公开的,靠的是秘钥来加密数据,使用一个秘钥加密,必须使用相同的秘钥才解密。 优点: 算法公开、计算量小、加密速度快、加密效率高 缺点:…

通信算法之171: LTE 不同带宽参数

转载&#xff1a; LTE不同带宽配置下的对应的采样率&#xff1a; < Sampling Time > 20 Mhz BW Case : Ts 1 sec / 30.72 Mhz 1s/30,720,000 Hz 0.0326 us 32.6 ns 15 Mhz BW Case : T15 sec / 23.04 Mhz 1s/23,040,000 Hz 0.0434 us 43.4 ns 10 Mhz BW Case :…

【数据结构二叉树OJ系列】2、单值二叉树

目录 题述&#xff08;力扣难度&#xff1a;简单&#xff09;&#xff1a; 思路&#xff1a; 正确的代码&#xff1a; 题述&#xff08;力扣难度&#xff1a;简单&#xff09;&#xff1a; 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。只有…