77.SQL 查询方式整理
2019独角兽企业重金招聘Python工程师标准>>>
1.准备工作
1.1创建表
-- 学生表
CREATE TABLE [dbo].[t_student4](
[id] [varchar](50) NULL,
[name] [varchar](50) NULL
)
-- 成绩表
CREATE TABLE t_score(
[score] [int] NULL,
[subject] [int] NULL,
[studentid] [varchar](50) NULL
)
-- 班级表
CREATE TABLE t_class(
[id] [varchar](50) NULL,
[class] [int] NULL,
[studentid] [varchar](50) NULL
)
1.2 插入数据
--学生表
insert t_student4 values
('4028842339e2845d0139e28765740001','张三'),
('4028842339e2845d0139e28765740002','李四'),
('4028842339e2845d0139e287657400023','王五'),
('4028842339e2845d0139e28765740004','小六')
-- 成绩表
insert t_score values
(80,2,'4028842339e2845d0139e28765740001'),
(69,1,'4028842339e2845d0139e287657400023'),
(96,1,'4028842339e2845d0139e28765740004'),
(100,3,'4028842339e2845d0139e28765740006')
-- 班级表
insert t_class values
('4028842339e2845d0139e28765740011',1,'4028842339e2845d0139e28765740001'),
('4028842339e2845d0139e28765740012',1,'4028842339e2845d0139e28765740002'),
('4028842339e2845d0139e28765740013',2,'4028842339e2845d0139e287657400023'),
('4028842339e2845d0139e28765740014',3,'4028842339e2845d0139e28765740004')
数据效果
2. 查询方式
select * from t_student4 -- 学生表
select * from t_score -- 成绩表
select * from t_class -- 班级表
2.1 条件查询
select * from t_student4 a , t_score b where a.id=b.studentid --条件查询
2.2 内连接
select * from t_student4 a inner join t_score b on a.id=b.studentid -- 内联查 标准的 这里的 inner可以省略
2.3 外连接
-- 左外连接 以左边为主表 左边有的结果一定要有 outer 可以省略
select * from t_student4 a left outer join t_score b on a.id=b.studentid
-- 右外连接 以右边为主表 右边有的结果一定要有 outer 可以省略
select * from t_student4 a right outer join t_score b on a.id=b.studentid
-- 全外连接 两张表中的值都出现
select * from t_student4 a full outer join t_score b on a.id=b.studentid
2.4 交叉连接(Cross Join) 与笛卡尔查询 不带where查询的结果相同
SELECT
a.id,
a.name,
b.score,
b.subject,
b.studentid
FROM
t_student4 a
CROSS JOIN t_score b;
2.5 合并结果集查询 union
参考 连接博客
https://my.oschina.net/springMVCAndspring/blog/1546310
注意:查询的结果 必须表结构完全相同
2.5.1 union 是 自带排序 并且 剔除重复数据(保留一份交集)
2.5.2 union all 只是将两个结果合并 不 排序 不剔除重复数据
转载于:https://my.oschina.net/springMVCAndspring/blog/1600706
总结
以上是生活随笔为你收集整理的77.SQL 查询方式整理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 27.4. /etc/bandwidth
- 下一篇: iOS中SQLite3数据库修改字段名