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 初级练习题的更多相关文章

  1. 【Python全栈-后端开发】MySQL数据库-练习题

    MySQL数据库-练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号 ...

  2. cogs——1578. 次小生成树初级练习题

    1578. 次小生成树初级练习题 ☆   输入文件:mst2.in   输出文件:mst2.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 求严格次小生成树 [输入格式 ...

  3. cogs P1578【模板】 次小生成树初级练习题

    1578. 次小生成树初级练习题 ☆   输入文件:mst2.in   输出文件:mst2.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 求严格次小生成树 [输入格式 ...

  4. MYSQL经典练习题,熟悉DQL

    MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...

  5. MySQL经典练习题

    表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...

  6. day41 mysql 学习 练习题 重要*****

    MySQL 练习题[二1.表如下: 收获和注意点:***** #1 GROUP by 可以放到where s_id in ()条件局后边 GROUP BY s_id having 详见题12 #2 做 ...

  7. mysql 及练习题

    if() 函数的用法 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false, mysql,'女','男') as sex fr ...

  8. MySQL--python关联MySQL、练习题

    1.python关联MySQL pymysql: 安装:pip3 install pymysql 1.0:连接到数据库中 import pymysql conn = pymysql.connect( ...

  9. MySQL经典练习题及答案,常用SQL语句练习50题

    表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...

随机推荐

  1. Hibernate中对象的三种状态即save(),update(),saveOrUpdate()的使用【转】

    当new一个user的时候,是处于瞬时状态 当调用session.save(user)的时候,user对象会放到session里,此时处于持久状态 当提交事务的时候,user对象才会存到DB中 当调用 ...

  2. CF 900D Unusual Sequences

    题目链接 \(Description\) 给定\(x,y\),求有多少个数列满足\(gcd(a_i)=x且\sum a_i=y\).答案对\(10^9+7\)取模. \(1≤x,y≤10^9\) \( ...

  3. 洛谷 CF1153B Serval and Toy Bricks

    目录 题目 思路 \(Code\) 题目 CF1153B Serval and Toy Bricks 思路 自己也很懵的一道题(不知道自己怎么就对了)...只要对于所给的俯视图上值为\(1\)的位置输 ...

  4. [golang][gui]Hands On GUI Application Development in Go【在Go中动手进行GUI应用程序开发】读书笔记03-拒交“智商税”,解密“GUI”运行之道

    和老外的原文好像没多大联系了,哈哈哈,反正是读书笔记,下面的内容也是我读此书中的历程,也写进来吧.不过说实话,这框架的作者还挺对我脾气的,哈哈哈. 拒交“智商税”,解密“GUI”运行之道 我很忙 项目 ...

  5. 【Gamma】Scrum Meeting 2

    目录 写在前面 进度情况 任务进度表 Gamma阶段燃尽图 遇到的困难 照片 写在前面 例会时间:5.26 22:30-23:00 例会地点:微信群语音通话 代码进度记录github在这里 临近期末, ...

  6. Element + Vue I18n动态import加载国际化语言包翻译文件

    需求 项目为多页应用,包含产品a.b.c.d.e,每个产品都有自己的翻译文件.一次加载所有翻译文件是极度不合理的.于是考虑动态加载. 实现 参考官方文档:延迟加载翻译 项目结构 │ ├── dist ...

  7. cookie 设置报错 setcookie() expects parameter 3 to be integer, float given in...

    使用 setcookie 函数设置 cookie 报错,报错信息为: setcookie() expects parameter to be integer, float given in... 错误 ...

  8. scrapy爬虫案例:用MongoDB保存数据

    用Pymongo保存数据 爬取豆瓣电影top250movie.douban.com/top250的电影数据,并保存在MongoDB中. items.py class DoubanspiderItem( ...

  9. centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl

    centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bz ...

  10. 简单易用的录屏软件(保存为gif文件)

    LICEcap https://licecap.en.softonic.com/ Create animated GIFs from your desktop LICEcap is an origin ...