day 47 mysql小练习


作业

导入

create table emp(
  id int primary key auto_increment,
  name varchar(20) not null,
  sex enum('male','female') not null default 'male', 
  age int(3) unsigned not null default 28,
  hire_date date not null,
  post varchar(50),
  post_comment varchar(100),
  salary double(15,2),
  office int,
  depart_id int
);

insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values
('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部
('tom','male',78,'20150302','teacher',1000000.31,401,1),
('kevin','male',81,'20130305','teacher',8300,401,1),
('tony','male',73,'20140701','teacher',3500,401,1),
('owen','male',28,'20121101','teacher',2100,401,1),
('jack','female',18,'20110211','teacher',9000,401,1),
('jenny','male',18,'19000301','teacher',30000,401,1),
('sank','male',48,'20101111','teacher',10000,401,1),
('哈哈','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门
('呵呵','female',38,'20101101','sale',2000.35,402,2),
('西西','female',18,'20110312','sale',1000.37,402,2),
('乐乐','female',18,'20160513','sale',3000.29,402,2),
('拉拉','female',28,'20170127','sale',4000.33,402,2),
('僧龙','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门
('程咬金','male',18,'19970312','operation',20000,403,3),
('程咬银','female',18,'20130311','operation',19000,403,3),
('程咬铜','male',18,'20150411','operation',18000,403,3),
('程咬铁','female',18,'20140512','operation',17000,403,3);

判断表关系

# 班级表
clid	caption
# 学生表
sid sname gender class_id
# 老师表
tid	tname
# 课程表
coid	cname	teacher_id
# 成绩表
sid	student_id course_id number
班级表-学生表  一对多
班级表-老师表  没有关系
班级表-课程表  没有关系
班级表-成绩表  没有关系
学生表-老师表  没有关系
学生表-课程表  多对多
学生表-成绩表  一对多
老师表-课程表  一对多
老师表-成绩表  没有关系
课程表-成绩表  一对多

分组练习题

1.查询岗位名以及岗位包含的所有员工名字

# group_concat() 函数
  将group by产生的同一个分组中的值连接起来 返回一个字符串结果 group_concat函数首先根据group by指定的列进行分组 将同一组的列显示出来 并且用分隔符分隔 由函数参数(字段名)决定要返回的列

2.查询岗位名以及各岗位内包含的员工个数

# count()函数
  count(column name)默认查询的是指定字段非空的个数

3. 查询公司内男员工和女员工的个数

4.查询岗位名以及各岗位的平均薪资

# avg() 函数
  AVG()函数是一个聚合函数 它用于计算一组值或表达式的平均值

5.查询岗位名以及各岗位的最高薪资

# max() 函数
  用来找出一个字段集中的最大值的记录

6.查询岗位名以及各岗位的最低薪资

# min() 函数
  用来找出一个字段集中的最小值的记录

7.查询男员工与男员工的平均薪资,女员工与女员工的平均薪资