美文网首页
SQL-数据库操作语言(二)

SQL-数据库操作语言(二)

作者: 无敌的肉包 | 来源:发表于2018-06-11 22:41 被阅读0次
连表查询:

UNION
INNER JOIN
OUTER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
CROSS JOIN
SELECT INTO



1.UNION 用于合并两个或多个 SELECT 语句的结果集。

语法:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

#
SELECT ID,Name FROM Students
UNION
SELECT ID,Name FROM Teachers

2.INNER JOIN(内连接)根据两个或多个表中的列之间的关系,从这些表中查询数据。
内连接是从结果中删除其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。inner join也会产生重复数据。如果将Majors表的主键约束去掉,可以插入重复的ID

语法:
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。

#实例:查询学生信息,包括ID,姓名、专业名称
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students INNER JOIN Majors
ON Students.MajorID = Majors.ID

3.LEFT JOIN(LEFT OUTER JOIN,简称LEFT JOIN,左外连接(左连接)
结果集保留左表的所有行,但只包含第二个表与第一表匹配的行。第二个表相应的空行被放入NULL值。

语法:
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。

#用左连接查询学生的信息,其中包括学生ID,学生姓名和专业名称。
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students LEFT JOIN Majors
ON Students.MajorID = Majors.ID

4.RIGHT JOIN(right outer join)右外连接(右连接)右外连接保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行。第一个表相应空行被入NULL值。右连接与左连接思想类似。只是第二张保留全集,如果第一张表中没有匹配项,用NULL代替

语法:
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。

#使用右连接查询学生的信息,其中包括学生ID,学生姓名和专业名称。
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students RIGHT JOIN Majors
ON Students.MajorID = Majors.ID

5.FULL JOIN (FULL OUTER JOIN,全外连接)
全外连接,简称:全连接。会把两个表所有的行都显示在结果表中

语法:
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。

#使用全连接查询学生的信息,其中包括学生ID,学生姓名和专业名称。
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students FULL JOIN Majors
ON Students.MajorID = Majors.ID

6.CROSS JOIN(交叉连接)交叉连接。交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。

简单查询两张表组合,这是求笛卡儿积,效率最低。

笛卡儿积:笛卡尔乘积,也叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。

语法:
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:INNER JOIN 与 JOIN 是相同的。

#交叉连接查询学生的信息,其中包括学生ID,学生姓名和专业名称。
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students CROSS JOIN Majors

7.SELECT INTO
从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份或者用于对记录进行存档。

语法:
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
IN 子句可用于向另一个数据库中拷贝表。

#1)备份表信息
SELECT ID,Name 
INTO Students_Backup
FROM Students

#2)复制到备份库
SELECT *
INTO Students IN 'Backup.mdb'
FROM Students

相关文章

  • SQL-数据库操作语言(二)

    连表查询: UNIONINNER JOINOUTER JOINLEFT OUTER JOINRIGHT OUTER...

  • mongodb 数据库 安装步骤

    SQL- 结构化查询语言- 关系数据库全都同SQL来操作 1.安装MongoDB- 安装- 配置环境变量C:\Pr...

  • 2022-10-23

    SQL- 结构化查询语言- 关系数据库全都同SQL来操作 1.安装MongoDB- 安装- 配置环境变量C:\Pr...

  • Ubuntu下mysql的常用命令,MySQL数据库的基本操作命

    一、mysql服务操作 0.0 进入mysql $mysql -uroot -p 0、查看数据库版本 sql-> ...

  • SQL-数据库操作语言(一)

    一、基本语句 1.SELECT 用于从表中选取数据 语法:SELECT <列名称1>,<列名称2>FROM <表名...

  • 一、数据库的使用Mysql

    一、数据库概念- 数据库- 数据库管理系统 二、数据库- 安装 三、SQL- 数据库、表单关系python班级学生...

  • 一、数据库之SQL语句

    一、SQL创表 二、SQL-插入 三、SQL-修改 四、SQL-删除 五、SQL-查询 以上是SQL语句常用的用法...

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • 数据库SQL语言入门(三)

    系列文章: 数据库SQL语言入门(一)数据库SQL语言入门(二) DML语句 DML操作指对数据中的表记录的操作,...

  • SQL-DDL

    ​SQL功能分类 DDL:数据库定义语言,定义数据库对象,创建数据库、表、列等。 DML:数据库操作操作语言,完成...

网友评论

      本文标题:SQL-数据库操作语言(二)

      本文链接:https://www.haomeiwen.com/subject/tfqyhftx.html