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. LeetCode 531. Lonely Pixel I

    原题链接在这里:https://leetcode.com/problems/lonely-pixel-i/ 题目: Given a picture consisting of black and wh ...

  2. SSFOJ P1453 子序列(一) 题解

    每日一题 day61 打卡 Analysis las数组表示的是最近一个为j的位置为是什么. dp数组的含义是以str[i]为结尾的子序列数量. 于是有状态转移方程: dp[las[i][j]]+=d ...

  3. 利用伪寄存器对MSVC++进行调试的介绍

    简介 让我们从我写这篇文章的原因开始.一天,一个同事让我帮他调试他遇到的问题.所以我看着他在输入代码,这时我注意到下面一行: int test = GetLastError(); 他这样做是因为他想知 ...

  4. Pandas模块 -- 数据类型转换,描述统计

    car=pd.read_csv(r'E:\Python\sec_cars.csv',sep=',').head(32) # print(car) print("数据集的类型:",t ...

  5. cogs 943. [東方S3] 铃仙•优昙华院•稻叶

    二次联通门 : cogs 943. [東方S3] 铃仙•优昙华院•稻叶 /* cogs 943. [東方S3] 铃仙·优昙华院·稻叶 概率dp 貌似做麻烦了 邻接矩阵和链式前向星都用上了... dp[ ...

  6. python .md5 加密

    import hashlib hash = hashlib.md5() hash.update(text.encode('utf-8')) print(hash.hexdigest())

  7. 云服务器搭建JDK+Tomcat+MySQL环境

    一.首先租赁一台云服务器(阿里云服务器或者腾讯云服务器) 其实可以在windows电脑上使用VMware workstation来安装虚拟机进行操作,毕竟云服务器低配也是很贵的.不过可以使用学生价去租 ...

  8. Java实现一个简单的事件监听器

    关于事件监听我们需要知道的一些基础知识. a)事件三要素(who when what): source -- 事件源 when -- 事件发生时间 message -- 事件主题消息,即希望通过事件传 ...

  9. hg19基因组 | 功能区域 | 位置提取

    如何获取hg19的CDS.UTR.intergenic.intron等的位置信息? 参考手册: Hg19 regions for Intergenic, Promoters, Enhancer, Ex ...

  10. mac 下面用dd 制作u盘启动

    用dd来把安装包烧到U盘的,发现U盘变小了,mac磁盘工具也不能格式化,就只好用命令行了.diskutil list #1.找到U盘的代号 比如disk1diskutil unmountDisk /d ...