欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用sql语句在emp员工表中实现各种操作

程序员文章站 2022-03-07 11:01:06
使用sql语句在emp员工表中实现各种操作emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号)工资 = 薪金 + 佣金在emp 表中完成如下练习:1、在emp表中查询出所有记录的姓名、部门编号、薪水,并且列名要显示为中文。2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。3、在emp表中查询出comm字段为空值的记录。4、查询出emp表中含有几个部门的记录。(...

使用sql语句在emp员工表中实现各种操作

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号)
工资 = 薪金 + 佣金
在emp 表中完成如下练习:
1、 在emp表中查询出所有记录的姓名、部门编号、薪水,并且列名要显示为中文。
2、 在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。
3、 在emp表中查询出comm字段为空值的记录。
4、 查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)
5、 在emp表中查询出部门编号为10或20的记录(要求使用IN关键字)
6、 在emp表中查询出姓名的第二个字母为A的记录。
7、 查询出emp表中总共有多少条记录。
8、 查询emp表中出每个部门的部门代码、薪水之和、平均薪水。

具体实现如下:

#创建数据库
CREATE DATABASE test1;
#创建表
CREATE TABLE emp;
#使用数据库
USE test1;
#创建列名
CREATE TABLE emp (
  empno int(11) NOT NULL AUTO_INCREMENT,
  ename varchar(20),
  job varchar(30),
  mgr int(11),
  hiredate varchar(20),
  sal double(10,2),
  comm double(10,2),
  deptno int(11),
  PRIMARY KEY (empno)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
# 赋值
Insert into emp values 
(1,'张三','经理',10,'2010/10/05',10000.00,5000.00,10),
(2,'李四','秘书',8,'2012/02/10',8000.00,4000.00,30),
(3,'may','员工',4,'2015/03/24',5100.00,2600.00,10),
(4,'马六','员工',4,'2015/08/16',5000.00,NULL,40),
(5,'孙七','经理',10,'2011/03/01',12000.00,5000.00,30),
(6,'赵八','秘书',8,'2013/06/18',8000.00,3000.00,20),
(7,'钱九','员工',4,'2015/02/29',5000.00,3500.00,20),
(8,'周十','员工',4,'2016/03/16',5000.00,NULL,30);

使用sql语句在emp员工表中实现各种操作
问题解答:

# 1.在emp表中查询出所有记录的姓名、部门编号、薪水,并且列名要显示为中文。
SELECT *FROM emp;
SELECT ename AS '员工姓名',IFNULL(sal,0)+IFNULL(comm,0) AS '薪金'  ,deptno AS '所属部门编号' FROM emp;
# 2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。
SELECT *FROM emp ORDER BY (IFNULL(sal,0)+IFNULL(comm,0))>1500 DESC;
# 3、在emp表中查询出comm字段为空值的记录。
SELECT *FROM emp WHERE comm IS NULL;
# 4、查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)
SELECT COUNT(DISTINCT deptno)AS '部门总数' FROM emp;
# 5、在emp表中查询出部门编号为10或20的记录(要求使用IN关键字)
SELECT *FROM emp WHERE deptno IN(10,20);
# 6、在emp表中查询出姓名的第二个字母为A的记录。
SELECT *FROM emp WHERE ename LIKE "_A%";
# 7、查询出emp表中总共有多少条记录。
SELECT COUNT(*)AS '总记录数' FROM emp; 
# 8、查询emp表中出每个部门的部门代码、薪水之和、平均薪水。
SELECT AVG(sal+IFNULL(comm,0))AS '平均薪水',SUM(sal+IFNULL(comm,0))AS '薪水之和',deptno AS '部门编号' FROM emp GROUP BY deptno;


本文地址:https://blog.csdn.net/CSDN9825/article/details/110666852