MySQL单表查询练习题

 

目录

第一题

 第二题

 第三题


第一题

 

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.mzph.cn/news/176.shtml

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

相关文章

centos7.9php8swoole5swoft2环境安装遇到确实redis扩展的解决办法

1、环境介绍 运行系统:centos7.9 php版本:php8.0.29 swoole版本:swoole5 swoft版本:swoft2.02、遇到的问题 The requested PHP extension ext-redis * is missing from your system. Install or enable PHPs redis extension。这…

python爬虫哪个库用的最多

目录 常用的python爬虫库有哪些 1. Requests: 2. BeautifulSoup: 3. Scrapy: 4. Selenium: 5. Scrapy-Redis: 哪个爬虫库用的最多 Scrapy示例代码 总结 常用的python爬虫库有哪些 Python拥有许多常用的爬虫库…

Java反射与“整活--(IOC容器)”

文章目录 前言反射什么是反射基本操作获取类对象获取类属性获取类方法方法的执行对构造方法的操作 注解定义获取注解 整活(IOC容器)项目结构IOC/DI流程ApplicationContextBeanDefinitionReaderBeanDefinitionBeanWrappergetBean()…

Django_admin数据管理后台

目录 一、基础操作 二、自定义后台操作数据行为 源码等资料获取方法 admin数据管理后台是django内置的一个后台管理界面,能查看已注册模型类的数据结构,以及对数据的增删改。 一、基础操作 1.1 检查项目目录下的urls.py有没有如下配置 1.2 创建djan…

技术讨论:我心中TOP1的编程语言

欢迎关注博主 六月暴雪飞梨花 或加入【六月暴雪飞梨花】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术…

Flutter——最详细(NavigationBar)使用教程

NavigationBar简介 Material 3 导航栏组件! 导航栏提供了一种持久且便捷的方式来在应用程序的主要目的地之间进行切换。 使用场景: 底部菜单栏模块 属性作用onDestinationSelected选择索引回调监听器selectedIndex目前选定目的地的索引destinations存放菜单按钮back…

七大排序算法——冒泡排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、冒泡排序核心思想代码实现 三、性能分析四、七大排序算法 一、排序的概念 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或…

C++之工厂模式

目录 一、为什么要使用工厂模式 优点 缺点 二、简单工厂(Simple Factory) 好处: 不足: 三、工厂方法: 好处: 不足: 四、抽象工厂(Abstract Factory) 一、为什…

【HCIA】10.VLAN间通信

VLAN间通信的解决方法 使用路由器的物理接口 路由器三层接口作为网关,转发本网段前往其它网段的流量。路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。路由器的一个物理接口作为一个VLAN的网关,因此…

Django_re_path_使用正则匹配url

与path定义的路由相比,re_path 定义的路由可以使用正则表达式匹配url。 需要注意的是: 如果未定义匹配结果的变量名,匹配的结果默认传入视图的第2个形参。如果定义了匹配结果的变量名,匹配的结果会传给视图的同名字段&#xff0…

【GitOps系列】从零上手GitOps

文章目录 GitOps 介绍如何将业务代码构建为容器镜像?如何将容器镜像部署到K8s?K8s如何实现自动扩容和自愈?1.传统的扩容和自愈2.k8s自愈机制3.k8s弹性扩容 如何借助GitOps实现应用秒级自动发布和回滚?1.传统 K8s 应用发布流程2.从…

【Arduino小车实践】陀螺仪的使用

一、MPU6050简介 MPU6050是一款陀螺仪模块,可以测量X、Y、Z三轴的角速度和加速度,还带有温度传感器和数字运动处理器(DMP)。 二、学习步骤 1. I2C协议 MPU6050是通过I2C协议进行驱动的,配置寄存器和获取数据都需要通过I2C协议去实现开发板与…

CentOS环境下的Nginx安装

Nginx 安装 下载 nginx 下载地址:http://nginx.org/en/download.html 将下载好的压缩包拷贝到根目录下 通过xshell如果出现 bash: rz: 未找到命令 ,需要先运行下面的命令 yum -y install lrzsz安装 解压到当前目录 tar -zxvf nginx-1.22.1.tar.gz安…

Hive SQL 迁移 Flink SQL 在快手的实践

摘要:本文整理自快手数据架构工程师张芒,阿里云工程师刘大龙,在 Flink Forward Asia 2022 生产实践专场的分享。本篇内容主要分为四个部分: Flink 流批一体引擎 Flink Batch 生产实践 核心优化解读 未来规划 点击查看原文视频…

走进人工智能| Computer Vision 数字化时代的视觉启示录

前言: 计算机视觉是通过模仿人类视觉系统的工作原理,使计算机能够感知、理解和解释图像和视频的能力。 文章目录 序言背景适用领域技术支持应用领域程序员如何学总结 序言 计算机视觉是人工智能领域的一个重要分支,它涉及使计算机能够“看”…

靶场的安装

sqli-lab 1.将安装包解压放到WWW目录下 2.修改 db-creds.inc文件里面的数据库的用户名密码为自己的用户名密码 路径:D:\phpStudy_64\phpstudy_pro\WWW\sqli-labs-master\sql-connections\db-creds.inc 3. 更改php版本位5.9版本,不然会报错 4.安装数…

MFC学习之2048小游戏程序源码

2048游戏的开发原理相对简单,它基于一个4x4的方格,通过控制数字方块的移动来合成相同的数字方块,并生成新的数字方块。 具体实现过程如下: 确定需求:首先需要明确游戏的功能需求,如产生随机数字方块、控制…

MYSQL执行一条SELECT语句的具体流程

昨天CSDN突然抽风 我一个ctrlz把整篇文章给撤掉了还不能复原 直接心态崩了不想写了 不过这部分果然还是很重要,还是写出来吧 流程图 这里面总共有两层结构Server层 储存引擎 Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包…

WebSocket理解

WebSocket理解 WebSocket定义与HTTP关系相同点:不同点:联系总体过程 HTTP问题长轮询Ajax轮询 WebSocket特点 WebSocket 定义 本质上是TCP的协议 持久化的协议 实现了浏览器和服务器的全双工通信,能更好的节省服务器资源和带宽 与HTTP关系 相同点: 基于…

接口测试 react+unittest+flask 接口自动化测试平台

目录 1 前言 2 框架 2-1 框架简介 2-2 框架介绍 2-3 框架结构 3 平台 3-1 平台组件图 1 新建用例 2 生成测试任务 3 执行并查看测试报告 3-2 用例管理 3-2-1 用例设计 3-3 任务管理 3-3-1 创建任务 3-3-2 执行任务 3-3-3 测试报告 3-3-4 邮件通知 1 前言 构建…