在XX公司软件开发部门,有若干个项目小组,每个项目小组都有一些开发人员。
为了保证开发质量,每一个人都只能参加一个项目。

项目情况介绍:
1. 中山大道brt交通信号系统,小组成员有:
张三,未婚,初级程序员,1年开发经验,25岁
李四,高级程序员,5年开发经验,30岁
2. 科贸园车位管理系统,小组成员:
李四,初级程序员,1年开发经验,25岁
王五,高级程序员,3年开发经验,28岁

(表设计提示:一个项目,对应多个员工

	至少要用2张表:项目表、员工表(有外键字段,即项目id)

任务:

1.设计表存储上述需求关键信息?

要求:

每个表都必须有主键、
项目名称必须唯一、
程序员级别默认为中级程序员

mysql -uroot -proot --default-character-set=gbk 
drop database if exists pro_db; 
create database pro_db charset utf8 ;
use pro_db ; 
drop table if exists projects ; 
create table projects (
   id int primary key auto_increment  , 
   name varchar(30) unique not null 
);


drop table if exists emp ; 
create table emp (
	id int primary key auto_increment , 
	name varchar(20) not null , 
	age int , 
	marry char(2) , 
	post varchar(20)  default '中级程序员', 
	exp varchar(10)
) ; 


drop table if exists project_mapping ; 
create table project_mapping (
	project_id int  , 
	emp_id int unique ,
	foreign key(project_id) references projects(id),
	foreign key(emp_id) references emp(id)
) ; 
show tables ;

2.录入测试数据 ?

写出sql语句!
1. 中山大道brt交通信号系统,小组成员有:
     张三,未婚,初级程序员,1年开发经验,25岁
     李四,高级程序员,5年开发经验,30岁
2. 科贸园车位管理系统,小组成员:
		李四,初级程序员,1年开发经验,25岁
		王五,高级程序员,3年开发经验,28岁
insert into projects values(
	null , 
	'中山大道brt交通信号系统'
),(
	null , 
	'科贸园车位管理系统'
) ;
select * from projects ;


insert into emp values (
	null,
	'张三',
	25,
	'未婚',
	'初级程序员',
	'1年开发经验'
) , (
	null,
	'李四',
	30,
	null,
	'高级程序员',
	'5年开发经验'
) , (
	null,
	'李四',
	25,
	null,
	'初级程序员',
	'1年开发经验'
), (
	null,
	'王五',
	28,
	null,
	'高级程序员',
	'3年开发经验'
);
select * from emp ;

insert into project_mapping values(
	1 , 
	1 
),(
	1 , 
	2 
), (
	2 , 
	3 
),(
	2 , 
	4 
);

select * from project_mapping ;


3.查询所有的项目编号、项目名称?

select * from projects ; 

4.查询所有人员参与的项目: 项目名称、人员、开发经验、级别?

select 
p.name '项目名称' , 
e.name '人员' , 
e.exp  '开发经验', 
e.post '级别' 
from projects as p  , emp as e  , project_mapping as m  
where m.project_id =  p.id and m.emp_id=e.id ;