MySQL项目练习2——员工信息表项目

2023-10-30

目录

项目条件

设计表

数据插入

查询操作



项目条件

dept表(部门)

                                dept部门表结构

字段

类型

描述

deptno

mediumint(8)

部门编号 PK

dname

varchar(20)

 部门名称 unique

loc

varchar(13)

部门位置

emp(员工)

                                  emp表结构

字段

类型

描述

empno

mediumint(9)

员工编号 PK

ename

varchar(20)

员工姓名 not null

job

varchar(9)

员工职位

mgr

mediumint(9)

领导编号 FK

hiredate

date

雇佣日期

sal

decimal(7,2)

员工工资

comm

decimal(7,2)

员工奖金

deptno

mediumint(9)

员工所在部门 FK

 

 

 

 

 

 

 

 

 

 

salgrade(工资等级表)

 

                            salgrade工资等级表结构

字段

类型

描述

grade

mediumint(8)

工资等级

losal

decimal(17,2)

最低工资

hisal

decimal(17,2)

最高工资

 

 

 

bonus奖金表

                          bonus表(奖金表) 表结构

字段

类型

描述           

ENAME

VARCHAR(10)

员工的名称

JOB

VARCHAR(9)

员工的工作

SAL

decimal(17,2)

员工的薪水

COMM

decimal(17,2)

员工的奖金

 

 

 

 

 

 


设计表

dept部门表

create table dept(
	deptno mediumint(8) primary key,
	dname varchar(20) unique,
	loc varchar(13)
);

emp员工表

reate table emp(
	empno mediumint(9) primary key,
	ename varchar(20) not null,
	job varchar(9),
	mgr mediumint(9),
	hiredate date,
	sal decimal(7,2),
	comm decimal(7,2),
	deptno mediumint(9),

	constraint fk_deptno foreign key(deptno) references dept(deptno) on delete cascade on update cascade	
);

注:先插入数据后,再建立此自连外键

alter table emp add constraint fk_mgr foreign key(mgr) references emp(empno) on delete cascade on update cascade;

salgrade工资等级表

create table salgrade(
	grade mediumint(8) ,
	losal decimal(17,2),
	hisal decimal(17,2)
);

bonus奖金表

create table bouns(
	ename varchar(10),
	job varchar(9),
	sal decimal(17,2),
	comm decimal(17,2)
);

数据插入

部门表数据

insert into DEPT (deptno, dname, loc)
values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT (deptno, dname, loc)
values (20, 'RESEARCH', 'DALLAS');
insert into DEPT (deptno, dname, loc)
values (30, 'SALES', 'CHICAGO');
insert into DEPT (deptno, dname, loc)
values (40, 'OPERATIONS', 'BOSTON');	

员工表数据

insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, null, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, null, 10);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7839, 'KING', 'PRESIDENT', null, '1981-11-17', 5000, null, 10);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, null, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, null, 10);

工资级别表数据

INSERT INTO salgrade VALUES (1,700,1200);
INSERT INTO salgrade VALUES (2,1201,1400);
INSERT INTO salgrade VALUES (3,1401,2000);
INSERT INTO salgrade VALUES (4,2001,3000);


查询操作

  • 查询所有的职位
select distinct job from emp;    //distinct去重
  • 查询emp表中每个员工的姓名和年薪
select ename,(sal+ifnull(comm,0))*12 as salary from emp;
  • 查询工资高于1500的所有员工的信息
select * from emp where sal>1500;
  • 查询工资高于(等于)1500并且低于(等于)3000的所有员工信息
//方式一
select * from emp where sal between 1500 and 3000;
//方式二
select * from emp where sal>=1500 and  sal<=3000;
  • 查询每个月可以获得奖金的员工信息
select * from emp where comm is not null and comm!=0;
  • 查询每个月没有奖金的员工信息 
select * from emp where comm is null or comm=0;
  • 查询工资高于1500,同时可以获得奖金的员工信息
select * from emp where sal>1500 and comm is not null and comm!=0;
  • 查询工资不高于1500,同时不可以获得奖金的员工信息
select * from emp where sal<=1500 and comm is null;
  • 查询在1981年入职的员工信息
//方式一:
select * from emp where hiredate like '1981%';
//方式二:
select * from emp where hiredate between '1981-01-01' and '1981-12-1';
  • 查询员工为smith的信息
