SQL99标准中的查询

MySQL5.7支持SQL99标准;


一、笛卡尔乘积


笛卡尔乘积是指在数学中,两个集合 X 和 Y 的笛卡尓积(Cartesian product),又 称直积,表示为 X * Y,第一个对象是 X 的成员而第二个对象是 Y 的所有可能有 序对的其中一个成员。


二、SQL99中的交叉连接


CROSS JOIN 子句导致两个表的交叉乘积
该连接和两个表之间的笛卡尔乘积是一样的


使用交叉连接查询 employees 表与 departments 表;

Select * from employees cross join departments;

三、SQL99中的自然连接


相当于等式连接的另一种写法,简化了等值连接的写法,性能相同;也不是很建议使用;

NATURAL JOIN 子句基于两个表之间有相同名字的所有列。

它从两个表中选择在所有的匹配列中有相等值的行。

如果有相同名字的列的数据类型不同,返回一个错误。

当有多个列匹配时,用 USING 子句匹配唯一的列。

自然连接注意事项
1.如果做自然连接的两个表的有多个字段都满足有相同名称和类型,那么他们会被作为自然连接的条件。

2.如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将会返回一个错误。

3.由于可以进行这种非常简单的 natural join,我们在设计表时对具有相同含义的字段需要考虑到使用相同的名字和数据类型。

一、修改 employees 表中的 dept_id 列将该列的名称修改为 department_id;

Alter table employees change column dept_id department_id int;

二、使用自然连接查询所有有部门的雇员的名字以及部门名称。

Select e.last_name , d.department_name from employees e natural join     departments d;

四、Using子句


如果某列在 USING 中使用,那么在引用该列时不要使用表名或者别名。
NATURAL JOIN 和 USING 子句是相互排斥的。


查询 location_id 为 1800 的部门名称以及他们所在的城市名称,指定location_id 为连接列。

select d.department_name,l.city from departments d join locations l using(location_id) where location_id = 1800;

五、SQL99中的内连接(inner join)


内连接通过 INNER JOIN 来建立两个表的连接。在内连接中使用 INNER JOIN 作为 表的连接,用 ON 子句给定连接条件。INNER JOIN 语句在 性能上其他语句没有 性能优势。


查询雇员名字为 OldLu 的雇员 ID,薪水与部门名称。

Select e.employees_id , e.salary , d.department_name from employees e inner  join departments d using(department_id) where e.last_name = “Oldlu”;

SQL99标准中的查询(MySQL)相关推荐

  1. php查询mysql数据库_php中如何查询mysql数据库数据?

    php中查询mysql数据库数据的方法:首先用navicat新建数据库并建表:然后添加数据并与数据库连接:接着用[mysql_select_db]函数选择要查询的数据库:最后将文件在浏览器中打开即可. ...

  2. php查询mysql放到数组中_php查询mysql数据库并将结果保存到数组的方法

    本文实例讲述了php查询mysql数据库并将结果保存到数组的方法..具体分析如下: 这里主要用到了mysql_fetch_assoc函数 mysql_fetch_assoc语法如下: array my ...

  3. 4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)

     mysql数据库创建,表创建模等模板脚本 --用root用户登录系统,执行脚本 --创建数据库 create database mydb61 character set utf8 ; --选择数 ...

  4. mysql外连接基准表_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)...

     mysql数据库创建,表创建模等模板脚本 --用root用户登录系统,执行脚本 --创建数据库 create database mydb61 character set utf8 ; --选择数 ...

  5. 09_MySQL DQL_SQL99标准中的多表查询(外连接)

    # 二.外连接 /* 场景:查询值在1个表中出现,在另外1个表中没有出现 特点: 0.也是两张表的字段拼接,分为主表和从表 1.外连接的结果,将显示主表中的所有记录行 如果连接字段在从表中有记录,则显 ...

  6. Mysql进阶学习(五)连接查询(包含sql92标准和sql99标准)

    Mysql进阶学习(五)连接查询(包含sql92标准和sql99标准) 一.进阶6:连接查询 (一).sql92标准 1.等值连接 1.1 等值连接简介 案例1:查询女神名和对应的男神名 案例2:查询 ...

  7. MySQL学习笔记之连接查询(SQL99标准) inner 、left outer、right outer、full outer、cross等

    前言:sql99语法中的连接查询 语法: SELECT 查询列表 FROM 表1 别名 [连接类型] JOIN 表2 别名 ON 连接条件 [WHERE 筛选条件] [GROUP BY 分组] [HA ...

  8. mysql事务模式怎么查_Mysql InnoDB中的查询事务模式与锁定select ..for update

    在 InnoDB 的行锁中使用所谓的 next-key locking.这就意味着,除了索引记录外,InnoDB 还可以锁定该索引记录前部"间隙" ('gap') 以阻塞其它用户在 ...

  9. mysql执行效率低_如何查询mysql中执行效率低的sql语句

    展开全部 一.MySQL数据库有几个配置选项可以32313133353236313431303231363533e59b9ee7ad9431333337373563帮助我们及时捕获低效SQL语句 1, ...

最新文章

  1. javascript 代码_如何使您JavaScript代码保持简单并提高其可读性
  2. mongodb默认的用户名密码_设置mongodb的用户名密码 | Think in Drupal
  3. UE4 远程调用函数
  4. 一种改进的高光谱图像CEM目标检测算法
  5. 【C#桌面应用】第二节:利用Visual Studio2019 创建桌面应用
  6. 张一鸣批评的互联网“语言腐败”,危害到底有多大?
  7. OO Summary Ⅲ
  8. 第十章 提升论文的可读性 --《英语科技写作(文法与修辞原则)》by 方克涛
  9. java upnp 端口映射_端口映射与UPnP
  10. 裁员潮,互联网寒冬的黑暗时刻
  11. SAP FICO 财务成本知识库
  12. 计算机数据网络延迟,影响网络速度的两个重要因素:网络带宽和网络延迟!
  13. cocos2dx_lua读取unity手机游戏本地文件
  14. 计算机一级死都过不了怎么办,电脑假死,详细教您电脑假死机怎么处理
  15. android 斜线 绘制_Android 自定义 斜线进度框 ,雨点式背景
  16. 基于4组DDR KU115的PCIe 光纤加速计算卡419 光纤PCIe卡
  17. 2019年‘泰迪杯’数据分析职业技能大赛A题——个人代码分享
  18. linux网卡ip自动丢失,重启电脑IP设定丢失的故障处理
  19. android:使用TextView展示H5文本(含关键字点击和图片)
  20. Leon‘s Life

热门文章

  1. 如何解决failed to push some refs to git
  2. oracle 表空间维护
  3. python中dict和lambda结合的小例子
  4. getsockname的使用
  5. STM32 KEIL MDK 本地时间和Unix timestamp相互转换
  6. ubuntu 12.04下apache 配置家目录地址
  7. 美国计算机专业 学校推荐信,美国大学计算机专业推荐信范文
  8. python中指定变量为1byte_Python读字节某一位的值,设置某一位的值,二进制位操作...
  9. C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
  10. cryptogen (1)generate 生成证书举例