Mysql练习题12.1
1、创建两张表,如下所示:
门派表:id 主键 自增,门派名称,门派地址
create table menpai(
id int primary key auto_increment,
mname varchar (20),
msite varchar (20)
);
人员表:id主键 自增,名称,年龄,mpid,编号
create table mppeople (
id int primary key auto_increment,
name var char (20),
age int (3),
mpid int (2),
num int(10)
);
2.为两个表创建外键链接
alter table mppeople add constraint m_id foreign key (mpid) references menpai (id) ;
3、向两个表插入如下数据:
华山 | 华山 |
---|---|
丐帮 | 洛阳 |
峨眉 | 峨眉山 |
武当 | 武当山 |
明教 | 光明顶 |
少林 | 少林寺 |
风清扬 | 90 | 1 | 100001 |
---|---|---|---|
岳不群 | 50 | 1 | 100002 |
令狐冲 | 24 | 1 | 100003 |
洪七公 | 70 | 2 | 100004 |
乔峰 | 35 | 2 | 100005 |
灭绝师太 | 70 | 3 | 100006 |
周芷若 | 30 | 3 | 100007 |
韦小宝 | 20 | null | 100010 |
insert into menpai(mname,msite)
values('华山','华山'),
('丐帮','洛阳'),
('峨眉','峨眉山'),
('武当','武当山',
('明教','光明顶'),
('少林','少林寺');
insert into mppeople(name,age,mpid,num)
values('风清扬',90,1,100001),
('岳不群',50,1,100002),
('令狐冲',24,1,100003),
('洪七公',70,2,100004),
('乔峰',35,2,100005),
('灭绝师太',70,3,100006),
('周芷若',20,3,100007),
('韦小宝',18, null, 100010);
4、创建如下查询
(1)查询所有门派的人员信息
select * from menpai left join mppeople on
menpai.id=mppeople.mpid;
(2)查询所有人员,并显示其门派信息
select * from mppeople left join menpai on
mppeople.mpid=menpai.id;
(3)列出没有门派的人员信息
select menpai.mname,mppeople.name from mppeople left join menpai on
mppeople.mpid=menpai.id where mppeople.mpid is null;
(4)列出没人入派的门派
select menpai.mname,mppeople.name from menpai left join
mppeople on menpai.id=mppeop le.mpid where mppeople. id
is null;