sql多表查询(左连接,右连接,内连接)(联合查询)

use test;
# 创建学员信息表(字段名:学号,学员姓名,年龄)
create table 学员信息表(
学号 varchar(5),
学员姓名 varchar(10),
年龄 int
);

# 为学员信息表导入数据(数据表为xyxx.CSV)infile后为文件所在的完整路径(注意中间不能有中文。
load data local infile 'C:/xunleixiazai/MySQL/xyxx.csv'
into table 学员信息表
fields terminated by ','
ignore 1 lines;

-- 创建学员成绩表(字段名称:学号,成绩)
create table 学员成绩表(
学号 varchar(5),
成绩 int
);

-- 为学员成绩表导入数据(数据表名为:xycj.csv)
load data local infile 'C:/xunleixiazai/MySQL/xycj.csv'
into table 学员成绩表
fields terminated by ','
ignore 1 lines;

-- 内连接
select 学员信息表.*, 学员成绩表.*
from 学员信息表 inner join 学员成绩表 on 学员信息表.学号 = 学员成绩表.学号;

-- 左连接
select 学员信息表.*, 学员成绩表.*
from 学员信息表 left join 学员成绩表 on 学员信息表.学号 = 学员成绩表.学号;

-- 右连接
select 学员信息表.*, 学员成绩表.*
from 学员信息表 right join 学员成绩表 on 学员信息表.学号 = 学员成绩表.学号;

-- 纵向合并练习
# 创建数据表t1(字段名称:key1,v1,设定数据类型)
create table t1(
key1 varchar(20),
v1 int(4)
);

# 为t1表导入数据(数据表为t1.CSV)infile后为文件所在的完整路径(注意中间不能有中文。)
load data local infile 'C:/xunleixiazai/MySQL/t1.csv'
into table t1
fields terminated by ','
ignore 1 lines;

# 创建数据表t2(字段名称:key2,v2,设定数据类型)
create table t2(
key2 varchar(20),
v2 int(4)
);

# 为t2表导入数据(数据表为t2.CSV)infile后为文件所在的完整路径(注意中间不能有中文。)
load data local infile 'C:/xunleixiazai/MySQL/t2.csv'
into table t2
fields terminated by ','
ignore 1 lines;

-- 用union合并t1与t2表(合并行,纵向合并,纵向联结)(剔除重复行)
select t1.* from t1
union
select t2.* from t2;

-- 用union all合并t1与t2表(合并行,纵向合并,纵向联结)(保留重复行)
select t1.* from t1
union all

select t2.*from t2;

 


select t2.* from t

 

posted @ 2022-06-03 16:59  坤仔很菜  阅读(778)  评论(0)    收藏  举报