1. mysql中的dual表

在Mysql和SQL Server中可以直接select 1不需要加from 表名就可以执行 ,而在Oracle中要满足select from的结构:
select 1不能实现满足上述结构,于是Oracle引入dual虚拟表来满足结构。 Oracle这样表示:select 1 from dual

现在一般线上使用的MySQL都是5.5以上的,在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select … from…这一习惯问题,mysql会忽略对该表的引用。在mysql中Dual表的使用示例如下:

2. mysql/oracel中Dual区别

select * from dual;     
mysql会出错——1096:没有使用到表;而oracle 会返回列:“du”,其值为“X”——行为和只有一行记录的普通表是一样的!

select express [from dual];
mysql总是作为返回该表达式值的普通select语句执行,返回一行记录的结果集,from dual 对mysql来说根本就是摆设!而oracle里该句必须有from dual;否则报错!
select express from dual where 0=2;
mysq 和 oracle的行为一致:该句就如同你认为的正常表那样——会先计算where的条件,再行计算express;这里的where条件会决定expres是否会返回!

综上:oracle的dual具有代码美感,风格统一,约定成俗!

3. mysql无则插入实现

用户希望在插入数据库表以前,先判断数据是否已存在,不存在插入,存在不插入,如何实现:

create table `Test` (`Id` int(11) not null comment '默认ID',`Name` varchar(20) not null comment '默认名字',primary key (`Id`)
) engine=innoDB default charset=utf8 comment='test';
insert into `Test`(`Id`, `Name`) select 1 , 'jack';insert into `Test` select 1 ,'cao';
insert into `Test` select 1 , 'cao' where not exists(select 1 from Test where id=1);
insert into `Test` select 1 , 'cao' from dual where not exists(select 1 from Test where id=1);

MySQL--基础知识点--51--dual相关推荐

  1. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  2. MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  3. MySQL基础知识点整理 - 账号和权限管理

    MySQL基础知识点整理 - 账号和权限管理 一.账号管理 1. 查看账号列表 MySQL用户账号和信息存储在名为 mysql 的数据库中.一般不需要直接访问 mysql 数据库和表,但有时需要直接访 ...

  4. mysql基础知识点

    /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysq ...

  5. MySQL基础知识点集合

    数据库MySQL MySql常用命令(不区分大小写, ; 表示结束) SQL语句的分类 查询语句 排序(order by) 以上综合使用 数据处理函数 单行处理函数 多行处理函数(分组函数) 分组查询 ...

  6. 【MySQL】MySQL进阶之路(三)MySQL基础知识点整理

    写在前面的话 脑子是个好东西,可惜的是一直没有搞懂脑子的内存删除机制是什么,所以啊,入行多年,零零散散的文章看了无数,却总是学习了很多也忘了很多. 痛定思痛的我决定从今天开始系统的梳理下知识架构,记录 ...

  7. 面试官都拜服的,软件测试面试题之Mysql基础!

    Mysql 基础知识点击领取学习资料 1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 2. 什么是关系型数据库,主键,外键,索引分别是什么? 关系型数据库是 ...

  8. sql两个列值以下划线拼接得到一个新的列_面试必备sql知识点——MySQL基础

    在刷了上百道sql题后,发现所有的题目都是基于某一个或几个知识点来做考察的,所以理清基础的知识细节,才能在题目考察到任意知识点时,找到解决线索. 温故而知新,学习在于总结,于是我再次对已经学习过的my ...

  9. sql server 多条记录数据合并为一条_面试必备sql知识点——MySQL基础

    在刷了上百道sql题后,发现所有的题目都是基于某一个或几个知识点来做考察的,所以理清基础的知识细节,才能在题目考察到任意知识点时,找到解决线索. 温故而知新,学习在于总结,于是我再次对已经学习过的my ...

  10. mysql数据库基础知识点总结--看完即入门

    疫情在家,在家简单复习了SQL数据库的基础知识.其实回过头来,当时本科时候学习的时候,还没有多大的感触.现在学习了这么多的语言和结构化知识,再回头来看这门语言,很多东西息息相关.就像是瞬间打通了六脉, ...

最新文章

  1. LTE的随机接入过程解析
  2. spring启动过程之源码跟踪(中)--spring Debug
  3. 第12章 样式(三)
  4. iptables防***自动黑白名单脚本
  5. Swift之深入解析如何使用Xcode和LLDB v2修改UI元素
  6. C# 委托与事件总结
  7. 高薪诚聘游戏引擎研发,有意者请与我联系!
  8. 如果网站的 Cookie 特别多特别大,会发生什么情况?
  9. 下面的代码能确定参数是否为奇数吗?
  10. 非全日制考研计算机教育,22考研之全日制与非全日制的区别
  11. Ubuntu安装tftp服务器
  12. [评价体系] 2、层次分析法AHP原理、例题
  13. dell保修(dell保修多久)
  14. 使用idea和gradle编译spring5源码
  15. PHP连接MySQL数据库的三种方式
  16. 软件工程实践2018第六次作业——现场UML作图
  17. appiumDemo(茄子医生)
  18. python中时间转换错误:时间戳转换|带有时区的转换 如何解析ISO 8601格式的日期? 2018-06-25T20:59:31.757+08:00
  19. Database System Concepts(Fourth Edition)
  20. 软件工程:“银弹”论

热门文章

  1. centos基本命令
  2. 15 python的文件操作
  3. 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)
  4. 女神节 | 那些奋斗在IT领域的“女神”们
  5. 简述created和mounted的区别
  6. ROS2编程基础课程--Launch
  7. UDS-统一诊断服务
  8. HTML5开发系列(4) 之 样式表的三种类型
  9. Vue3封装通用svg组件
  10. 串行并行 同步异步通信