虚拟表 DUAL
MySQL中使用select 1;
不加 from table就可以执行,而在Oracle中需要满足select * from table;
这样的结构,因此Oracle引入虚拟表DUAL来表示select 1 from dual;
MySQL 5.5以上版本也引入了类似的虚拟表DUAL,但是在MySQL中执行select * from dual;
会报错:
插入数据前判断是否存在
如果需要在插入数据前判断数据表中是否已经存在此条记录,MySQL中语法如下:
insert into `User` ('name', 'age', 'code')
select '张三', '30', 'ZS0030'
from dual
where not exists(select 1 from User where `name` = '张三' and `code` = 'ZS0030');