下面是 mysql 的一些语句, 同志们
# 1.建表
create table emp
(
empno char(4), # 员工序号
ename varchar(10), # 姓名
job varchar(10), # 职位
mgr char(4), # 上级序号
hiredate date, # 入职日期
sale decimal(7, 2), # 工资
COMM decimal(7, 2), # 奖金
deptno char(2) # 部门编号
);
小编建了个这样的表
mgr 指的是她上级的员工编号 COMM是奖金 deptno是部门编号
下面是一些查询语句:
# 1.查询 # 查找 表中所有信息 select * from emp; # 2 # 查找 一个叫 "山新" 的员工 select ename, job from emp where ename = '山新'; # 3 # 查找 一个叫 "山新" 的员工 以及一个叫 "猫头鹰亲王" 的员工 select ename, job from emp where ename = '山新' or ename = '猫头鹰亲王';
# 1 # 查找 序号在 1003到1010之间的 员工 select * from emp where empno between 1003 and 1010;
# 2 # 查找 所有没有奖金的员工 select * from emp where COMM is null;# 3 # 计算 所有员工的工资加奖金 并输出 # null 与任何数值相加都为 null,需要 ifnull()函数来处理 select ename, sale + ifnull(COMM, 0) from emp;
# 4 # 通过 表达式计算出来的列, 列名是表达式,可以用 as() 给列起别名 select ename, sale + ifnull(COMM, 0) as 'salary' from emp;
# 1 模糊查询 # 查找 所有姓'刘'的员工 select * from emp where ename like '刘%';
# 2 # 查找 都有哪些职位 # 使用 distinct可以去掉 相同的职位 select distinct job from emp;
# 3 排序 # 查找 所有员工的工资,按照 由低到高排序 select sale from emp order by sale; # 由高到低 在最后加个 desc 就可以了
# 1 # 查看 所有员工职位 # distinct可以去除 相同的职位 select distinct job from emp; # 2 求平均 # 求一下平均工资 select avg(sale) from emp; # 3 求和 # 数一下一共有多少人 select count(*) from emp;
# 1 # 找出所有的文员 select count(*) from emp where job = '文员';# 2 # 从 第5行开始 查10条员工信息 select * from emp limit 4,10;
# 1 分组查询
# 按照工作分组 计算 每个职位的平均工资
select distinct job, avg(sale) from emp group by job;# 2
# 计算每个部门的人数
select deptno ,count(*) from emp group by deptno;# 3
# 计算每个部门中工资大于 30000的人数
select deptno,count(*) from emp where sale>=30000 group by deptno;
# 1
# 展示 所有工资和 大于100000的部门
select deptno, sum(sale) from emp group by deptno having sum(sale) >= 30000;# 2
# 将员工姓名和职位 放在同一列中展示
select concat(ename,'(',job,')') from emp;# 3
# 查找所有2021年10月前 入职的员工
select * from emp where year(hiredate) < 2021 and month(hiredate) < 10;
THE END (σ´∀`)σ