select * from emp where ename='smith';
  • 查询员工名字中带S的员工信息
select * from emp where ename like '%s%';
  • 查询员工姓名以l结尾的长度为2个字符的员工信息
select * from emp where ename like '_l';
  • 查询员工编号不等于7369的信息
//方式一
select * from emp where empno!=7369;
//方式二
select * from emp where empno<>7369;
  • 查询员工编号在7369,7788,7900的员工信息
方式一:
select * from emp where empno=7369 or empno=7788 or empno=7900;
方式二:
select * from emp where empno in(7369,7788,7900);
  • 查询出20部门的员工信息,查询出的信息按照工资由高到低排序,如果工资相同,按照入职日期由早到晚排序
select * from emp where deptno=20 order by sal desc,hiredate asc;

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL项目练习2——员工信息表项目 的相关文章

  • Hibernate 可以使用 MySQL 的“ON DUPLICATE KEY UPDATE”语法吗?

    MySQL 支持 INSERT ON DUPLICATE KEY UPDATE 语法允许您 盲目 插入数据库 并回退到更新现有记录 如果存在 当您想要快速事务隔离并且想要更新的值取决于数据库中已有的值时 这非常有用 作为一个人为的示例 假设
  • 如何在不超时的情况下解析大型 CSV 文件?

    我正在尝试解析 50 MB 的 csv 文件 文件本身很好 但我正在尝试解决所涉及的大量超时问题 每个设置上传明智 我可以轻松上传并重新打开文件 但浏览器超时后 我收到 500 内部错误 我的猜测是我可以将文件保存到服务器上 打开它并保留我
  • SQL统计高于和低于平均分的学生人数

    我在下面有一个示例表 我试图获取高于平均分数的学生人数和低于平均分数的学生人数 name subject classroom classarm session first term score first term grade std1 m
  • mysql语句中的*星号是什么意思?

    Ex mysql query SELECT FROM members WHERE id id 这意味着选择表中的所有列
  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • MySQL 全文搜索不适用于某些单词,例如“house”

    我已经在 3 个字段中的一小部分记录上设置了全文索引 也尝试了 3 个字段的组合 并得到了相同的结果 有些单词返回结果很好 但某些单词如 house 和 澳大利亚 不这样做 有趣的是 澳大利亚 和 家乡 这样做 这似乎是奇怪的行为 如果我添
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 当“修复表”查询在 mysql 中不起作用时该怎么办?

    我收到此错误 表的存储引擎不支持修复 当我尝试使用查询修复表时repair table tbl college master 表是 innodb 类型 但我不知道我收到此错误 See 手册 http dev mysql com doc re
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • MySQL Connector/C++ 库链接错误问题

    PROBLEM 好吧 我一直在尝试遵循 MySQL Forge Wiki 和其他一些网站上的示例代码 这些网站提供了有关如何获得简单数据库连接的教程 但由于某种原因 我的项目总是因链接错误而失败 我可以我自己不明白为什么或如何解决它 我仍在
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com

