MySQL--基础知识点--51--dual
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相关推荐
- mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎
MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...
- MySQL基础知识点整理 - 存储引擎
MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...
- MySQL基础知识点整理 - 账号和权限管理
MySQL基础知识点整理 - 账号和权限管理 一.账号管理 1. 查看账号列表 MySQL用户账号和信息存储在名为 mysql 的数据库中.一般不需要直接访问 mysql 数据库和表,但有时需要直接访 ...
- mysql基础知识点
/* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysq ...
- MySQL基础知识点集合
数据库MySQL MySql常用命令(不区分大小写, ; 表示结束) SQL语句的分类 查询语句 排序(order by) 以上综合使用 数据处理函数 单行处理函数 多行处理函数(分组函数) 分组查询 ...
- 【MySQL】MySQL进阶之路(三)MySQL基础知识点整理
写在前面的话 脑子是个好东西,可惜的是一直没有搞懂脑子的内存删除机制是什么,所以啊,入行多年,零零散散的文章看了无数,却总是学习了很多也忘了很多. 痛定思痛的我决定从今天开始系统的梳理下知识架构,记录 ...
- 面试官都拜服的,软件测试面试题之Mysql基础!
Mysql 基础知识点击领取学习资料 1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 2. 什么是关系型数据库,主键,外键,索引分别是什么? 关系型数据库是 ...
- sql两个列值以下划线拼接得到一个新的列_面试必备sql知识点——MySQL基础
在刷了上百道sql题后,发现所有的题目都是基于某一个或几个知识点来做考察的,所以理清基础的知识细节,才能在题目考察到任意知识点时,找到解决线索. 温故而知新,学习在于总结,于是我再次对已经学习过的my ...
- sql server 多条记录数据合并为一条_面试必备sql知识点——MySQL基础
在刷了上百道sql题后,发现所有的题目都是基于某一个或几个知识点来做考察的,所以理清基础的知识细节,才能在题目考察到任意知识点时,找到解决线索. 温故而知新,学习在于总结,于是我再次对已经学习过的my ...
- mysql数据库基础知识点总结--看完即入门
疫情在家,在家简单复习了SQL数据库的基础知识.其实回过头来,当时本科时候学习的时候,还没有多大的感触.现在学习了这么多的语言和结构化知识,再回头来看这门语言,很多东西息息相关.就像是瞬间打通了六脉, ...
最新文章
- LTE的随机接入过程解析
- spring启动过程之源码跟踪(中)--spring Debug
- 第12章 样式(三)
- iptables防***自动黑白名单脚本
- Swift之深入解析如何使用Xcode和LLDB v2修改UI元素
- C# 委托与事件总结
- 高薪诚聘游戏引擎研发,有意者请与我联系!
- 如果网站的 Cookie 特别多特别大,会发生什么情况?
- 下面的代码能确定参数是否为奇数吗?
- 非全日制考研计算机教育,22考研之全日制与非全日制的区别
- Ubuntu安装tftp服务器
- [评价体系] 2、层次分析法AHP原理、例题
- dell保修(dell保修多久)
- 使用idea和gradle编译spring5源码
- PHP连接MySQL数据库的三种方式
- 软件工程实践2018第六次作业——现场UML作图
- appiumDemo(茄子医生)
- python中时间转换错误:时间戳转换|带有时区的转换 如何解析ISO 8601格式的日期? 2018-06-25T20:59:31.757+08:00
- Database System Concepts(Fourth Edition)
- 软件工程:“银弹”论