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.hqwc.cn/news/13336.html

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

相关文章

如何在Microsoft Excel中快速创建等比序列

Excel 中的填充句柄允许你通过拖动句柄自动填充行或列中的数据列表(数字或文本)。这可以在大型工作表中输入顺序数据时节省大量时间,并提高工作效率。 如果数据遵循某个模式或基于其他单元格中的数据,则可以使用“自动填充”功能…

尚无忧多城市共享自助台球室台球厅预约开灯开门小程序源码

1、定位功能:可定位附近是否有店 2、能通过关键字搜索现有的店铺 3、个性轮播图展示,系统公告消息提醒 4、个性化功能展示,智能排序,距离、价格排序 5、现有店铺清单展示,订房可查看房间单价,根据日期、…

【Leetcode】203. 移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, val0, nextNone): # self.val va…

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

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

2023精选接口测试面试题(建议收藏)

前言 接口测试是现在软件测试面试中的重点,基本上每家公司面试都会问到,学姐整理一下接口测试相关的面试题,顺便给出一些参考答案。 01 Q1:一个接口用例中有多个API接口,前后两个 API 之间如何进行参数传递的&#x…

[分块][STL][树]【Centroids】不一样的解法

前言 一道好题,也就花了我一个下午而已。 本人做法比较清奇,可以当做开阔思路参考,并不太建议实操(太难调了!)。 文章较啰嗦,谅解。 思路 众所周知,我并不太喜推式子&#xff0…

矩阵系统源码智能回复私信场景开发

抖音矩阵系统源码智能回复私信场景开发 一、要想开发私信功能开发者需要准备的工作 开发者需要先对接官方api接口以及去申请api提交审核,目前需要了解官方对开发者对该能力开发权限的功能符合开发需求,其次需要了解官方私信触达的规则 1.申请流程&…

Codeforces-Round-883-Div-3

Codeforces Round 883 (Div. 3) 链接:https://codeforces.com/contest/1846 A. Rudolph and Cut the Rope There are n n n nails driven into the wall, the i i i-th nail is driven a i a_i ai​ meters above the ground, one end of the b i b_i bi​ m…

Excel 合并单元格筛选时只出现首行

一、问题描述 如果对合并单元格直接筛选,只能筛选出第一个单元格的值 二、原因分析: Excel筛选单元格时,遇到不连续区域(即中间有空白单元格)会识别不到后续内容; 合并单元格后, 除首行外&…

十八、Jenkins(centos7)执行接口自动化测试脚本,飞书推送测试结果消息

十八、Jenkins(centos7)执行接口自动化测试脚本,飞书推送测试结果消息 1.创建 Freestyle project 项目 2. 输入git仓库地址 https://gitee.com/HP_mojin/pytest_allure_request_20220811 3. 增加构建步骤-Execute shell(Jenkins…

Go 语言数组

Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 相对于去声明 number0, number1, ..., number99 的变量,使用数组形式 numbers[0], num…

Kotlin~Composite组合模式

概念 能够帮助实现树状结构的模式。 主要特点 递归组合树状结构统一处理所有对象 角色介绍 Component: 组合接口Leaf: 叶子节点,无子节点Composite:枝节点,用来存储子部件 UML 代码实现 interface Organ {fun personCount():Int } cla…