在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 ;