Mysql练习题13.1
关注公众号回复:’‘11.15’'查看完整内容
创建学生表(学号,姓名,性别,年龄,专业),并插入一些数据
创建课程表(课程号,课程名),插入部门数据
创建选修表(学号、课程号,成绩),插入部分数据。完成如下查询:
首先创建数据库建立三个表
mysql> create table students(
-> id int(3),
-> name varchar(20),
-> sex varchar(10),
-> age int(3),
-> major varchar(30)
-> );
mysql> create table kecheng(
-> kcid int(3),
-> kcname varchar(30)
-> );
mysql> create table xianxiu(
-> id int(3),
-> kcid int(3),
-> result int(3)
-> );
添加数据
insert into students(id,name,sex,age,major)
-> values(1,'张三','男',18,'经济'),
-> (2,'张四','男',19,'金融'),
-> (3,'张五','男',18,'法学'),
-> (4,'张六','女',18,'数学'),
-> (5,'李四','女',18,'数学'),
-> (6,'李五','女',20,'金融'),
-> (7,'王五','男',18,'地理');
insert into kecheng(kcid,kcname)
-> values(1,'食品加工'),
-> (2,'机械加工'),
-> (3,'计算机组装'),
-> (4,'哲学'),
-> (5,'刑法学');
insert into xianxiu(id,kcid,result)
-> values(1,2,99),
-> (2,2,98),
-> (3,1,97),
-> (4,3,99),
-> (5,4,99),
-> (6,null,null),
-> (7,null,null);
1、 查询选课的学生信息及其所选的课程信息
select students.*,kecheng.* from students join kecheng join xianxiu on kecheng.kcid=xianxiu.kcid and students.id=xianxiu.id;
2.查询选课的学生信息及其所选的课程信息和未选课的学生信息
>select students.*,kecheng.* from students left join xianxiu on students.id=xianxiu.id left join kecheng on xianxiu.kcid=kecheng.kcid
3.选课的学生信息及其所选的课程信息和没有学生选择的课程
>select students.*,kecheng.* from students right join xianxiu on students.id=xianxiu.id right join kecheng on xianxiu.kcid=kecheng.kcid;
4.查询2、3步骤中的全部信息
>select students.*,kecheng.* from students left join xianxiu on students.id=xianxiu.id left join kecheng on xianxiu.kcid=kecheng.kcid
>union
>select students.*,kecheng.* from students right join xianxiu on students.id=xianxiu.id right join kecheng on xianxiu.kcid=kecheng.kcid;
5、 查询课程号为1的课程信息及选该课程的学生学号
elect kecheng.kcid,kecheng.kcname,students.id from students join kecheng join xianxiu on kecheng.kcid=xianxiu.kcid and students.id=xianxiu.id where xianxiu.kcid=1;