MySQL---多表等级查询综合练习

这篇具有很好参考价值的文章主要介绍了MySQL---多表等级查询综合练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建emp表

CREATE TABLE emp(

empno INT(4) NOT NULL COMMENT '员工编号',

ename VARCHAR(10) COMMENT '员工名字',

job VARCHAR(10) COMMENT '职位',

mgr INT(4) COMMENT '上司',

hiredate DATE COMMENT '入职时间',

sal INT(7) COMMENT '基本工资',

comm INT(7) COMMENT '补贴',

deptno INT(2) COMMENT '所属部门编号'

);

emp表添加主键

mysql> alter table emp add primary key(empno);     

Query OK, 0 rows affected (0.01 sec)               

Records: 0  Duplicates: 0  Warnings: 0 

emp表添加外键约束    

在MySQL中,可以使用alter  table 语句来添加外键约束。以下是基本的语法:

ALTER TABLE table_name
ADD FOREIGN KEY (column_name) REFERENCES other_table(other_column);
在这个语句中:

  • table_name是你想要添加外键的表的名称。
  • column_name是你想要设置为外键的列的名称。
  • other_table是包含外键引用的表的名称。
  • other_column是在other_table中的列的名称。

 ALTER TABLE emp ADD CONSTRAINT f_ed_key  FOREIGN KEY (deptno)   REFERENCES dept(deptno);

emp表中插入数据

INSERT INTO `emp` VALUES('7369','张倩','办事员','7902','2002-12-17','820',NULL,'20');

INSERT INTO `emp` VALUES('7499','刘博','售货员','7698','1992-02-20','1900','300','30');

INSERT INTO `emp` VALUES('7521','李兴','售货员','7698','1995-07-22','1250','500','30');

INSERT INTO `emp` VALUES('7566','李雷','人事部长','7839','1991-04-02','975',NULL,'20');

INSERT INTO `emp` VALUES('7654','刘浩','售货员','7698','1991-09-28','1250','1400','30');

INSERT INTO `emp` VALUES('7698','刘涛','销售部长','7839','1997-05-01','2850',NULL,'30');

INSERT INTO `emp` VALUES('7782','华仔','人事部长','7839','1995-06-09','2450',NULL,'10');

INSERT INTO `emp` VALUES('7788','张飞','人事专员','7566','1998-04-19','3000',NULL,'20');

INSERT INTO `emp` VALUES('7839','马晓云','董事长',NULL,'1991-11-17','5000',NULL,'10');

INSERT INTO `emp` VALUES('7844','马琪','售货员','7698','1996-09-08','1500','0','30');

INSERT INTO `emp` VALUES('7876','李涵','办事员','7788','1997-05-23','1100',NULL,'20');

INSERT INTO `emp` VALUES('7900','李小涵','销售员','7698','1993-2-13','950',NULL,'30');

INSERT INTO `emp` VALUES('7902','张三','人事组长','7566','1992-10-08','3000',NULL,'20');

INSERT INTO `emp` VALUES('7934','张三丰','人事长','7782','1997-06-23','1300',NULL,'10');

查询emp表的内容

mysql> select * from emp;

MySQL---多表等级查询综合练习,mysql,数据库

创建salgrade表

CREATE TABLE salgrade(

grade INT (10) COMMENT '工资等级',

losal INT (10) COMMENT '最低限额',

hisal INT (10) COMMENT '最高限额'

);

salgrade表中插入数据

INSERT INTO salgrade (grade, losal, hisal)VALUES (1, 700, 1200);

INSERT INTO salgrade (grade, losal, hisal)VALUES (2, 1201, 1400);

INSERT INTO salgrade (grade, losal, hisal)VALUES (3, 1401, 2000);

INSERT INTO salgrade (grade, losal, hisal)VALUES (4, 2001, 3000);

INSERT INTO salgrade (grade, losal, hisal)VALUES (5, 3001, 9999);

查询 salgrade 表内容

mysql> select * from salgrade;  

MySQL---多表等级查询综合练习,mysql,数据库

1.查询每个工资等级各有多少员工

