SQL——高级教程【菜鸟教程】

SQL连接

  1. 左连接:SQL LEFT JOIN 关键字
    左表相当于主表,不管与右表匹不匹配都会显示所有数据
    右表就只会显示和左表匹配的内容。
    在这里插入图片描述
//例显示:左表的name,有表的总数,时间
SELECT Websites.name, access_log.count, access_log.date
//左表
FROM Websites
//右表
LEFT JOIN access_log
//使用on来连接两个表
ON Websites.id=access_log.site_id
//降序排列
ORDER BY access_log.count DESC;
  1. 内连接:SQL INNER JOIN 关键字
    从韦恩图可以看出它们显示出来的是交叉的地方
    在这里插入图片描述
//显示的列有w表的name,a表的count,
SELECT Websites.name, access_log.count, access_log.date
//w表
FROM Websites
//内连接a表
INNER JOIN access_log
//两表连接条件
ON Websites.id=access_log.site_id
//排序规则——默认升序
ORDER BY access_log.count;
  1. 右连接 SQL RIGHT JOIN 关键字
    右连接和左连接类似,只不过以右表作为主表在这里插入图片描述
//w表的name,a表的count,data
SELECT websites.name, access_log.count, access_log.date
//w表
FROM websites
//右连接,主表为a表
RIGHT JOIN access_log
//两表连接条件
ON access_log.site_id=websites.id
//排序规则,降序
ORDER BY access_log.count DESC;
  1. 全部显示,(在MYSQL中不支持这样的语句)SQL FULL OUTER JOIN 关键字
    两表中无匹配的项也会显示出来,FULL OUTER JOIN 关键字返回左表(Websites)和右表(access_log)中所有的行。如果 “Websites” 表中的行在 “access_log” 中没有匹配或者 “access_log” 表中的行在 “Websites” 表中没有匹配,也会列出这些行。
    在这里插入图片描述
  2. SQL UNION 操作符
    UNION 操作符用于合并两个或多个 SELECT 语句的结果集
    请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
//选择国家,name列
SELECT country, name 
//w表
FROM Websites
//条件为
WHERE country='CN'
//连接
UNION ALL
//选择国家,name列
SELECT country, app_name 
//app表
FROM apps
//条件为
WHERE country='CN'
//排列顺序
ORDER BY country;

6.SQL SELECT INTO 语句(MySQL 数据库不支持 SELECT … INTO 语句,但支持 SQL INSERT INTO SELECT 语句)

通过 SQL,您可以从一个表复制信息到另一个表。

SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。

//w表name,a表count,a表data
SELECT Websites.name, access_log.count, access_log.date
//复制到哪里
INTO WebsitesBackup2016
//从那个表复制
FROM Websites
//左连接
LEFT JOIN access_log
//w表和a表连接条件
ON Websites.id=access_log.site_id;
  1. SQL INSERT INTO SELECT 语句
    NSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。
//复制 "apps" 中的数据插入到 "Websites" 中:
INSERT INTO Websites (name, country)
SELECT app_name, country FROM apps;
//只复制 id=1 的数据到 "Websites" 中:
INSERT INTO Websites (name, country)
SELECT app_name, country FROM apps 
WHERE id=1;

相关推荐

  1. docker教程

    2024-05-03 07:52:05       42 阅读
  2. docker教程

    2024-05-03 07:52:05       35 阅读
  3. SQL高级教程

    2024-05-03 07:52:05       40 阅读
  4. vue 教学如何jason字符串转对象

    2024-05-03 07:52:05       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-03 07:52:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-03 07:52:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-03 07:52:05       87 阅读
  4. Python语言-面向对象

    2024-05-03 07:52:05       96 阅读

热门阅读

  1. PostgreSQL日期和时间相关函数

    2024-05-03 07:52:05       34 阅读
  2. 身份证号对应地区信息-MySQL

    2024-05-03 07:52:05       30 阅读
  3. 最大似然估计(通俗讲解)

    2024-05-03 07:52:05       27 阅读
  4. 2012NOIP普及组真题 4. 文化之旅

    2024-05-03 07:52:05       41 阅读
  5. 【设计模式】16、state 状态模式

    2024-05-03 07:52:05       27 阅读
  6. React使用 lodash-es 中的throttle方法失效

    2024-05-03 07:52:05       34 阅读
  7. 论文笔记总结

    2024-05-03 07:52:05       38 阅读
  8. go的grpc的三种流模式通信

    2024-05-03 07:52:05       32 阅读
  9. MongoDB聚合运算符:$sum

    2024-05-03 07:52:05       33 阅读