1、实现以下表的操作
1)创建student表,要求如下:
| 字段 | 类型 | 长度 | 备注 |
|---|---|---|---|
| sid | int | 主键,自增 | |
| sname | varchar | 20 | 不为空 |
| age | int |
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) ;
这篇博客介绍了MySQL数据库的一系列操作,包括创建student表并进行数据插入、修改和删除。同时,详细展示了emp表的查询实践,如查询所有员工信息、特定条件的员工信息,以及涉及工资、工龄和部门平均工资的复杂查询。此外,还涵盖了基于日期的查询条件,如月底前两天入职的员工。
757

被折叠的 条评论
为什么被折叠?



