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
- 下一篇: netstat -an 查看端口