随机推荐

  • 网页基本常用标签

    一 标签 元素 1 表示网页的开始 2 网页的头部 3
  • Docker Hub

    Docker Hub是docker的中心仓库 Docker Hub里存储了公共的 Docker 镜像 并且提供服务来帮助你构建和管理你的 Docker 环境 Docker Hub和docker及其组件一起工作 Docker Hub会帮助你和
  • 石头扫地机器人离线了怎么办_关于激光头故障,石头扫地机器人无限次复活记!...

    关于激光头故障 石头扫地机器人无限次复活记 2019 08 17 19 15 41 61点赞 174收藏 82评论 小编注 此篇文章来自即可瓜分10万金币 周边好礼达标就有 邀新任务奖励无上限 点击查看活动详情 创作立场声明 本文记录的是个
  • 【Shell牛客刷题系列】SHELL17 将字段逆序输出文件的每行:巩固awk命令与学习反向列示文件内容的tac命令

    该系列是基于牛客Shell题库 针对具体题目进行查漏补缺 学习相应的命令 刷题链接 牛客题霸 Shell篇 该系列文章都放到专栏下 专栏链接为 专栏 Linux 欢迎关注专栏 本文知识预告 首先学习了反向列示文件内容的命令 tac 这个命令
  • cocos2dx lua 读取json数据

    这里读取的数据是从excel转成json格式的数据 local sData cc FileUtils getInstance getStringFromFile filename local var json decode sData if
  • 基于STM32F103ZET6的RX8025SA时钟电路设计

    1 现在网上大多例程都是关于RX8025T的 带温度补偿的时钟芯片手册 RX8025SA与RX8025T的区别 RX8025T内置高稳定性32 768kHz的DTCXO 数字温度补偿晶体振荡器 可保证在全温度范围内的精度保持在 5ppm R
  • #program once 和 #ifndef

    program once 和 ifndef 在写小demo的时候 注意到vs中会自动生成 program once 看别人写的代码的时候见到比较多的反而是 ifndef define endif 从字面上看两种方式会产生相同的效果 避免同一
  • C语言--__attribute__((aligned(n)))

    include
  • 用户态和内核态的转换

    用户态切换到内核态的3种方式 a 系统调用 这是用户态进程主动要求切换到内核态的一种方式 用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作 比如前例中fork 实际上就是执行了一个创建新进程的系统调用 而系统调用的机制其核心还是
  • 网络打印机因IP地址变动导致脱机的解决方法

    PC版本win10 某一天因为种种原因导致网络打印机的IP变动了 那么我们在自己PC机上添加的打印机就无法使用了 来看作者是怎么解决的 假设目标IP由192 168 1 16改为192 168 2 195 打开我的打印机和扫面仪菜单
  • CSDN站外文章记录收藏

    序号 c opencv相关 1 OpenCV模板匹配算法详解 2 无参考图像质量评价算法Blind Image Quality Evaluation Using Perception Based Features 3 mtf calcula
  • SQLite 使用(针对Android)

    文章目录 1 SQLite 介绍 2 SQLite可视化工具 安装 3 SQLite的增删改查 3 1 SqliteOpenHelper 创建 库或表 3 2 SqliteOpenHelper 实现 增删改查 1 SQLite 介绍 SQL
  • HEVC编码结构:Slice和Tile

    1 Slice片段层 一幅图像可以被划分为一个或多个片或称为条带 Slice 每个片的数据编码都是独立的 如下图 一幅图像被划分为N个Slice Slice成条带形 在编码时 每一个Slice中的CTU按光栅扫描顺序进行编码 Slice头信
  • vue源码中值得学习的方法

    作者 chinamasters https segmentfault com a 1190000025157159 最近在深入研究vue源码 把学习过程中 看到的一些好玩的的函数方法收集起来做分享 希望对大家对深入学习js有所帮助 如果大家
  • Excel怎么求和?5大常用的Excel求和公式

    众所周知 Excel表格里可以运用很多函数来计算 将数据进行整理分析 运用函数是不可或缺的 特别是当我们的数据庞大时 人工计算是很浪费时间的 而且使用函数进行求和不仅仅是因为方便计算 还因为可以方便日后查询数据能够知道数据的来源 所以 Ex
  • MySQL数据库 - 数据库和表的基本操作(一)

    第1关 查看表结构与修改表名 查看数据表基本结构 语法规则为 desc 表名 describe可以查看表的字段信息 包括 字段名 字段数据类型 是否为主键 是否有默认值等 查看数据表详细结构 语法规则为 show create table表
  • 增益带宽积GBW

    增益带宽积GBW 增益带宽积是指放大电路在单位增益下的工作频率范围 通常用于描述放大器的高低频特性 增益带宽积越大表示放大器能够传输更高的频率信号而不降低增益 1 增益带宽积的概念 增益带宽积是指在放大器的这样一个频带内 其实际的电压增益值
  • javaweb-36:smbms用户管理分页OK

    3 获取角色操作 为了我们职责统一 可以把角色的操作单独放在一个包中 和POJO类对应 初始化sql INSERT INTO smbms smbms role roleCode roleName createBy creationDate
  • vscode运行打包vue项目内存溢出的报错和解决办法

    vscode运行打包vue项目内存溢出的报错和解决办法 最近在再弄一个旧项目的时候发现这个项目异常的大 内容涉及很多 导致我在运行的时候发生了内存的溢出 虽然不影响代码跑起来 但是他时不时保存的时候就断了就很烦 没办法 就去找各种办法来解决
  • MySQL项目练习2——员工信息表项目

    目录 项目条件 设计表 数据插入 查询操作 项目条件 dept表 部门 dept部门表结构 字段 类型 描述 deptno mediumint 8 部门编号 PK dname varchar 20 部门名称 unique loc varch