mysql 初级练习题
1.题目
第一题:
tb_user:
|
User_id |
User_name |
User_phone |
|
1 |
张三 |
13800138000 |
|
2 |
李四 |
13800138001 |
tb_customer:
|
Customer_id |
User_id |
Customer_name |
Company_name |
|
1 |
1 |
王先生 |
中国移动广州分公司 |
|
2 |
2 |
林先生 |
中通服建设有限公司 |
tb_project
|
Project_id |
Customer_id |
Project_name |
|
1 |
1 |
EOMS系统 |
|
2 |
2 |
ME2.0机务维修系统 |
根据以上三个表,要求输出:
|
Project_id |
User_name |
User_phone |
Customer_name |
Company_name |
Project_name |
|
1 |
张三 |
13800138000 |
王先生 |
中国移动广州分公司 |
EOMS系统 |
|
2 |
李四 |
13800138001 |
林先生 |
中通服建设有限公司 |
ME2.0机务维修系统 |
1.请按上表内容写出对应的sql语句?
2.表结构及数据
CREATE TABLE `tb_user` (
`id` int(11) DEFAULT NULL,
`user_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`user_phone` varchar(255) CHARACTER SET latin1 COLLATE latin1_german2_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `test`.`tb_user` (`id`, `user_name`, `user_phone`) VALUES ('', '张三', '');
INSERT INTO `test`.`tb_user` (`id`, `user_name`, `user_phone`) VALUES ('', '李四', ''); CREATE TABLE `tb_customer` (
`Customer_id` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
`Customer_name` varchar(255) DEFAULT NULL,
`Company_name` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `test`.`tb_customer` (`Customer_id`, `user_id`, `Customer_name`, `Company_name`) VALUES ('', '', '王先生', '中国移动广州分公司');
INSERT INTO `test`.`tb_customer` (`Customer_id`, `user_id`, `Customer_name`, `Company_name`) VALUES ('', '', '林先生', '中通服建设有限公司'); CREATE TABLE `tb_project` (
`Project_id` int(11) DEFAULT NULL,
`Customer_id` int(11) DEFAULT NULL,
`Project_name` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `test`.`tb_project` (`Project_id`, `Customer_id`, `Project_name`) VALUES ('', '', 'EOMS系统');
INSERT INTO `test`.`tb_project` (`Project_id`, `Customer_id`, `Project_name`) VALUES ('', '', 'ME2.0机务维修系统'); CREATE TABLE `tb_dept` (
`Dept_id` int(11) DEFAULT NULL,
`Dept_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`Dept_loc` varchar(255) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `test`.`tb_dept` (`Dept_id`, `Dept_name`, `Dept_loc`) VALUES ('', '教研部', '北京');
INSERT INTO `test`.`tb_dept` (`Dept_id`, `Dept_name`, `Dept_loc`) VALUES ('', 'IT部', '广州');
INSERT INTO `test`.`tb_dept` (`Dept_id`, `Dept_name`, `Dept_loc`) VALUES ('', '销售部', '深圳');
INSERT INTO `test`.`tb_dept` (`Dept_id`, `Dept_name`, `Dept_loc`) VALUES ('', '财务部', '深圳');
INSERT INTO `test`.`tb_dept` (`Dept_id`, `Dept_name`, `Dept_loc`) VALUES ('', '董事会', '上海');
INSERT INTO `test`.`tb_dept` (`Dept_id`, `Dept_name`, `Dept_loc`) VALUES ('', '行政部', '厦门'); CREATE TABLE `tb_emp` (
`Emp_id` int(11) DEFAULT NULL,
`Emp_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`Job` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`Manage` varchar(255) DEFAULT NULL,
`Sal` varchar(255) DEFAULT NULL,
`Comm` varchar(255) DEFAULT NULL,
`Dept_id` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '甘宁', '文员', '', '8000.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '刘备', '经理', '', '29750.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '关羽', '经理', '', '24500.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '张飞', 'Java工程师', '', '28500.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '诸葛亮', '经理', '', '30000.00', '14000.00', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '张无忌', '老师', '', '5000.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '张三丰', '董事长', 'Null', '58900.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '庞统', '经理', '', '30000.00', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '张三8', '文员', 'Null', '', 'Null', '');
INSERT INTO `test`.`tb_emp` (`Emp_id`, `Emp_name`, `Job`, `Manage`, `Sal`, `Comm`, `Dept_id`) VALUES ('', '张三7', '文员', 'Null', '', 'Null', '');
第二题:
tb_dept
|
Dept_id |
Dept_name |
Dept_loc |
|
10 |
教研部 |
北京 |
|
20 |
IT部 |
广州 |
|
30 |
销售部 |
深圳 |
|
40 |
财务部 |
深圳 |
|
50 |
董事会 |
上海 |
|
60 |
行政部 |
厦门 |
tb_emp
|
Emp_id |
Emp_name |
Job |
Manage |
Sal |
Comm |
Dept_id |
|
1001 |
甘宁 |
文员 |
1013 |
8000.00 |
Null |
20 |
|
1002 |
刘备 |
经理 |
1010 |
29750.00 |
Null |
20 |
|
1006 |
关羽 |
经理 |
1010 |
24500.00 |
Null |
30 |
|
1007 |
张飞 |
Java工程师 |
1008 |
28500.00 |
Null |
20 |
|
1008 |
诸葛亮 |
经理 |
1004 |
30000.00 |
14000.00 |
40 |
|
1009 |
张无忌 |
老师 |
1011 |
5000.00 |
Null |
10 |
|
1010 |
张三丰 |
董事长 |
Null |
58900.00 |
Null |
50 |
|
1011 |
庞统 |
经理 |
1010 |
30000.00 |
Null |
10 |
1、查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数?
2、列出薪金比关羽高的所有员工?
3、列出所有员工的姓名及其直接上级的姓名 ?
4、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门 ?
5、列出每个部门的员工数量、平均工资 ?
6、列出所有文员的姓名及其部门名称,部门的人数 ?
答案:
第一题:
请按上表内容写出对应的sql语句:
答题:
select
P.Project_id ,
U.User_name,U.User_phone,
c.Customer_name,c.Company_name,
p.Project_name
from tb_user u LEFT JOIN tb_customer c on u.id=c.user_id
LEFT JOIN tb_project p on c.customer_id= p.customer_id
; 第二题:
1、查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数
答题: select * from
(
select d.dept_id ,
d.dept_name,
d.dept_loc,
count(e.emp_id) pNum
from tb_dept d LEFT JOIN tb_emp e on d.dept_id=e.dept_id
group by d.dept_id
) t where t.pNum>=1 ; 2、列出薪金比关羽高的所有员工
答题:
select * from tb_emp
where sal>(
select e.sal from tb_emp e
where e.emp_name='关羽'); 3、列出所有员工的姓名及其直接上级的姓名
答题:
方法1:
select
# e.emp_id employeeId,
e.emp_name employee,
# e1.emp_id leaderId ,
e1.emp_name leader
from tb_emp e , tb_emp e1
where e.manage = e1.emp_id
;
方法2:
select
leader,
GROUP_CONCAT(employee) employee
from (
select
# e.emp_id employeeId,
e.emp_name employee,
e1.emp_id leaderId ,
e1.emp_name leader
from tb_emp e , tb_emp e1
where e.manage = e1.emp_id
) t
group by t.leaderId
; 4、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
答题:
select *
from tb_dept d LEFT JOIN tb_emp e on d.dept_id=e.dept_id ; 5、列出每个部门的员工数量、平均工资
答题:
select e.dept_id 部门,count(e.emp_id) 员工数量,
ROUND(sum(e.sal)/count(e.emp_id),2) 平均工资
from tb_emp e
group by e.dept_id ; 6、列出所有文员的姓名及其部门名称,部门的人数
答题: #列出所有文员的姓名及其部门名称
select e.emp_name,e.dept_id,d.dept_name
from tb_emp e ,tb_dept d
where e.dept_id=d.dept_id
and e.job='文员' #是文员所在部门下的部门人数,还是部门下文员的人数 ?
select e.dept_id,e.emp_name, d.dept_name,count(e.emp_id)
from tb_emp e ,tb_dept d
where e.dept_id=d.dept_id
and e.job='文员'
group by e.dept_id
mysql 初级练习题的更多相关文章
- 【Python全栈-后端开发】MySQL数据库-练习题
MySQL数据库-练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号 ...
- cogs——1578. 次小生成树初级练习题
1578. 次小生成树初级练习题 ☆ 输入文件:mst2.in 输出文件:mst2.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 求严格次小生成树 [输入格式 ...
- cogs P1578【模板】 次小生成树初级练习题
1578. 次小生成树初级练习题 ☆ 输入文件:mst2.in 输出文件:mst2.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 求严格次小生成树 [输入格式 ...
- MYSQL经典练习题,熟悉DQL
MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...
- MySQL经典练习题
表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...
- day41 mysql 学习 练习题 重要*****
MySQL 练习题[二1.表如下: 收获和注意点:***** #1 GROUP by 可以放到where s_id in ()条件局后边 GROUP BY s_id having 详见题12 #2 做 ...
- mysql 及练习题
if() 函数的用法 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false, mysql,'女','男') as sex fr ...
- MySQL--python关联MySQL、练习题
1.python关联MySQL pymysql: 安装:pip3 install pymysql 1.0:连接到数据库中 import pymysql conn = pymysql.connect( ...
- MySQL经典练习题及答案,常用SQL语句练习50题
表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...
随机推荐
- VMware空虚拟机通过网络安装系统时获取不到IP地址情况(基于Linux的DHCP服务器)
当虚拟机提示no DHCP or proxyDHCP offers were received时 1.dhcp服务配置错误(留意句尾分号“ :”) 2.dhcp服务未启动(用 systemctl s ...
- Xamarin.Forms之样式
使用XAML样式设置Xamarin.Forms应用的样式Xamarin.Forms应用程序的样式传统上是通过使用Style类将一组属性值分组到一个对象中来完成的,然后可以将其应用于多个视觉元素实例. ...
- 迁移模型问题,提示admin已存在
在部署的时候迁移文件的时候提示 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_i ...
- go中的字符串数值转化
#string到int int,err := strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, ...
- uni-app 事件以及事件绑定
事件修饰符stop的使用会阻止冒泡,但是同时绑定了一个非冒泡的事件,会导致该元素上的catchEventName失效! prevent可以直接干掉,因为uni-app里没有什么默认事件,比如submi ...
- markdown转html
今天临时要写接口文档,然后发现部门给的文档是markdown文件的,而接口文档是要html格式的,因此想直接把markdown转为html 这里我使用的是marked 首先初始化一个node项目 np ...
- 【Gamma】Scrum Meeting 5
目录 写在前面 进度情况 任务进度表 照片 写在前面 例会时间:6.1 22:45-23:00 例会地点:微信群语音通话 代码进度记录github在这里 临近期末,团队成员课程压力均较大,需要较多时间 ...
- [Beta]Scrum Meeting#3
github 本次会议项目由PM召开,时间为5月8日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 改进界面 改进界面 bh ...
- C++ 中的 inline 用法
1.引入 inline 关键字的原因 在 c/c++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数. 栈空间就是指放置程序的局部数 ...
- java和vue2.0
1 java中的el表达式${对象.属性}和vue中的双向数据绑定{{mode.xx}}感觉有点类似 2 java中 request.setAttribute("hots", l ...