在进行 join  操作时,可以使用 where 子句来添加额外的过滤条件,或者使用group by 、having 和order by 子句来进行数据分组和排序。

mysql> select grade 等级,count(*) 员工人数 from emp e join salgrade s

where e.sal>=losal and e.sal <=hisal group by grade; 

MySQL---多表等级查询综合练习,mysql,数据库

 2.查询部门中(所有人)的平均工资等级

join salgrade s on e.sal between s.losal and s.hisal: 这部分是连接 emp 表和 salgrade 表。连接条件是 emp表的sal字段值在 salgrade losal hisal 字段值之间。

mysql> select e.deptno 部门编号, avg(grade) 平均工资等级 from emp e  join salgrade s on e.sal between s.losal and s.hisal group by e.deptno;

MySQL---多表等级查询综合练习,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-816479.html

到了这里,关于MySQL---多表等级查询综合练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL数据库 | 第十三篇】多表查询

    多表查询是指在一个SQL语句中使用多个表进行数据查询和操作。多表查询可以对数据表之间的关系进行查询,例如可以通过连接多个表来获取更完整的数据信息。关于单表查询我们也介绍过,已经整理成文章发布:【MySQL数据库 | 第九篇】DQL操作_我是一盘牛肉的博客-CSDN博客

    2024年02月08日
    浏览(41)
  • MySQL数据库基础(三):多表查询,子查询,开窗函数

    表与表之间的关系 在SQL语句中,数据表与数据表之间,如果存在关系,一般一共有3种情况: ① 一对一关系(高级) 比如有A、B两张表,A表中的每一条数据,在B表中有一条唯一的数据与之对应。 用户表user user_id(用户编号) 账号username 密码password 001 admin admin888 002 itheima

    2024年02月12日
    浏览(34)
  • ⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 多表关系 : 一对一 :在 任意一方 加入外键,关联另一方的主键,并设置外键为唯一(UNIQUE)。 一对多(

    2024年02月05日
    浏览(38)
  • mysql多表查询练习

    两个表如图所示 1、查询每个部门的所属员工 根据表中展现的情况,员工表里面是没有人事部的,如果我们使用内连接就看不出具体的情况,人事部会被直接屏蔽掉 这个时候应该使用左连接,将人事部的情况体现出来 2、查询研发部门的所属员工 3、查询研发部和销售部的所

    2024年02月13日
    浏览(37)
  • 【从删库到跑路】MySQL数据库的查询(单表查询,多表查询,内外连接,联合查询,子查询)

    🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 在项目开发中,在进行数据库表结构设计时,会根据业务需求以及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联

    2024年02月10日
    浏览(36)
  • MySQL多表关联查询练习题

    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) , grad

    2024年01月17日
    浏览(34)
  • 数据库多表查询练习题

    二、多表查询 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_

    2024年01月17日
    浏览(48)
  • 【MYSQL】聚合函数和单表/多表查询练习、子查询、内外连接

    目录 1.聚合函数 1.1.group by子句 1.2.having语句 2.单表查询  2.2单表查询 3.多表查询  3.2.子查询 5.内链接 6.外连接 函数 说明 count 返回查询到的数据的数量 sum 返回查询到的数据的总和 avg 返回查询到的数据的平均值 max 返回查询到的数据的最大值 min 返回查询到的数据的最小值

    2024年02月04日
    浏览(34)
  • 【JaveWeb教程】(22) MySQL数据库开发之多表查询:内连接、外连接、子查询 详细代码示例讲解(最全面)

    1.1.1 数据准备 SQL脚本: 1.1.2 介绍 多表查询:查询时从多张表中获取所需数据 单表查询的SQL语句:select 字段列表 from 表名; 那么要执行多表查询,只需要使用逗号分隔多张表即可,如: select 字段列表 from 表1, 表2; 查询用户表和部门表中的数据: 此时,我们看到查询结果中包

    2024年01月22日
    浏览(44)
  • 数据库——DAY4(练习-在表中查找数据-多表查询)

    一、实验要求(多表查询) 素材: 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

    2024年01月18日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包