mySQL数据库练习题
程序员文章站
2022-09-05 14:01:19
1. 分别创建mydb1和mydb2数据库 字符集第一个是utf8第二个是gbk;2. 查询所有数据库检查是否创建成功3. 分别查询两个数据库的字符集 检查是否成功4. 先使用mydb1再使用mydb25. 删除两个数据库create database mydb1 character set utf8;create database mydb2 character set gbk;show databases;show create database mydb1;sh....
1. 分别创建mydb1和mydb2数据库 字符集第一个是utf8第二个是gbk;
2. 查询所有数据库检查是否创建成功
3. 分别查询两个数据库的字符集 检查是否成功
4. 先使用mydb1再使用mydb2
5. 删除两个数据库
create database mydb1 character set utf8;
create database mydb2 character set gbk;
show databases;
show create database mydb1;
show create database mydb2;
use mydb1;
use mydb2;
drop database mydb1;
drop database mydb2;
1. 创建数据库mydb2 并使用 如果mydb2存在 删除掉 重新创建
2. 在mydb2数据库里面创建员工表emp 字段有name 字符集为utf8
3. 添加age字段在最后面
4. 添加id字段在最前面
5. 添加gender字段在name字段后面
6. 修改gender性别为sal工资
7. 删除age字段
8. 修改表名为t_emp
9. 删除t_emp
10. 删除数据库
create database mydb2;
use mydb2;
create table emp(name varchar(50))charset=utf8;
alter table emp add age int;
alter table emp add id varchar(50) first;
alter table emp add gender varchar(5) after name;
alter table emp change gender sal int;
alter table emp drop age;
rename table emp to t_emp;
drop table t_emp;
drop database mydb2;
1. 创建mydb4数据库 字符集utf8 并使用
2. 创建hero表 字段:id,name, type varchar(10)
3. 插入以下数据: (1, '李白', '刺客') , (2, '诸葛亮', '法师'), (3, '刘备', '战士'),(4, '孙尚香', '射手'),(5, '关羽', '战士'), (6, '刘禅', '辅助');
4. 修改李白的类型为诗人
5. 给表添加money字段
6. 修改id小于5 的money为6888
7. 修改诗人为打野
8. 修改刘禅的名字为阿斗 价格为50
9. 删除id大于5的数据
10. 修改所有英雄的价格为13888
11. 修改表名为heros
12. 删除money字段
13. 删除所有数据
14. 删除表
15. 删除数据库
create database mydb4 character set utf8;
use mydb4;
create table hero(id int ,name varchar(10),type varchar(10));
insert into hero values(1, '李白', '刺客') , (2, '诸葛亮', '法师'), (3, '刘备', '战士'),(4, '孙尚香', '射手'),(5, '关羽', '战士'), (6, '刘禅', '辅助');
update hero set type='诗人' where name='李白';
alter table hero add money int;
update hero set money=6888 where id<5;
update hero set type='打野' where type='诗人';
update hero set name='阿斗',money=50 where name='刘禅';
delete from hero where id>5;
update hero set money=13888;
rename table hero to heros;
alter table heros drop money;
delete from heros;
drop table heros;
drop database mydb4;
创建数据库mydb2 字符集utf8 并使用
create database mydb2 character set utf8;
use mydb2;
在数据库中创建员工表emp 字段:id,name,sal,deptId(部门id) 字符集utf8
create table emp (id int,name varchar(50),sal int,deptId int)charset=utf8;
创建部门表dept 字段:id,name,loc(部门地址) 字符集utf8
create table dept(id int,name varchar(50),loc varchar(50))charset=utf8;
部门表插入以下数据: 1 神仙部 天庭 2 妖怪部 盘丝洞
insert into dept values(1,'神仙部','天庭'),(2,'妖怪部','盘丝洞');
员工表插入一下数据: 1 悟空 5000 1 2 八戒 2000 1
3 蜘蛛精 8000 2 4 白骨精 9000 2
insert into emp values(1,'悟空',5000,1),(2,'八戒',2000,1),(3,'蜘蛛精',8000,2),(4,'白骨精',9000,2);
查询工资6000以下的员工姓名和工资
select name,sal from emp where sal<6000;
修改神仙部的名字为取经部 update dept set name='取经部' where name='神仙部';
给员工添加奖金comm字段 alter table emp add comm int;
修改员工表中部门id为1的 奖金为500
update emp set comm=500 where deptId=1;
把取经部的地址改成五台山
update dept set loc='五台山' where id=1;
删除两个表 drop table emp ; drop table dept;
查询有上级领导并且是3号部门的员工信息
select * from emp where mgr is not null and deptno=3;
查询2号部门工资在1000到2000之间的员工姓名 工资和部门编号
select ename,sal,deptno from emp
where deptno=2 and sal between 1000 and 2000;
查询1号部门工资为800和1600的员工信息
select * from emp where deptno=1 and sal in(800,1600);
查询1号和2号部门工资高于2000的员工信息
select * from emp where deptno in(1,2) and sal>2000;
查询员工表中工资高于2000的员工姓名和工资,按照工资升序排序,查询第二页的2条数据(每页2条)
select ename,sal from emp where sal>2000 order by sal limit 2,2;
查询和销售相关的工作的工资总和
select sum(sal) from emp where job like '%销售%';
查询程序员人数 select count(*) from emp where job='程序员';
查询1号部门中有领导的员工中的最高工资
select max(sal) from emp where deptno=1 and mgr is not null;
查询2号部门的最高工资和最低工资 起别名
select max(sal) 最高,min(sal) 最低 from emp where deptno=2;
查询1号部门里面名字中包含空字的员工姓名
select ename from emp where deptno=1 and ename like '%空%';
查询每个部门工资高于1500块钱的员工人数
select deptno,count(*) from emp where sal>1500 group by deptno;
查询每个部门的工资总和 按照工资总和升序排序
select deptno,sum(sal) from emp group by deptno order by sum(sal);
select deptno,sum(sal) s from emp group by deptno order by s;
查询1号和3号部门的最高工资
select deptno,max(sal) from emp where deptno in(1,3) group by deptno;
查询人数最多部门编号和人数
select deptno,count(*) c from emp
group by deptno order by c desc limit 0,1;
查询每种职业的工资总和不包含程序员
select job,sum(sal) from emp where job!='程序员' group by job;
1. 查询没有上级领导的员工编号empno,姓名,工资
2. 查询有奖金的员工姓名和奖金
3. 查询名字中包含精的员工姓名和工资
4. 查询名字中第二个字是八的员工信息
5. 查询1号部门工资大于2000的员工信息
6. 查询2号部门或者工资低于1500的员工信息
7. 查询工资为3000,1500,5000的员工信息按照工资升序排序
8. 查询3号部门的工资总和
9. 查询每个部门工资大于1000的员工人数,按照人数升序排序
10. 查询每种工作中有领导的员工人数按照人数降序排序
11. 查询所有员工信息,按照部门编号升序排序,如果部门编号一致则工资降序
12. 查询有领导的员工,每个部门的编号和最高工资
13. 查询有领导的员工,按照工资升序排序,第3页的2条数据
14. 查询员工表中工资高于2000的员工姓名和工资,按照工资升序排序,查询第二页的2条数据
15. 查询和销售相关的工作的工资总和
16. 查询程序员人数
17. 查询1号部门中有领导的员工中的最高工资
18. 查询2号部门的最高工资和最低工资 起别名
19. 查询1号部门里面名字中包含空字的员工姓名
20. 查询每个部门工资低于2000的人数
select empno,ename,sal from emp where mgr is null;
select ename,comm from emp where comm>0;
select ename,sal from emp where ename like"%精%";
select *from emp where ename like"_八%";
select *from emp where deptno=1 and sal>2000;
select *from emp where deptno=2 or sal<1500;
select *from emp where sal in(3000,1500,5000) order by sal;
select deptno,sum(sal) from emp where deptno=3;
select deptno,count(*) c from emp where sal>1000 group by deptno order by c;
select deptno,count(*) c from emp where mgr is not null group by job order by c;
select *from emp group by deptno order by deptno,sal desc;
select *from emp order by deptno,sal desc;
select deptno,max(sal) from emp where mgr is not null group by deptno;
select *from emp where mgr is not null order by sal limit 4,2;
select ename,sal from emp where sal>2000 order by sal limit 2,2;
select sum(sal) from emp where job like "%销售%";
select count(*) from emp where job="程序员";
select max(sal) from emp where deptno=1 and mgr is not null;
select max(sal) 最高,min(sal) 最低 from emp where deptno=2;
select ename from emp where deptno=1 and ename like "%空%";
select deptno,count(*) from emp where sal<2000 group by deptno;
select *from emp;
本文地址:https://blog.csdn.net/Theshy08/article/details/108986317
上一篇: oracle查看密码过期策略及修改
下一篇: android控件实现单击拖动效果