欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

77.SQL 查询方式整理

发布时间:2025/3/20 数据库 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 查询方式整理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。