MySQL习题2

这篇博客介绍了MySQL数据库的一系列操作,包括创建student表并进行数据插入、修改和删除。同时,详细展示了emp表的查询实践,如查询所有员工信息、特定条件的员工信息,以及涉及工资、工龄和部门平均工资的复杂查询。此外,还涵盖了基于日期的查询条件,如月底前两天入职的员工。

1、实现以下表的操作
1)创建student表,要求如下:

字段类型长度备注
sidint主键,自增
snamevarchar20不为空
ageint
create table student(sid int primary key auto_increment,
sname varchar(20) not null,
age int);

2)向该表插入一条数据:

编号姓名年龄
1张三20
insert into student values(1,"张三”,20);

3)再次向该表插入数据:

编号姓名年龄
2李四
insert into student values(2,"李四");

4)批量向该表插入三条数据:

编号姓名年龄
3王五43
4赵六34
5郑七30
insert into student values(3,"王五",43),(4,"赵六",34),(5,"郑七",30);

5)修改张三的年龄为23:

update student set age =23 where sname = "张三";

6)修改编号为2的学生年龄为25:

update student set age = 25 where sid = 2;

7)删除id为5的用户信息:

delete from student where sid = 5;

2、实现以下表的查询
1)在emp表中,查询所有的员工信息。

Select * from emp;

2)在emp表中,查询所有员工的员工编号,员工姓名。

Select empno,ename from emp;

3)在emp表中,查询所有工龄大于35年的员工信息。

Select * from emp where now() > date_add(hiredate, interval 35 year);

4)在emp表中,查询员工工资在2000到3000的员工信息。

Select * from emp where sal>=2000 and sal<=3000;

5)在emp表中,为所有奖金<100的员工将奖金提升100元。

Select *,ifnull(comm,0)+100 as comm1 from emp where comm=0 or comm is null;

6)在emp表中,查询所有的职位信息,不能有重复。

Select distinct job from emp;

7)在emp表中,查询所有姓名中包含S的员工信息。

Select * from emp where ename like '%s%';

8)在emp表中,查询所有员工中工资最低的三个员工的信息。

Select * from emp order by sal asc limit 3;

9)在emp表中,查询30号部门的平均工资。

SELECT AVG(sal) from emp WHERE deptno=30;

10)在emp表中,查询平均工资大于2000的部门编号和平均工资。

SELECT AVG(sal) avg1,deptno from emp
GROUP BY deptno
HAVING avg1>2000;

1)在emp表中,查询超过1000元的各个部门的部门编号和平均工资。

SELECT deptno, AVG(sal) avg1 from emp where sal>1000
GROUP BY deptno;

12)在emp表中, 查询在该月月底前两天入职的员工信息。

select * from emp where date_add(hiredate, interval 2 day) = last_day(hiredate) ;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值